Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNavFlight/inav-configurator.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Spychalski <pspychalski@gmail.com>2018-12-29 22:14:18 +0300
committerGitHub <noreply@github.com>2018-12-29 22:14:18 +0300
commit825f861a50c8834d22b8ff6574af085523ce678a (patch)
tree2cbf2b8b2634d4246e0d16e15c5b6723d0412e70
parent10e488a09a26120171b6f3cc58a66748a6dc38a9 (diff)
parente154a4762e1d47abf01a22588abe6cda757a581f (diff)
Merge pull request #621 from iNavFlight/dzikuvx-dshot-support
Basic DSHOT support
-rw-r--r--js/fc.js28
-rw-r--r--tabs/configuration.html10
-rw-r--r--tabs/configuration.js87
3 files changed, 80 insertions, 45 deletions
diff --git a/js/fc.js b/js/fc.js
index ecf78b96..cfd4a462 100644
--- a/js/fc.js
+++ b/js/fc.js
@@ -923,6 +923,34 @@ var FC = {
16000: "16kHz",
32000: "32kHz"
}
+ },
+ 5: {
+ name: "DSHOT150",
+ defaultRate: 4000,
+ rates: {
+ 4000: "4kHz"
+ }
+ },
+ 6: {
+ name: "DSHOT300",
+ defaultRate: 8000,
+ rates: {
+ 8000: "8kHz"
+ }
+ },
+ 7: {
+ name: "DSHOT600",
+ defaultRate: 16000,
+ rates: {
+ 16000: "16kHz"
+ }
+ },
+ 8: {
+ name: "DSHOT1200",
+ defaultRate: 16000,
+ rates: {
+ 16000: "16kHz"
+ }
}
};
},
diff --git a/tabs/configuration.html b/tabs/configuration.html
index 8923607d..8f469d49 100644
--- a/tabs/configuration.html
+++ b/tabs/configuration.html
@@ -290,7 +290,7 @@
</label>
<div class="helpicon cf_tip" data-i18n_title="escProtocolHelp"></div>
</div>
- <div class="select">
+ <div class="select hide-for-shot">
<select name="esc-rate" id="esc-rate"></select>
<label for="esc-rate">
<span data-i18n="escRefreshRate"></span>
@@ -323,25 +323,25 @@
</div>
<!-- -->
- <div class="number">
+ <div class="number hide-for-shot">
<input type="number" id="minthrottle" name="minthrottle" min="0" max="2000" />
<label for="minthrottle">
<span data-i18n="configurationThrottleMinimum"></span>
</label>
</div>
- <div class="number midthrottle_wrapper">
+ <div class="number midthrottle_wrapper hide-for-shot">
<input type="number" id="midthrottle" name="midthrottle" min="1200" max="1700" />
<label for="midthrottle">
<span data-i18n="configurationThrottleMid"></span>
</label>
</div>
- <div class="number">
+ <div class="number hide-for-shot">
<input type="number" id="maxthrottle" name="maxthrottle" min="0" max="2000" />
<label for="maxthrottle">
<span data-i18n="configurationThrottleMaximum"></span>
</label>
</div>
- <div class="number">
+ <div class="number hide-for-shot">
<input type="number" id="mincommand" name="mincommand" min="0" max="2000" />
<label for="mincommand">
<span data-i18n="configurationThrottleMinimumCommand"></span>
diff --git a/tabs/configuration.js b/tabs/configuration.js
index f7adfc6a..f3f08d3d 100644
--- a/tabs/configuration.js
+++ b/tabs/configuration.js
@@ -11,9 +11,9 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
var craftName = null;
- var loadCraftName = function(callback) {
+ var loadCraftName = function (callback) {
if (!CONFIG.name || CONFIG.name.trim() === '') {
- mspHelper.getCraftName(function(name) {
+ mspHelper.getCraftName(function (name) {
craftName = name;
callback();
});
@@ -22,7 +22,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
};
- var saveCraftName = function(callback) {
+ var saveCraftName = function (callback) {
mspHelper.setCraftName(craftName, callback);
};
@@ -84,7 +84,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
//noinspection JSUnresolvedVariable
GUI.log(chrome.i18n.getMessage('configurationEepromSaved'));
- GUI.tab_switch_cleanup(function() {
+ GUI.tab_switch_cleanup(function () {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
});
}
@@ -114,8 +114,8 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
mixer_list_e.change(function () {
BF_CONFIG.mixerConfiguration = parseInt($(this).val(), 10);
- $('.mixerPreview img').attr('src', './resources/motor_order/'
- + helper.mixer.getById(BF_CONFIG.mixerConfiguration).image + '.svg');
+ $('.mixerPreview img').attr('src', './resources/motor_order/' +
+ helper.mixer.getById(BF_CONFIG.mixerConfiguration).image + '.svg');
});
// select current mixer configuration
@@ -135,7 +135,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
var rxTypeOptions = $('[data-rx-type]');
- var updateRxOptions = function(animated) {
+ var updateRxOptions = function (animated) {
var duration = animated ? 400 : 0;
rxTypeOptions.each(function (ii, obj) {
var $obj = $(obj);
@@ -180,29 +180,29 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
if (features[i].mode === 'group') {
- row_e = $('<div class="radio">'
- + '<input type="radio" class="feature" name="' + features[i].group + '" title="' + features[i].name + '"'
- + ' value="' + features[i].bit + '"'
- + ' id="feature-' + features[i].bit + '" '
- + '>'
- + '<label for="feature-' + features[i].bit + '">'
- + '<span data-i18n="feature' + features[i].name + '"></span>'
- + '</label>'
- + feature_tip_html
- + '</div>');
+ row_e = $('<div class="radio">' +
+ '<input type="radio" class="feature" name="' + features[i].group + '" title="' + features[i].name + '"' +
+ ' value="' + features[i].bit + '"' +
+ ' id="feature-' + features[i].bit + '" ' +
+ '>' +
+ '<label for="feature-' + features[i].bit + '">' +
+ '<span data-i18n="feature' + features[i].name + '"></span>' +
+ '</label>' +
+ feature_tip_html +
+ '</div>');
radioGroups.push(features[i].group);
} else {
- row_e = $('<div class="checkbox">'
- + '<input type="checkbox" class="feature toggle" name="' + features[i].name + '" title="' + features[i].name + '"'
- + ' id="feature-' + features[i].bit + '" '
- + '>'
- + '<label for="feature-' + features[i].bit + '">'
- + '<span data-i18n="feature' + features[i].name + '"></span>'
- + '</label>'
- + feature_tip_html
- + '</div>');
+ row_e = $('<div class="checkbox">' +
+ '<input type="checkbox" class="feature toggle" name="' + features[i].name + '" title="' + features[i].name + '"' +
+ ' id="feature-' + features[i].bit + '" ' +
+ '>' +
+ '<label for="feature-' + features[i].bit + '">' +
+ '<span data-i18n="feature' + features[i].name + '"></span>' +
+ '</label>' +
+ feature_tip_html +
+ '</div>');
var feature_e = row_e.find('input.feature');
@@ -225,7 +225,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
var controls_e = $('input[name="' + group + '"].feature');
- controls_e.each(function() {
+ controls_e.each(function () {
var bit = parseInt($(this).attr('value'));
var state = bit_check(BF_CONFIG.features, bit);
@@ -241,9 +241,9 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
var orientation_mag_e = $('select.magalign');
for (i = 0; i < alignments.length; i++) {
- orientation_gyro_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
- orientation_acc_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
- orientation_mag_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
+ orientation_gyro_e.append('<option value="' + (i + 1) + '">' + alignments[i] + '</option>');
+ orientation_acc_e.append('<option value="' + (i + 1) + '">' + alignments[i] + '</option>');
+ orientation_mag_e.append('<option value="' + (i + 1) + '">' + alignments[i] + '</option>');
}
orientation_gyro_e.val(SENSOR_ALIGNMENT.align_gyro);
orientation_acc_e.val(SENSOR_ALIGNMENT.align_acc);
@@ -394,7 +394,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
//fill motor disarm params and FC loop time
$('input[name="autodisarmdelay"]').val(ARMING_CONFIG.auto_disarm_delay);
$('div.disarm').show();
- if(bit_check(BF_CONFIG.features, 4)) {//MOTOR_STOP
+ if (bit_check(BF_CONFIG.features, 4)) { //MOTOR_STOP
$('div.disarmdelay').show();
} else {
$('div.disarmdelay').hide();
@@ -474,6 +474,13 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
$escRate.append('<option value="' + ADVANCED_CONFIG.motorPwmRate + '">' + ADVANCED_CONFIG.motorPwmRate + 'Hz</option>');
}
+ if (ADVANCED_CONFIG.motorPwmProtocol >= 5) {
+ //DSHOT protocols, simplify UI
+ $('.hide-for-shot').addClass('is-hidden');
+ } else {
+ $('.hide-for-shot').removeClass('is-hidden');
+ }
+
}
var $escProtocol = $('#esc-protocol');
@@ -510,8 +517,8 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
}
/*
- * If rate from FC is not on the list, add a new entry
- */
+ * If rate from FC is not on the list, add a new entry
+ */
if ($servoRate.find('[value="' + ADVANCED_CONFIG.servoPwmRate + '"]').length == 0) {
$servoRate.append('<option value="' + ADVANCED_CONFIG.servoPwmRate + '">' + ADVANCED_CONFIG.servoPwmRate + 'Hz</option>');
}
@@ -590,8 +597,8 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
$gyroSync.change();
/*
- * Async mode select
- */
+ * Async mode select
+ */
GUI.fillSelect($asyncMode, FC.getAsyncModes());
$asyncMode.val(INAV_PID_CONFIG.asynchronousMode);
$asyncMode.change(function () {
@@ -716,11 +723,11 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
if (state) {
BF_CONFIG.features = bit_set(BF_CONFIG.features, index);
- if(element.attr('name') === 'MOTOR_STOP')
+ if (element.attr('name') === 'MOTOR_STOP')
$('div.disarmdelay').show();
} else {
BF_CONFIG.features = bit_clear(BF_CONFIG.features, index);
- if(element.attr('name') === 'MOTOR_STOP')
+ if (element.attr('name') === 'MOTOR_STOP')
$('div.disarmdelay').hide();
}
});
@@ -733,7 +740,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
var controls_e = $('input[name="' + group + '"]');
var selected_bit = controls_e.filter(':checked').val();
- controls_e.each(function() {
+ controls_e.each(function () {
var bit = $(this).attr('value');
var selected = (selected_bit == bit);
@@ -829,7 +836,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
/*
* send gyro LPF and async_mode tracking
*/
- if(semver.gte(CONFIG.flightControllerVersion, "1.5.0")) {
+ if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) {
googleAnalytics.sendEvent('Setting', 'GyroLpf', FC.getGyroLpfValues()[INAV_PID_CONFIG.gyroscopeLpf].label);
googleAnalytics.sendEvent('Setting', 'AsyncMode', FC.getAsyncModes()[INAV_PID_CONFIG.asynchronousMode]);
@@ -871,4 +878,4 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
TABS.configuration.cleanup = function (callback) {
if (callback) callback();
-};
+}; \ No newline at end of file