Merge pull request #319 from NightHawk32/development
Prevent motor test form enabling motors in 3D mode if msp 3D isn't supported10.3.x-maintenance
commit
f6a92f9b6f
|
@ -410,17 +410,17 @@
|
|||
</div>
|
||||
<div class="spacer_box">
|
||||
<div class="number">
|
||||
<label> <input type="number" name="3ddeadbandlow" step="1" min="1000" max="2000" /> <span
|
||||
<label> <input type="number" name="3ddeadbandlow" step="1" min="1425" max="1500" /> <span
|
||||
i18n="configuration3dDeadbandLow"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="number">
|
||||
<label> <input type="number" name="3ddeadbandhigh" step="1" min="1000" max="2000" /> <span
|
||||
<label> <input type="number" name="3ddeadbandhigh" step="1" min="1500" max="1575" /> <span
|
||||
i18n="configuration3dDeadbandHigh"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="number">
|
||||
<label> <input type="number" name="3dneutral" step="1" min="1000" max="2000" /> <span
|
||||
<label> <input type="number" name="3dneutral" step="1" min="1475" max="1525" /> <span
|
||||
i18n="configuration3dNeutral"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -439,4 +439,4 @@
|
|||
<a class="save" href="#" i18n="configurationButtonSave"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -92,15 +92,15 @@
|
|||
<div class="motor_testing">
|
||||
<div class="left">
|
||||
<div class="sliders">
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
type="range" min="1000" max="2000" value="1000" disabled="disabled" /> <input
|
||||
class="master" type="range" min="1000" max="2000" value="1000" disabled="disabled" />
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled"/>
|
||||
<input type="range" min="1000" max="2000" value="1000" disabled="disabled" class="master"/>
|
||||
</div>
|
||||
<div class="values">
|
||||
<ul>
|
||||
|
@ -118,7 +118,7 @@
|
|||
</div>
|
||||
<div class="notice">
|
||||
<p i18n="motorsNotice"></p>
|
||||
<label><input id="motorsEnableTestMode" type="checkbox" /><span
|
||||
<label><input id="motorsEnableTestMode" type="checkbox" class="togglesmall"/><span
|
||||
class="motorsEnableTestMode" i18n="motorsEnableControl"></span></label>
|
||||
</div>
|
||||
<div class="cler-both"></div>
|
||||
|
@ -126,4 +126,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
109
tabs/motors.js
109
tabs/motors.js
|
@ -183,7 +183,8 @@ TABS.motors.initialize = function (callback) {
|
|||
self.allowTestMode = false;
|
||||
}
|
||||
|
||||
$('#motorsEnableTestMode').prop('disabled', 'true');
|
||||
$('#motorsEnableTestMode').prop('checked', false);
|
||||
$('#motorsEnableTestMode').prop('disabled', true);
|
||||
|
||||
update_model(CONFIG.multiType);
|
||||
|
||||
|
@ -317,42 +318,49 @@ TABS.motors.initialize = function (callback) {
|
|||
$('div.values li:not(:last)').text(MISC.mincommand);
|
||||
|
||||
if(self.feature3DEnabled && self.feature3DSupported) {
|
||||
//Arbitrary sanity checks
|
||||
//Note: values may need to be revisited
|
||||
if(_3D.neutral3d > 1575 || _3D.neutral3d < 1425)
|
||||
_3D.neutral3d = 1500;
|
||||
|
||||
$('div.sliders input').val(_3D.neutral3d);
|
||||
} else {
|
||||
$('div.sliders input').val(MISC.mincommand);
|
||||
}
|
||||
|
||||
// UI hooks
|
||||
var buffering_set_motor = [],
|
||||
buffer_delay = false;
|
||||
$('div.sliders input:not(.master)').on('input', function () {
|
||||
if(self.allowTestMode){
|
||||
// UI hooks
|
||||
var buffering_set_motor = [],
|
||||
buffer_delay = false;
|
||||
$('div.sliders input:not(.master)').on('input', function () {
|
||||
|
||||
var index = $(this).index(),
|
||||
buffer = [],
|
||||
i;
|
||||
var index = $(this).index(),
|
||||
buffer = [],
|
||||
i;
|
||||
|
||||
$('div.values li').eq(index).text($(this).val());
|
||||
$('div.values li').eq(index).text($(this).val());
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
var val = parseInt($('div.sliders input').eq(i).val());
|
||||
for (i = 0; i < 8; i++) {
|
||||
var val = parseInt($('div.sliders input').eq(i).val());
|
||||
|
||||
buffer.push(lowByte(val));
|
||||
buffer.push(highByte(val));
|
||||
}
|
||||
buffer.push(lowByte(val));
|
||||
buffer.push(highByte(val));
|
||||
}
|
||||
|
||||
buffering_set_motor.push(buffer);
|
||||
|
||||
buffering_set_motor.push(buffer);
|
||||
if (!buffer_delay) {
|
||||
buffer_delay = setTimeout(function () {
|
||||
buffer = buffering_set_motor.pop();
|
||||
|
||||
MSP.send_message(MSP_codes.MSP_SET_MOTOR, buffer);
|
||||
|
||||
if (!buffer_delay) {
|
||||
buffer_delay = setTimeout(function () {
|
||||
buffer = buffering_set_motor.pop();
|
||||
|
||||
MSP.send_message(MSP_codes.MSP_SET_MOTOR, buffer);
|
||||
|
||||
buffering_set_motor = [];
|
||||
buffer_delay = false;
|
||||
}, 10);
|
||||
}
|
||||
});
|
||||
buffering_set_motor = [];
|
||||
buffer_delay = false;
|
||||
}, 10);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('div.sliders input.master').on('input', function () {
|
||||
var val = $(this).val();
|
||||
|
@ -379,8 +387,7 @@ TABS.motors.initialize = function (callback) {
|
|||
$('div.sliders input').val(MISC.mincommand);
|
||||
}
|
||||
|
||||
// trigger change event so values are sent to mcu
|
||||
$('div.sliders input').trigger('input');
|
||||
$('div.sliders input').trigger('input');
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -388,7 +395,7 @@ TABS.motors.initialize = function (callback) {
|
|||
var motors_running = false;
|
||||
|
||||
for (var i = 0; i < number_of_valid_outputs; i++) {
|
||||
if( ! bit_check(BF_CONFIG.features,12) ){
|
||||
if( !self.feature3DEnabled ){
|
||||
if (MOTOR_DATA[i] > MISC.mincommand) {
|
||||
motors_running = true;
|
||||
break;
|
||||
|
@ -402,7 +409,7 @@ TABS.motors.initialize = function (callback) {
|
|||
}
|
||||
|
||||
if (motors_running) {
|
||||
if (!self.armed) {
|
||||
if (!self.armed && self.allowTestMode) {
|
||||
$('#motorsEnableTestMode').prop('checked', true);
|
||||
}
|
||||
// motors are running adjust sliders to current values
|
||||
|
@ -448,26 +455,9 @@ TABS.motors.initialize = function (callback) {
|
|||
}
|
||||
|
||||
var full_block_scale = MISC.maxthrottle - MISC.mincommand;
|
||||
function update_ui() {
|
||||
|
||||
var previousArmState = self.armed;
|
||||
|
||||
update_arm_status();
|
||||
|
||||
if (self.armed) {
|
||||
$('#motorsEnableTestMode').prop('disabled', true);
|
||||
$('#motorsEnableTestMode').prop('checked', false);
|
||||
} else {
|
||||
if (self.allowTestMode) {
|
||||
$('#motorsEnableTestMode').prop('disabled', false);
|
||||
}
|
||||
}
|
||||
|
||||
if (previousArmState != self.armed) {
|
||||
console.log('arm state change detected');
|
||||
$('#motorsEnableTestMode').change();
|
||||
}
|
||||
|
||||
|
||||
function update_ui() {
|
||||
var previousArmState = self.armed;
|
||||
var block_height = $('div.m-block:first').height();
|
||||
|
||||
for (var i = 0; i < MOTOR_DATA.length; i++) {
|
||||
|
@ -490,6 +480,23 @@ TABS.motors.initialize = function (callback) {
|
|||
$('.servo-' + i + ' .label', servos_wrapper).text(SERVO_DATA[i]);
|
||||
$('.servo-' + i + ' .indicator', servos_wrapper).css({'margin-top' : margin_top + 'px', 'height' : height + 'px', 'background-color' : 'rgba(89,170,41,1'+ color +')'});
|
||||
}
|
||||
//keep the following here so at least we get a visual cue of our motor setup
|
||||
update_arm_status();
|
||||
if (!self.allowTestMode) return;
|
||||
|
||||
if (self.armed) {
|
||||
$('#motorsEnableTestMode').prop('disabled', true);
|
||||
$('#motorsEnableTestMode').prop('checked', false);
|
||||
} else {
|
||||
if (self.allowTestMode) {
|
||||
$('#motorsEnableTestMode').prop('disabled', false);
|
||||
}
|
||||
}
|
||||
|
||||
if (previousArmState != self.armed) {
|
||||
console.log('arm state change detected');
|
||||
$('#motorsEnableTestMode').change();
|
||||
}
|
||||
}
|
||||
|
||||
// enable Status and Motor data pulling
|
||||
|
@ -501,4 +508,4 @@ TABS.motors.initialize = function (callback) {
|
|||
|
||||
TABS.motors.cleanup = function (callback) {
|
||||
if (callback) callback();
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue