Fixed blackbox configuration for BF 3.2
parent
05426a3f7f
commit
c2f51237c0
1
js/fc.js
1
js/fc.js
|
@ -286,6 +286,7 @@ var FC = {
|
||||||
blackboxDevice: 0,
|
blackboxDevice: 0,
|
||||||
blackboxRateNum: 1,
|
blackboxRateNum: 1,
|
||||||
blackboxRateDenom: 1,
|
blackboxRateDenom: 1,
|
||||||
|
blackboxPDenom: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
TRANSPONDER = {
|
TRANSPONDER = {
|
||||||
|
|
|
@ -1024,6 +1024,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
BLACKBOX.blackboxDevice = data.readU8();
|
BLACKBOX.blackboxDevice = data.readU8();
|
||||||
BLACKBOX.blackboxRateNum = data.readU8();
|
BLACKBOX.blackboxRateNum = data.readU8();
|
||||||
BLACKBOX.blackboxRateDenom = data.readU8();
|
BLACKBOX.blackboxRateDenom = data.readU8();
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
BLACKBOX.blackboxPDenom = data.readU16();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MSPCodes.MSP_SET_BLACKBOX_CONFIG:
|
case MSPCodes.MSP_SET_BLACKBOX_CONFIG:
|
||||||
console.log("Blackbox config saved");
|
console.log("Blackbox config saved");
|
||||||
|
@ -1488,6 +1491,9 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
buffer.push8(BLACKBOX.blackboxDevice)
|
buffer.push8(BLACKBOX.blackboxDevice)
|
||||||
.push8(BLACKBOX.blackboxRateNum)
|
.push8(BLACKBOX.blackboxRateNum)
|
||||||
.push8(BLACKBOX.blackboxRateDenom);
|
.push8(BLACKBOX.blackboxRateDenom);
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
buffer.push16(BLACKBOX.blackboxPDenom);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -120,11 +120,14 @@ TABS.onboard_logging.initialize = function (callback) {
|
||||||
|
|
||||||
if (BLACKBOX.supported) {
|
if (BLACKBOX.supported) {
|
||||||
$(".tab-onboard_logging a.save-settings").click(function() {
|
$(".tab-onboard_logging a.save-settings").click(function() {
|
||||||
var rate = loggingRatesSelect.val().split('/');
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
BLACKBOX.blackboxPDenom = loggingRatesSelect.val();
|
||||||
BLACKBOX.blackboxRateNum = parseInt(rate[0], 10);
|
} else {
|
||||||
BLACKBOX.blackboxRateDenom = parseInt(rate[1], 10);
|
var rate = loggingRatesSelect.val().split('/');
|
||||||
BLACKBOX.blackboxDevice = parseInt(deviceSelect.val(), 10);
|
BLACKBOX.blackboxRateNum = parseInt(rate[0], 10);
|
||||||
|
BLACKBOX.blackboxRateDenom = parseInt(rate[1], 10);
|
||||||
|
BLACKBOX.blackboxDevice = parseInt(deviceSelect.val(), 10);
|
||||||
|
}
|
||||||
|
|
||||||
MSP.send_message(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG), false, save_to_eeprom);
|
MSP.send_message(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG), false, save_to_eeprom);
|
||||||
});
|
});
|
||||||
|
@ -175,35 +178,60 @@ TABS.onboard_logging.initialize = function (callback) {
|
||||||
function populateLoggingRates(loggingRatesSelect) {
|
function populateLoggingRates(loggingRatesSelect) {
|
||||||
|
|
||||||
// Offer a reasonable choice of logging rates (if people want weird steps they can use CLI)
|
// Offer a reasonable choice of logging rates (if people want weird steps they can use CLI)
|
||||||
var
|
var loggingRates = [];
|
||||||
|
var pidRate = 8000 / PID_ADVANCED_CONFIG.gyro_sync_denom / PID_ADVANCED_CONFIG.pid_process_denom;
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
loggingRates = [
|
loggingRates = [
|
||||||
{num: 1, denom: 1},
|
{text: "Disabled", hz: 0, p_denom: 0},
|
||||||
{num: 1, denom: 2},
|
{text: "500 Hz", hz: 500, p_denom: 16},
|
||||||
{num: 1, denom: 3},
|
{text: "1 kHz", hz: 1000, p_denom: 32},
|
||||||
{num: 1, denom: 4},
|
{text: "1.5 kHz", hz: 1500, p_denom: 48},
|
||||||
{num: 1, denom: 5},
|
{text: "2 kHz", hz: 2000, p_denom: 64},
|
||||||
{num: 1, denom: 6},
|
{text: "4 kHz", hz: 4000, p_denom: 128},
|
||||||
{num: 1, denom: 7},
|
{text: "8 kHz", hz: 8000, p_denom: 256},
|
||||||
{num: 1, denom: 8},
|
{text: "16 kHz", hz: 16000, p_denom: 512},
|
||||||
{num: 1, denom: 16},
|
{text: "32 kHz", hz: 32000, p_denom: 1024},
|
||||||
{num: 1, denom: 32}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var pidRate = 8000 / PID_ADVANCED_CONFIG.gyro_sync_denom / PID_ADVANCED_CONFIG.pid_process_denom;
|
$.each(loggingRates, function(index, item) {
|
||||||
for (var i = 0; i < loggingRates.length; i++) {
|
if (pidRate >= item.hz || item.hz == 0) {
|
||||||
var loggingRate = Math.round(pidRate / loggingRates[i].denom);
|
loggingRatesSelect.append(new Option(item.text, item.p_denom));
|
||||||
var loggingRateUnit = " Hz";
|
|
||||||
if (loggingRate !== Infinity) {
|
|
||||||
if (gcd(loggingRate, 1000) === 1000) {
|
|
||||||
loggingRate /= 1000;
|
|
||||||
loggingRateUnit = " KHz";
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
loggingRatesSelect.append('<option value="' + loggingRates[i].num + '/' + loggingRates[i].denom + '">'
|
|
||||||
+ loggingRate + loggingRateUnit + ' (' + Math.round(loggingRates[i].num / loggingRates[i].denom * 100) + '%)</option>');
|
loggingRatesSelect.val(BLACKBOX.blackboxPDenom);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
loggingRates = [
|
||||||
|
{num: 1, denom: 1},
|
||||||
|
{num: 1, denom: 2},
|
||||||
|
{num: 1, denom: 3},
|
||||||
|
{num: 1, denom: 4},
|
||||||
|
{num: 1, denom: 5},
|
||||||
|
{num: 1, denom: 6},
|
||||||
|
{num: 1, denom: 7},
|
||||||
|
{num: 1, denom: 8},
|
||||||
|
{num: 1, denom: 16},
|
||||||
|
{num: 1, denom: 32}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
for (var i = 0; i < loggingRates.length; i++) {
|
||||||
|
var loggingRate = Math.round(pidRate / loggingRates[i].denom);
|
||||||
|
var loggingRateUnit = " Hz";
|
||||||
|
if (loggingRate !== Infinity) {
|
||||||
|
if (gcd(loggingRate, 1000) === 1000) {
|
||||||
|
loggingRate /= 1000;
|
||||||
|
loggingRateUnit = " KHz";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
loggingRatesSelect.append('<option value="' + loggingRates[i].num + '/' + loggingRates[i].denom + '">'
|
||||||
|
+ loggingRate + loggingRateUnit + ' (' + Math.round(loggingRates[i].num / loggingRates[i].denom * 100) + '%)</option>');
|
||||||
|
|
||||||
|
}
|
||||||
|
loggingRatesSelect.val(BLACKBOX.blackboxRateNum + '/' + BLACKBOX.blackboxRateDenom);
|
||||||
}
|
}
|
||||||
loggingRatesSelect.val(BLACKBOX.blackboxRateNum + '/' + BLACKBOX.blackboxRateDenom);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatFilesizeKilobytes(kilobytes) {
|
function formatFilesizeKilobytes(kilobytes) {
|
||||||
|
|
Loading…
Reference in New Issue