Merge branch 'development' of git://github.com/tricopterY/cleanflight-configurator into tricopterY-development
Conflicts: tabs/pid_tuning.html10.3.x-maintenance
commit
99494d0157
|
@ -451,6 +451,12 @@
|
|||
"configurationMagDeclination": {
|
||||
"message": "Magnetometer Declination [deg]"
|
||||
},
|
||||
"configurationAutoDisarmDelay": {
|
||||
"message": "Disarm motors after set delay(Seconds)- Only if feature MOTOR_STOP enabled"
|
||||
},
|
||||
"configurationDisarmKillSwitch": {
|
||||
"message": "Disarm motors regardless of throttle value - Only when arming and disarming via AUX channel"
|
||||
},
|
||||
"configurationThrottleMinimum": {
|
||||
"message": "Minimum Throttle"
|
||||
},
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<span>2015.03.11 - 0.63.0 - cleanflight</span>
|
||||
<span>2015.03.14 - 0.63.0 - cleanflight</span>
|
||||
<p>
|
||||
- Configuration tab supports auto_disarm_delay and disarm_kill_switch - Requires 1.8.0 firmware.<br />
|
||||
- PID Tuning tab allows TPA Breakpoint changes - Requires 1.8.0 firmware.<br />
|
||||
- Corrected Artificial Horizon Pitch/Roll views.<br />
|
||||
- Changed logging time stamp to include date stamp.<br />
|
||||
|
|
|
@ -136,6 +136,13 @@ var ANALOG = {
|
|||
amperage: 0
|
||||
};
|
||||
|
||||
var ARMING_CONFIG = {
|
||||
auto_disarm_delay: 0,
|
||||
disarm_kill_switch: 0
|
||||
};
|
||||
|
||||
var LOOP_TIME = 0;
|
||||
|
||||
var MISC = {
|
||||
midrc: 0,
|
||||
minthrottle: 0,
|
||||
|
|
70
js/msp.js
70
js/msp.js
|
@ -22,6 +22,10 @@ var MSP_codes = {
|
|||
MSP_SONAR: 58,
|
||||
MSP_PID_CONTROLLER: 59,
|
||||
MSP_SET_PID_CONTROLLER: 60,
|
||||
MSP_ARMING_CONFIG: 61,
|
||||
MSP_SET_ARMING_CONFIG: 62,
|
||||
MSP_LOOP_TIME: 63,
|
||||
MSP_SET_LOOP_TIME: 64,
|
||||
MSP_DATAFLASH_SUMMARY: 70,
|
||||
MSP_DATAFLASH_READ: 71,
|
||||
MSP_DATAFLASH_ERASE: 72,
|
||||
|
@ -48,7 +52,7 @@ var MSP_codes = {
|
|||
MSP_WP: 118,
|
||||
MSP_BOXIDS: 119,
|
||||
MSP_SERVO_CONF: 120,
|
||||
|
||||
|
||||
MSP_SET_RAW_RC: 200,
|
||||
MSP_SET_RAW_GPS: 201,
|
||||
MSP_SET_PID: 202,
|
||||
|
@ -63,7 +67,7 @@ var MSP_codes = {
|
|||
MSP_SET_HEAD: 211,
|
||||
MSP_SET_SERVO_CONF: 212,
|
||||
MSP_SET_MOTOR: 214,
|
||||
|
||||
|
||||
// MSP_BIND: 240,
|
||||
|
||||
MSP_EEPROM_WRITE: 250,
|
||||
|
@ -348,23 +352,41 @@ var MSP = {
|
|||
}
|
||||
break;
|
||||
*/
|
||||
case MSP_codes.MSP_ARMING_CONFIG:
|
||||
if (CONFIG.apiVersion >= 1.8) {
|
||||
ARMING_CONFIG.auto_disarm_delay = data.getUint8(0, 1);
|
||||
ARMING_CONFIG.disarm_kill_switch = data.getUint8(1);
|
||||
}
|
||||
break;
|
||||
case MSP_codes.MSP_LOOP_TIME:
|
||||
if (CONFIG.apiVersion >= 1.8) {
|
||||
LOOP_TIME = data.getInt16(0, 1);
|
||||
}
|
||||
break;
|
||||
case MSP_codes.MSP_MISC: // 22 bytes
|
||||
MISC.midrc = data.getInt16(0, 1);
|
||||
MISC.minthrottle = data.getUint16(2, 1); // 0-2000
|
||||
MISC.maxthrottle = data.getUint16(4, 1); // 0-2000
|
||||
MISC.mincommand = data.getUint16(6, 1); // 0-2000
|
||||
MISC.failsafe_throttle = data.getUint16(8, 1); // 1000-2000
|
||||
MISC.gps_type = data.getUint8(10);
|
||||
MISC.gps_baudrate = data.getUint8(11);
|
||||
MISC.gps_ubx_sbas = data.getInt8(12);
|
||||
MISC.multiwiicurrentoutput = data.getUint8(13);
|
||||
MISC.rssi_channel = data.getUint8(14);
|
||||
MISC.placeholder2 = data.getUint8(15);
|
||||
MISC.mag_declination = data.getInt16(16, 1) / 10; // -18000-18000
|
||||
MISC.vbatscale = data.getUint8(18, 1); // 10-200
|
||||
MISC.vbatmincellvoltage = data.getUint8(19, 1) / 10; // 10-50
|
||||
MISC.vbatmaxcellvoltage = data.getUint8(20, 1) / 10; // 10-50
|
||||
MISC.vbatwarningcellvoltage = data.getUint8(21, 1) / 10; // 10-50
|
||||
var offset = 0;
|
||||
MISC.midrc = data.getInt16(offset, 1);
|
||||
offset += 2;
|
||||
MISC.minthrottle = data.getUint16(offset, 1); // 0-2000
|
||||
offset += 2;
|
||||
MISC.maxthrottle = data.getUint16(offset, 1); // 0-2000
|
||||
offset += 2;
|
||||
MISC.mincommand = data.getUint16(offset, 1); // 0-2000
|
||||
offset += 2;
|
||||
MISC.failsafe_throttle = data.getUint16(offset, 1); // 1000-2000
|
||||
offset += 2;
|
||||
MISC.gps_type = data.getUint8(offset);
|
||||
MISC.gps_baudrate = data.getUint8(++offset);
|
||||
MISC.gps_ubx_sbas = data.getInt8(++offset);
|
||||
MISC.multiwiicurrentoutput = data.getUint8(++offset);
|
||||
MISC.rssi_channel = data.getUint8(++offset);
|
||||
MISC.placeholder2 = data.getUint8(++offset);
|
||||
MISC.mag_declination = data.getInt16(++offset, 1) / 10; // -18000-18000
|
||||
offset += 2;
|
||||
MISC.vbatscale = data.getUint8(offset, 1); // 10-200
|
||||
MISC.vbatmincellvoltage = data.getUint8(++offset, 1) / 10; // 10-50
|
||||
MISC.vbatmaxcellvoltage = data.getUint8(++offset, 1) / 10; // 10-50
|
||||
MISC.vbatwarningcellvoltage = data.getUint8(++offset, 1) / 10; // 10-50
|
||||
break;
|
||||
case MSP_codes.MSP_MOTOR_PINS:
|
||||
console.log(data);
|
||||
|
@ -958,6 +980,18 @@ MSP.crunch = function (code) {
|
|||
buffer.push(lowByte(CONFIG.accelerometerTrims[1]));
|
||||
buffer.push(highByte(CONFIG.accelerometerTrims[1]));
|
||||
break;
|
||||
case MSP_codes.MSP_SET_ARMING_CONFIG:
|
||||
if (CONFIG.apiVersion >= 1.8) {
|
||||
buffer.push(ARMING_CONFIG.auto_disarm_delay);
|
||||
buffer.push(ARMING_CONFIG.disarm_kill_switch);
|
||||
}
|
||||
break;
|
||||
case MSP_codes.MSP_SET_LOOP_TIME:
|
||||
if (CONFIG.apiVersion >= 1.8) {
|
||||
buffer.push(lowByte(LOOP_TIME));
|
||||
buffer.push(highByte(LOOP_TIME));
|
||||
}
|
||||
break;
|
||||
case MSP_codes.MSP_SET_MISC:
|
||||
buffer.push(lowByte(MISC.midrc));
|
||||
buffer.push(highByte(MISC.midrc));
|
||||
|
|
|
@ -139,6 +139,21 @@
|
|||
.tab-configuration .current .checkbox span {
|
||||
margin-left: 15px;
|
||||
}
|
||||
.tab-configuration .disarm .checkbox {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.tab-configuration .disarm .checkbox div {
|
||||
float: left;
|
||||
width: 60px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.tab-configuration .disarm .checkbox div input {
|
||||
display: block;
|
||||
margin: 2px auto 0 auto;
|
||||
}
|
||||
.tab-configuration .disarm .checkbox span {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.tab-configuration .save {
|
||||
display: block;
|
||||
|
|
|
@ -26,6 +26,24 @@
|
|||
<!-- table generated here -->
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- -->
|
||||
<div class="disarm">
|
||||
<div class="number disarmdelay" style="display: none;">
|
||||
<label>
|
||||
<input type="number" name="autodisarmdelay" min="0" max="60" />
|
||||
<span i18n="configurationAutoDisarmDelay"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<div>
|
||||
<input type="checkbox" name="disarmkillswitch" />
|
||||
</div>
|
||||
<span i18n="configurationDisarmKillSwitch"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<!-- -->
|
||||
<div class="number">
|
||||
<label>
|
||||
<input type="number" name="minthrottle" min="0" max="2000" />
|
||||
|
@ -277,4 +295,4 @@
|
|||
<div class="buttons">
|
||||
<a class="save" href="#" i18n="configurationButtonSave"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -31,7 +31,12 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
}
|
||||
|
||||
function load_acc_trim() {
|
||||
MSP.send_message(MSP_codes.MSP_ACC_TRIM, false, false, load_html);
|
||||
MSP.send_message(MSP_codes.MSP_ACC_TRIM, false, false
|
||||
, CONFIG.apiVersion >= 1.8 ? load_arming_config : load_html);
|
||||
}
|
||||
|
||||
function load_arming_config() {
|
||||
MSP.send_message(MSP_codes.MSP_ARMING_CONFIG, false, false, load_html);
|
||||
}
|
||||
|
||||
function load_html() {
|
||||
|
@ -90,14 +95,41 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
for (var i = 0; i < features.length; i++) {
|
||||
var row_e;
|
||||
|
||||
if (features[i].mode == 'group') {
|
||||
row_e = $('<tr><td><input class="feature" id="feature-' + i + '" value="' + features[i].bit + '" title="' + features[i].name + '" type="radio" name="' + features[i].group + '" /></td><td><label for="feature-' + i + '">' + features[i].name + '</label></td><td>' + features[i].description + '</td>');
|
||||
if (features[i].mode === 'group') {
|
||||
row_e = $('<tr><td><input class="feature" id="feature-'
|
||||
+ i
|
||||
+ '" value="'
|
||||
+ features[i].bit
|
||||
+ '" title="'
|
||||
+ features[i].name
|
||||
+ '" type="radio" name="'
|
||||
+ features[i].group
|
||||
+ '" /></td><td><label for="feature-'
|
||||
+ i
|
||||
+ '">'
|
||||
+ features[i].name
|
||||
+ '</label></td><td>'
|
||||
+ features[i].description
|
||||
+ '</td>');
|
||||
radioGroups.push(features[i].group);
|
||||
} else {
|
||||
row_e = $('<tr><td><input class="feature" id="feature-' + i + '" title="' + features[i].name + '" type="checkbox" /></td><td><label for="feature-' + i + '">' + features[i].name + '</label></td><td>' + features[i].description + '</td>');
|
||||
var feature_e = row_e.find('input.feature');
|
||||
feature_e.data('bit', features[i].bit);
|
||||
var feature_e = row_e.find('input.feature');
|
||||
row_e = $('<tr><td><input class="feature" id="feature-'
|
||||
+ i
|
||||
+ '" name="'
|
||||
+ features[i].name
|
||||
+ '" title="'
|
||||
+ features[i].name
|
||||
+ '" type="checkbox" /></td><td><label for="feature-'
|
||||
+ i
|
||||
+ '">'
|
||||
+ features[i].name
|
||||
+ '</label></td><td>'
|
||||
+ features[i].description
|
||||
+ '</td>');
|
||||
|
||||
feature_e.prop('checked', bit_check(BF_CONFIG.features, features[i].bit));
|
||||
feature_e.data('bit', features[i].bit);
|
||||
}
|
||||
|
||||
features_e.each(function () {
|
||||
|
@ -223,6 +255,16 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
// fill magnetometer
|
||||
$('input[name="mag_declination"]').val(MISC.mag_declination);
|
||||
|
||||
//fill motor disarm params
|
||||
if(CONFIG.apiVersion >= 1.8) {
|
||||
$('input[name="autodisarmdelay"]').val(ARMING_CONFIG.auto_disarm_delay);
|
||||
$('input[name="disarmkillswitch"]').prop('checked', ARMING_CONFIG.disarm_kill_switch);
|
||||
if(bit_check(BF_CONFIG.features, 4 + 1))//MOTOR_STOP
|
||||
$('div.disarmdelay').slideDown();
|
||||
}
|
||||
else
|
||||
$('div.disarm').hide();
|
||||
|
||||
// fill throttle
|
||||
$('input[name="minthrottle"]').val(MISC.minthrottle);
|
||||
$('input[name="midthrottle"]').val(MISC.midrc);
|
||||
|
@ -250,8 +292,12 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
|
||||
if (state) {
|
||||
BF_CONFIG.features = bit_set(BF_CONFIG.features, index);
|
||||
if(element.attr('name') === 'MOTOR_STOP')
|
||||
$('div.disarmdelay').slideDown();
|
||||
} else {
|
||||
BF_CONFIG.features = bit_clear(BF_CONFIG.features, index);
|
||||
if(element.attr('name') === 'MOTOR_STOP')
|
||||
$('div.disarmdelay').slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -285,7 +331,13 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
CONFIG.accelerometerTrims[1] = parseInt($('input[name="roll"]').val());
|
||||
CONFIG.accelerometerTrims[0] = parseInt($('input[name="pitch"]').val());
|
||||
MISC.mag_declination = parseFloat($('input[name="mag_declination"]').val());
|
||||
|
||||
|
||||
// motor disarm
|
||||
if(CONFIG.apiVersion >= 1.8) {
|
||||
ARMING_CONFIG.auto_disarm_delay = parseInt($('input[name="autodisarmdelay"]').val());
|
||||
ARMING_CONFIG.disarm_kill_switch = ~~$('input[name="disarmkillswitch"]').is(':checked'); // ~~ boolean to decimal conversion
|
||||
}
|
||||
|
||||
MISC.minthrottle = parseInt($('input[name="minthrottle"]').val());
|
||||
MISC.midrc = parseInt($('input[name="midthrottle"]').val());
|
||||
MISC.maxthrottle = parseInt($('input[name="maxthrottle"]').val());
|
||||
|
@ -314,7 +366,12 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
|
|||
}
|
||||
|
||||
function save_acc_trim() {
|
||||
MSP.send_message(MSP_codes.MSP_SET_ACC_TRIM, MSP.crunch(MSP_codes.MSP_SET_ACC_TRIM), false, save_to_eeprom);
|
||||
MSP.send_message(MSP_codes.MSP_SET_ACC_TRIM, MSP.crunch(MSP_codes.MSP_SET_ACC_TRIM), false
|
||||
, CONFIG.apiVersion >= 1.8 ? save_arming_config : save_to_eeprom);
|
||||
}
|
||||
|
||||
function save_arming_config() {
|
||||
MSP.send_message(MSP_codes.MSP_SET_ARMING_CONFIG, MSP.crunch(MSP_codes.MSP_SET_ARMING_CONFIG), false, save_to_eeprom);
|
||||
}
|
||||
|
||||
function save_to_eeprom() {
|
||||
|
|
|
@ -90,11 +90,6 @@
|
|||
float: right;
|
||||
width: calc(40% - 10px); /* - ( "virtual" margin) */
|
||||
}
|
||||
.tab-pid_tuning .rate-tpa .tpa{
|
||||
float: right;
|
||||
border: 1px solid #ADDFAC; /*THEME CHANGE HERE*/
|
||||
width: calc(100% - 10px); /* - ( "virtual" margin) */
|
||||
}
|
||||
.tab-pid_tuning .buttons {
|
||||
width: calc(100% - 20px);
|
||||
|
||||
|
|
Loading…
Reference in New Issue