1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-25 17:25:14 +03:00

Merge branch 'master' into dzikuvx-pid-bank-11

This commit is contained in:
Pawel Spychalski (DzikuVx) 2020-03-05 11:45:44 +01:00
commit 6bd0d17022
402 changed files with 46136 additions and 12708 deletions

View file

@ -26,6 +26,14 @@ Depending on target operating system, _INAV Configurator_ is distributed as _sta
1. Run INAV Configurator app from unpacked folder
1. Configurator is not signed, so you have to allow Windows to run untrusted application. There might be a monit for it during first run
### Linux
1. Visit [release page](https://github.com/iNavFlight/inav-configurator/releases)
1. Download Configurator for Linux platform (linux32 and linux64 are present)
1. Extract tar.gz archive
1. Make the inav-configurator file executable (chmod +x inav-configurator)
1. Run INAV Configurator app from unpacked folder
### Mac
1. Visit [release page](https://github.com/iNavFlight/inav-configurator/releases)
@ -46,7 +54,7 @@ For local development, **node.js** build system is used.
1. From project folder run `npm install`
1. To build the JS and CSS files and start the configurator:
- With NW.js: Run `npm start`.
- With Chrome: Run `./node_modules/gulp/bin/gulp.js`. Then open `chrome://extensions`, enable
- With Chrome: Run `npm run gulp`. Then open `chrome://extensions`, enable
the `Developer mode`, click on the `Load unpacked extension...` button and select the `inav-configurator` directory.
Other tasks are also defined in `gulpfile.js`. To run a task, use `./node_modules/gulp/bin/gulp.js task-name`. Available ones are:

View file

@ -101,7 +101,7 @@
"tabGPS": {
"message": "GPS"
},
"tabMotorTesting": {
"tabOutputs": {
"message": "Outputs"
},
"tabLedStrip": {
@ -505,7 +505,7 @@
"message": "In-flight level calibration"
},
"featureMOTOR_STOP": {
"message": "Don't spin the motors when armed"
"message": "Stop motors on low throttle"
},
"featureSERVO_TILT": {
"message": "Servo gimbal"
@ -546,8 +546,8 @@
"featureCURRENT_METER": {
"message": "Battery current monitoring"
},
"feature3D": {
"message": "3D mode (for use with reversible ESCs)"
"featureREVERSIBLE_MOTORS": {
"message": "Reversible motors mode (for use with reversible ESCs)"
},
"featureRSSI_ADC": {
"message": "Analog RSSI input"
@ -636,11 +636,17 @@
"configurationEscFeatures": {
"message": "ESC/Motor Features"
},
"serialrx_inverted": {
"message": "Serial Port Inverted (comparing to protocol default)"
},
"serialrx_halfduplex" : {
"message": "Serial receiver half-duplex"
},
"configurationFeaturesHelp": {
"message": "<strong>Note:</strong> Not all combinations of features are valid. When the flight controller firmware detects invalid feature combinations conflicting features will be disabled.<br /><strong>Note:</strong> Configure serial ports <span style=\"color: red\">before</span> enabling the features that will use the ports."
},
"configurationSerialRXHelp": {
"message": "<strong>Note:</strong> Remember to configure a Serial Port (via Ports tab) and choose a Serial Receiver Provider when using RX_SERIAL feature."
"message": "<strong>Note:</strong> Remember to configure a Serial Port (via Ports tab) for the serial receiver"
},
"configurationBoardAlignment": {
"message": "Board and Sensor Alignment"
@ -654,12 +660,6 @@
"configurationBoardAlignmentYaw": {
"message": "Yaw Degrees"
},
"configurationSensorAlignmentGyro": {
"message": "GYRO Alignment"
},
"configurationSensorAlignmentAcc": {
"message": "ACCEL Alignment"
},
"configurationSensorAlignmentMag": {
"message": "MAG Alignment"
},
@ -757,19 +757,19 @@
"message": "Battery Capacity Unit"
},
"configuration3d": {
"message": "3D"
"message": "Reversible motors"
},
"configuration3dDeadbandLow": {
"message": "3D Deadband Low"
"message": "Reversible Motors Deadband Low"
},
"configuration3dDeadbandHigh": {
"message": "3D Deadband High"
"message": "Reversible Motors Deadband High"
},
"configuration3dNeutral": {
"message": "3D Neutral"
"message": "Reversible Motors Neutral"
},
"configuration3dDeadbandThrottle": {
"message": "3D Deadband Throttle"
"message": "Reversible Motors Deadband Throttle"
},
"configurationSystem": {
"message": "System configuration"
@ -795,6 +795,9 @@
"configurationGPSHelp": {
"message": "<strong>Note:</strong> Remember to configure a Serial Port (via Ports tab) when using GPS feature."
},
"receiverType": {
"message": "Receiver type"
},
"configurationSerialRX": {
"message": "Serial Receiver Provider"
},
@ -927,6 +930,9 @@
"portsFunction_FRSKY_OSD": {
"message": "FrSky OSD"
},
"portsFunction_DJI_FPV": {
"message": "DJI FPV VTX"
},
"pidTuningName": {
"message": "Name"
},
@ -1940,9 +1946,6 @@
"warning": {
"message": "Warning"
},
"boardLimitedFunctionality": {
"message": "Due to limited flash size, the board you have selected will have limited functionality, not all functions and features will be available. Hardware support map is available on <a href=\"https://github.com/iNavFlight/inav/wiki/Hardware-support-map\" target=\"_blank\">INAV Wiki pages</a>"
},
"escProtocol": {
"message": "ESC protocol"
},
@ -1962,7 +1965,7 @@
"message" : "Servo has to support refresh rate. Change only if you know that servo supports it. Too high refresh rate might damage servos!"
},
"logPwmOutputDisabled": {
"message" : "PWM output is disabled. Motors and servos will not work. Use <u>Configuration</u> tab to enable!"
"message" : "PWM output is disabled. Motors and servos will not work. Use <u>Outputs</u> tab to enable!"
},
"configurationGyroSyncTitle": {
"message" : "Synchronize looptime with gyroscope"
@ -2202,7 +2205,7 @@
"message": "Warning"
},
"presetApplyDescription": {
"message": "Preset overwrites selected configuration values including mixer, filtering, PIDs and other. Settings like: flight modes, radio settings, failsafe and OSD are not changed. Applied values should <strong>NOT</strong> treated as final values, but entry points for final tuning. <br> Always check new configuration before flying!"
"message": "<p style='color: darkred;'>Make sure that <strong>mixer</strong> was configured before applying any Presets!</p><p>Preset overwrites selected configuration values including mixer, filtering, PIDs and other. Settings like: flight modes, radio settings, failsafe and OSD are not changed. Applied values should <strong>NOT</strong> treated as final values, but entry points for final tuning. <br> Always check new configuration before flying!</p>"
},
"OK": {
"message": "OK"
@ -2963,6 +2966,9 @@
"input": {
"message": "Input"
},
"fixedValue": {
"message": "Fixed Value (µs)"
},
"weight": {
"message": "Weight (%)"
},
@ -3167,11 +3173,47 @@
"gyro_lpf_type_help": {
"message": "BIQUAD offers better noise attenuation for a price of higher delay. PT1 has lower attenuation but offers lower delay."
},
"gyro_stage2_lowpass_type": {
"message": "Gyro Stage 2 LPF type"
},
"gyro_stage2_lowpass_type_help": {
"message": "BIQUAD offers better noise attenuation for a price of higher delay. PT1 has lower attenuation but offers lower delay."
},
"dterm_lpf_type": {
"message": "D-term LPF type"
},
"dterm_lpf_type_help": {
"message": "BIQUAD offers better noise attenuation for a price of higher delay. PT1 has lower attenuation but offers lower delay."
},
"dterm_lpf2_type": {
"message": "D-term Stage 2 LPF type"
},
"dterm_lpf2_type_help": {
"message": "BIQUAD offers better noise attenuation for a price of higher delay. PT1 has lower attenuation but offers lower delay."
},
"dterm_lpf2_hz": {
"message": "D-term Stage 2 LPF cutoff frequency"
},
"dterm_lpf2_hz_help": {
"message": "Lowpass cutoff filter for D-term on ROLL and PITCH axises. 0 mean filter is disabled"
},
"tabFilteringAdvanced": {
"message": "Other filters"
},
"mainFilters": {
"message": "Main filters"
"message": "Gyro filters"
},
"rpmFilters": {
"message": "Gyro RPM filters"
},
"dtermFilters": {
"message": "D-term filters"
},
"rpm_gyro_filter_enabled": {
"message": "Gyro RPM filter (requires ESC telemetry)"
},
"rpm_gyro_min_hz": {
"message": "Gyro RPM filter min. frequency"
},
"acc_lpf_type": {
"message": "Accelerometer LPF type"
@ -3238,5 +3280,23 @@
},
"defaultsDialogInfo": {
"message": "INAV Configurator would like to know which kind of UAV you are configuring. Based on this information it will modify some default values to unlock the best flying performance. "
},
"throttleIdle": {
"message": "Motors IDLE power [%]"
},
"throttleIdleDigitalInfo": {
"message": "For digital protocols, IDLE can be lowered even down to 5-7% without motors stopping in the air. If a drone wobbles after pulling throttle low, try increasing IDLE to tune this behavior out."
},
"throttleIdleAnalogInfo": {
"message": "For analog protocols, IDLE can be lowered below 10% if motors are working smooth without stuttering. If a drone wobbles after pulling throttle low, try increasing IDLE to tune this behavior out."
},
"motor_poles": {
"message": "Number of motor poles (number of magnets)"
},
"motorStopWarning": {
"message": "Should be enabled on Airplanes, Rovers and Boats. Should not be enabled on Multirotors! On Multirotors, when Airmode is active, motors will not stop."
},
"dynamic_gyro_notch_enabled_help": {
"message": "Matrix Gyro Filter is the new generation of dynamic gyro notches available in INAV. It is recommended to enable it on all Multirotor builds on F4 and F7 flight controllers."
}
}

View file

@ -108,6 +108,7 @@ sources.js = [
'./js/vtx.js',
'./main.js',
'./js/tabs.js',
'./js/preset_definitions.js',
'./tabs/*.js',
'./js/eventFrequencyAnalyzer.js',
'./js/periodicStatusUpdater.js',

View file

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

View file

@ -43,6 +43,10 @@ helper.defaultsDialog = (function() {
},
{
key: "mc_iterm_relax_type",
value: "SETPOINT"
},
{
key: "mc_iterm_relax",
value: "RP"
},
{

123
js/fc.js
View file

@ -30,7 +30,7 @@ var CONFIG,
ARMING_CONFIG,
FC_CONFIG,
MISC,
_3D,
REVERSIBLE_MOTORS,
DATAFLASH,
SDCARD,
BLACKBOX,
@ -415,11 +415,11 @@ var FC = {
emergencyDescentRate: null
};
_3D = {
deadband3d_low: 0,
deadband3d_high: 0,
neutral3d: 0,
deadband3d_throttle: 0
REVERSIBLE_MOTORS = {
deadband_low: 0,
deadband_high: 0,
neutral: 0,
deadband_throttle: 0
};
DATAFLASH = {
@ -549,7 +549,7 @@ var FC = {
{bit: 7, group: 'gps', name: 'GPS', haveTip: true},
{bit: 10, group: 'other', name: 'TELEMETRY', showNameInTip: true},
{bit: 11, group: 'batteryCurrent', name: 'CURRENT_METER'},
{bit: 12, group: 'other', name: '3D', showNameInTip: true},
{bit: 12, group: 'other', name: 'REVERSIBLE_MOTORS', showNameInTip: true},
{bit: 15, group: 'other', name: 'RSSI_ADC', haveTip: true, showNameInTip: true},
{bit: 16, group: 'other', name: 'LED_STRIP', showNameInTip: true},
{bit: 17, group: 'other', name: 'DASHBOARD', showNameInTip: true},
@ -562,10 +562,13 @@ var FC = {
{bit: 30, group: 'other', name: 'FW_LAUNCH', haveTip: false, showNameInTip: false},
{bit: 2, group: 'other', name: 'TX_PROF_SEL', haveTip: false, showNameInTip: false},
{bit: 0, group: 'other', name: 'THR_VBAT_COMP', haveTip: true, showNameInTip: true},
{bit: 3, group: 'other', name: 'BAT_PROFILE_AUTOSWITCH', haveTip: true, showNameInTip: true},
{bit: 5, group: 'other', name: 'DYNAMIC_FILTERS', haveTip: true, showNameInTip: true}
{bit: 3, group: 'other', name: 'BAT_PROFILE_AUTOSWITCH', haveTip: true, showNameInTip: true}
];
if (semver.gte(CONFIG.flightControllerVersion, "2.4.0") && semver.lt(CONFIG.flightControllerVersion, "2.5.0")) {
features.push({bit: 5, group: 'other', name: 'DYNAMIC_FILTERS', haveTip: true, showNameInTip: true});
}
return features.reverse();
},
isFeatureEnabled: function (featureName, features) {
@ -695,94 +698,6 @@ var FC = {
'Disabled'
];
},
getRxTypes: function() {
// Keep value field in sync with rxReceiverType_e in rx.h
var rxTypes = [
{
name: 'RX_SERIAL',
bit: 3,
value: 3,
},
{
name: 'RX_PPM',
bit: 0,
value: 2,
},
{
name: 'RX_PWM',
bit: 13,
value: 1,
},
];
if (semver.gte(CONFIG.apiVersion, "1.21.0")) {
rxTypes.push({
name: 'RX_SPI',
bit: 25,
value: 5,
});
}
rxTypes.push({
name: 'RX_MSP',
bit: 14,
value: 4,
});
// Versions using feature bits don't allow not having an
// RX and fallback to RX_PPM.
rxTypes.push({
name: 'RX_NONE',
value: 0,
});
return rxTypes;
},
isRxTypeEnabled: function(rxType) {
if (typeof rxType === 'string') {
var types = this.getRxTypes();
for (var ii = 0; ii < types.length; ii++) {
if (types[ii].name == rxType) {
rxType = types[ii];
break;
}
}
}
return RX_CONFIG.receiver_type == rxType.value;
},
setRxTypeEnabled: function(rxType) {
RX_CONFIG.receiver_type = rxType.value;
},
getSerialRxTypes: function () {
var data = [
'SPEKTRUM1024',
'SPEKTRUM2048',
'SBUS',
'SUMD',
'SUMH',
'XBUS_MODE_B',
'XBUS_MODE_B_RJ01',
'IBUS',
'JETI EXBUS',
'TBS Crossfire',
'FPort'
];
return data;
},
getSPIProtocolTypes: function () {
return [
'V202 250Kbps',
'V202 1Mbps',
'Syma X',
'Syma X5C',
'Cheerson CX10',
'Cheerson CX10A',
'JJRC H8_3D',
'iNav Reference protocol',
'eLeReS'
];
},
getSensorAlignments: function () {
return [
'CW 0°',
@ -1077,7 +992,7 @@ var FC = {
];
},
getServoMixInputName: function (input) {
return getServoMixInputNames()[input];
return this.getServoMixInputNames()[input];
},
getModeId: function (name) {
for (var i = 0; i < AUX_CONFIG.length; i++) {
@ -1090,7 +1005,7 @@ var FC = {
return bit_check(CONFIG.mode[Math.trunc(i / 32)], i % 32);
},
isModeEnabled: function (name) {
return FC.isModeBitSet(FC.getModeId(name));
return this.isModeBitSet(this.getModeId(name));
},
getLogicOperators: function () {
return {
@ -1190,7 +1105,15 @@ var FC = {
14: "Throttle position [%]",
15: "Roll [deg]",
16: "Pitch [deg]",
17: "Flight mode"
17: "Is Armed",
18: "Is Autolaunch",
19: "Is Controlling Altitude",
20: "Is Controlling Position",
21: "Is Emergency Landing",
22: "Is RTH",
23: "Is WP",
24: "Is Landing",
25: "Is Failsafe"
}
},
3: {

View file

@ -28,7 +28,7 @@ var GUI_control = function () {
'logging',
'onboard_logging',
'modes',
'motors',
'outputs',
'pid_tuning',
'ports',
'receiver',
@ -128,7 +128,7 @@ GUI_control.prototype.switchery = function() {
GUI_control.prototype.content_ready = function (callback) {
const content = $('#content').removeClass('loading');
$('.togglesmall').each(function(index, elem) {
var switchery = new Switchery(elem, {
size: 'small',
@ -190,7 +190,13 @@ GUI_control.prototype.content_ready = function (callback) {
});
});
if (callback) callback();
const duration = content.data('empty') ? 0 : 400;
$('#content .data-loading').fadeOut(duration, function() {
$(this).remove();
});
if (callback) {
callback();
}
};
GUI_control.prototype.updateStatusBar = function() {
@ -243,5 +249,15 @@ GUI_control.prototype.simpleBind = function () {
});
};
GUI_control.prototype.load = function(rel, callback) {
const content = $('#content').addClass('loading');
$.get(rel, function(data) {
$(data).appendTo(content);
if (callback) {
callback();
}
});
}
// initialize object into GUI variable
var GUI = new GUI_control();

View file

@ -102,3 +102,14 @@ DataView.prototype.readString = function() {
}
return s;
};
DataView.prototype.asHex = function() {
let s = "";
for (let ii = 0; ii < this.byteLength; ii++) {
if (ii == this.offset) {
s += "/"
}
s += this.getUint8(ii).toString(16);
}
return s;
};

View file

@ -19,8 +19,12 @@ function localize() {
$('[data-i18n]:not(.i18n-replaced)').each(function() {
var element = $(this);
element.html(translate(element.data('i18n')));
const translated = translate(element.data('i18n'));
element.html(translated);
element.addClass('i18n-replaced');
if (element.attr("title") !== "") {
element.attr("title", translated);
}
});
$('[i18n_title]:not(.i18n_title-replaced)').each(function() {

View file

@ -517,6 +517,52 @@ const mixerList = [
new ServoMixRule(3, INPUT_STABILIZED_YAW, 50, 0),
new ServoMixRule(4, INPUT_STABILIZED_YAW, 50, 0),
]
},
{
id: 31,
name: 'Rover',
model: 'custom',
image: 'custom',
enabled: true,
legacy: false,
platform: PLATFORM_ROVER,
motorMixer: [
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
],
servoMixer: [
new ServoMixRule(3, INPUT_STABILIZED_YAW, 100, 0),
]
},
{
id: 32,
name: 'Boat',
model: 'custom',
image: 'custom',
enabled: true,
legacy: false,
platform: PLATFORM_BOAT,
motorMixer: [
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
],
servoMixer: [
new ServoMixRule(3, INPUT_STABILIZED_YAW, 100, 0),
]
}
,
{
id: 33,
name: 'Other',
model: 'custom',
image: 'custom',
enabled: true,
legacy: false,
platform: PLATFORM_OTHER,
motorMixer: [
new MotorMixRule(1.0, 0.0, 0.0, 0.0),
],
servoMixer: [
new ServoMixRule(3, INPUT_STABILIZED_YAW, 100, 0),
]
}
];
@ -548,19 +594,19 @@ const platformList = [
{
id: 4,
name: "Rover",
enabled: false,
enabled: true,
flapsPossible: false
},
{
id: 5,
name: "Boat",
enabled: false,
enabled: true,
flapsPossible: false
},
{
id: 6,
name: "Other",
enabled: false,
enabled: true,
flapsPossible: false
}
];

View file

@ -52,6 +52,7 @@ var mspHelper = (function (gui) {
'ESC': 18,
'GSM_SMS': 19,
'FRSKY_OSD': 20,
'DJI_FPV': 21,
};
// Required for MSP_DEBUGMSG because console.log() doesn't allow omitting
@ -409,14 +410,14 @@ var mspHelper = (function (gui) {
BATTERY_CONFIG.battery_capacity_unit = (data.getUint8(offset++) ? 'mWh' : 'mAh');
break;
case MSPCodes.MSP_3D:
_3D.deadband3d_low = data.getUint16(offset, true);
REVERSIBLE_MOTORS.deadband_low = data.getUint16(offset, true);
offset += 2;
_3D.deadband3d_high = data.getUint16(offset, true);
REVERSIBLE_MOTORS.deadband_high = data.getUint16(offset, true);
offset += 2;
_3D.neutral3d = data.getUint16(offset, true);
REVERSIBLE_MOTORS.neutral = data.getUint16(offset, true);
if (semver.lt(CONFIG.apiVersion, "1.17.0")) {
offset += 2;
_3D.deadband3d_throttle = data.getUint16(offset, true);
REVERSIBLE_MOTORS.deadband_throttle = data.getUint16(offset, true);
}
break;
case MSPCodes.MSP_MOTOR_PINS:
@ -586,7 +587,7 @@ var mspHelper = (function (gui) {
RC_deadband.yaw_deadband = data.getUint8(offset++);
RC_deadband.alt_hold_deadband = data.getUint8(offset++);
if (semver.gte(CONFIG.apiVersion, "1.24.0")) {
_3D.deadband3d_throttle = data.getUint16(offset, true);
REVERSIBLE_MOTORS.deadband_throttle = data.getUint16(offset, true);
}
break;
case MSPCodes.MSP_SENSOR_ALIGNMENT:
@ -1494,7 +1495,10 @@ var mspHelper = (function (gui) {
dataHandler.callbacks.splice(i, 1);
// fire callback
if (callback) callback({'command': dataHandler.code, 'data': data, 'length': dataHandler.message_length_expected});
if (callback) {
callback({'command': dataHandler.code, 'data': data, 'length': dataHandler.message_length_expected});
}
break;
}
}
}
@ -1799,15 +1803,15 @@ var mspHelper = (function (gui) {
break;
case MSPCodes.MSP_SET_3D:
buffer.push(lowByte(_3D.deadband3d_low));
buffer.push(highByte(_3D.deadband3d_low));
buffer.push(lowByte(_3D.deadband3d_high));
buffer.push(highByte(_3D.deadband3d_high));
buffer.push(lowByte(_3D.neutral3d));
buffer.push(highByte(_3D.neutral3d));
buffer.push(lowByte(REVERSIBLE_MOTORS.deadband_low));
buffer.push(highByte(REVERSIBLE_MOTORS.deadband_low));
buffer.push(lowByte(REVERSIBLE_MOTORS.deadband_high));
buffer.push(highByte(REVERSIBLE_MOTORS.deadband_high));
buffer.push(lowByte(REVERSIBLE_MOTORS.neutral));
buffer.push(highByte(REVERSIBLE_MOTORS.neutral));
if (semver.lt(CONFIG.apiVersion, "1.17.0")) {
buffer.push(lowByte(_3D.deadband3d_throttle));
buffer.push(highByte(_3D.deadband3d_throttle));
buffer.push(lowByte(REVERSIBLE_MOTORS.deadband_throttle));
buffer.push(highByte(REVERSIBLE_MOTORS.deadband_throttle));
}
break;
@ -1816,8 +1820,8 @@ var mspHelper = (function (gui) {
buffer.push(RC_deadband.yaw_deadband);
buffer.push(RC_deadband.alt_hold_deadband);
if (semver.gte(CONFIG.apiVersion, "1.24.0")) {
buffer.push(lowByte(_3D.deadband3d_throttle));
buffer.push(highByte(_3D.deadband3d_throttle));
buffer.push(lowByte(REVERSIBLE_MOTORS.deadband_throttle));
buffer.push(highByte(REVERSIBLE_MOTORS.deadband_throttle));
}
break;

1408
js/preset_definitions.js Normal file

File diff suppressed because it is too large Load diff

View file

@ -353,7 +353,6 @@ function onConnect() {
}, 100);
helper.interval.add('global_data_refresh', helper.periodicStatusUpdater.run, helper.periodicStatusUpdater.getUpdateInterval(serial.bitrate), false);
helper.defaultsDialog.init();
}
function onClosed(result) {

View file

@ -52,7 +52,15 @@ var Settings = (function () {
input.val(s.value);
} else if (s.setting.type == 'float') {
input.attr('type', 'number');
let dataStep = input.data("step");
if (dataStep !== undefined) {
input.attr('step', dataStep);
} else {
input.attr('step', "0.01");
}
input.attr('min', s.setting.min);
input.attr('max', s.setting.max);
input.val(s.value.toFixed(2));

View file

@ -985,6 +985,14 @@ li.active .ic_mixer {
/* Cause the height to shrink to contain its floated contents while log is open */
}
#content.loading {
overflow-y: hidden;
}
#content.loading > * {
opacity: 0;
}
#status-bar {
position: fixed;
bottom: 0;
@ -1015,9 +1023,17 @@ li.active .ic_mixer {
}
.data-loading {
z-index: 10000;
position: absolute;
top: 0;
width: 100%;
height: 100%;
background: url('../images/loading-bars.svg') no-repeat center 45%;
background-color: #FFF;
}
#content.loading .data-loading {
opacity: 1;
}
.data-loading p {

View file

@ -185,8 +185,8 @@
<li class="tab_mixer">
<a href="#" data-i18n="tabMixer" class="tabicon ic_mixer" title="Mixer"></a>
</li>
<li class="tab_motors">
<a href="#" data-i18n="tabMotorTesting" class="tabicon ic_motor" title="Motors"></a>
<li class="tab_outputs">
<a href="#" data-i18n="tabOutputs" class="tabicon ic_motor" title="Outputs"></a>
</li>
<li class="tab_profiles">
<a href="#" data-i18n="tabPresets" class="tabicon ic_wizzard" title="Presets"></a>

17
main.js
View file

@ -91,20 +91,10 @@ $(document).ready(function () {
}
});
win.setMinimumSize(1024, 800);
win.setMinimumSize(800, 600);
win.on('close', function () {
//Save window size and position
// var height = win.height;
// var width = win.width;
//
// if (height < 400) {
// height = 400
// }
// if (width < 512) {
// width = 512
// }
chrome.storage.local.set({'windowSize': {height: win.height, width: win.width, x: win.x, y: win.y}}, function () {
// Notify that we saved.
console.log('Settings saved');
@ -171,6 +161,7 @@ $(document).ready(function () {
// detach listeners and remove element data
var content = $('#content');
content.data('empty', !!content.is(':empty'));
content.empty();
// display loading screen
@ -238,8 +229,8 @@ $(document).ready(function () {
case 'mixer':
TABS.mixer.initialize(content_ready);
break;
case 'motors':
TABS.motors.initialize(content_ready);
case 'outputs':
TABS.outputs.initialize(content_ready);
break;
case 'osd':
TABS.osd.initialize(content_ready);

View file

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

2485
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,13 @@
{
"name": "inav-configurator",
"description": "INAV Configurator",
"version": "2.3.2",
"version": "2.5.0",
"main": "main.html",
"default_locale": "en",
"scripts": {
"start": "node node_modules/gulp/bin/gulp.js build && node node_modules/nw/bin/nw ."
"start": "node node_modules/gulp/bin/gulp.js build && node node_modules/nw/bin/nw .",
"gulp": "gulp",
"nw": "nw"
},
"window": {
"title": "INAV Configurator",
@ -33,7 +35,7 @@
"jquery-ui-npm": "1.12.0",
"marked": "^0.3.17",
"minimist": "^1.2.0",
"nw": "^0.39.3-sdk",
"nw": "^0.42.2-sdk",
"nw-dialog": "^1.0.7",
"openlayers": "^4.6.5",
"temp": "^0.8.3",

View file

@ -4,7 +4,7 @@
FONT_VERSION = 1
FONTS = default vision impact clarity clarity_medium bold large
FONTS = default vision impact impact_mini clarity clarity_medium bold large
CHARMAPS = $(addsuffix .mcm, $(FONTS))
PREVIEWS = $(addsuffix .png, $(FONTS))

BIN
resources/osd/bold/140.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

After

Width:  |  Height:  |  Size: 274 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 255 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 265 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 267 B

Before After
Before After

BIN
resources/osd/impact/024.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 265 B

Before After
Before After

BIN
resources/osd/impact/025.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 292 B

Before After
Before After

BIN
resources/osd/impact/026.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 290 B

Before After
Before After

BIN
resources/osd/impact/027.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 276 B

Before After
Before After

BIN
resources/osd/impact/028.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 242 B

Before After
Before After

BIN
resources/osd/impact/029.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 245 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 322 B

Before After
Before After

BIN
resources/osd/impact/034.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 264 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 254 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 250 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 219 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 217 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 210 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 264 B

Before After
Before After

BIN
resources/osd/impact/097.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 268 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 270 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 256 B

Before After
Before After

BIN
resources/osd/impact/100.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 259 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 247 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 268 B

Before After
Before After

BIN
resources/osd/impact/103.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 266 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 268 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 256 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 262 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

After

Width:  |  Height:  |  Size: 248 B

Before After
Before After

BIN
resources/osd/impact/108.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 267 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 240 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

After

Width:  |  Height:  |  Size: 272 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 260 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 244 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 262 B

Before After
Before After

BIN
resources/osd/impact/122.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 281 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 314 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 273 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 238 B

Before After
Before After

BIN
resources/osd/impact/154.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

After

Width:  |  Height:  |  Size: 236 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 B

After

Width:  |  Height:  |  Size: 275 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 273 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 327 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 279 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 265 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 235 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 243 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 294 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 261 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 280 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 257 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 268 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 270 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 225 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 244 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 243 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 252 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 314 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 281 B

Before After
Before After

BIN
resources/osd/impact/202-203.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 320 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 214 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 262 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 258 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 271 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 375 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 398 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 332 B

Before After
Before After

32769
resources/osd/impact_mini.mcm Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Some files were not shown because too many files have changed in this diff Show more