mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-18 22:05:13 +03:00
Show warning on connect when ACC is not calibrated.
This commit is contained in:
parent
f4f6da02c6
commit
bfc83238c4
5 changed files with 159 additions and 65 deletions
|
@ -497,6 +497,15 @@
|
|||
"resetToCustomDefaultsAccept": {
|
||||
"message": "Apply Custom Defaults"
|
||||
},
|
||||
"reportProblemsDialogHeader": {
|
||||
"message": "The following <strong>problems with your configuration</strong> were detected:"
|
||||
},
|
||||
"reportProblemsDialogFooter": {
|
||||
"message": "Please <strong>fix these problems before attempting to fly your craft</strong>."
|
||||
},
|
||||
"reportProblemsDialogAccCalibrationNeeded": {
|
||||
"message": "<strong>the accelerometer is enabled but it is not calibrated</strong>. If you plan to use the accelerometer, please follow the instructions for '$t(initialSetupButtonCalibrateAccel.message)' on the '$t(tabSetup.message)' tab. If any function that requires the accelerometer (auto level modes, GPS rescue, ...) is enabled, arming of the craft will be disabled until the accelerometer has been calibrated. If you are not planning on using the accelerometer it is recommended that you disable it in '$t(configurationSystem.message)' on the '$t(tabConfiguration.message)' tab."
|
||||
},
|
||||
|
||||
"infoVersions": {
|
||||
"message" : "Running - OS: <strong>{{operatingSystem}}</strong>, Chrome: <strong>{{chromeVersion}}</strong>, Configurator: <strong>{{configuratorVersion}}</strong>",
|
||||
|
|
|
@ -2157,6 +2157,22 @@ input {
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#dialogReportProblems-header {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.dialogReportProblems-listItem {
|
||||
list-style: initial;
|
||||
list-style-type: circle;
|
||||
margin-left: 20px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#dialogReportProblems-footer {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
noUi slider stylings
|
||||
*/
|
||||
|
|
|
@ -635,6 +635,7 @@ var FC = {
|
|||
SUPPORTS_CUSTOM_DEFAULTS: 4,
|
||||
HAS_CUSTOM_DEFAULTS: 5,
|
||||
SUPPORTS_RX_BIND: 6,
|
||||
ACC_NEEDS_CALIBRATION: 7,
|
||||
},
|
||||
|
||||
boardHasVcp: function () {
|
||||
|
|
|
@ -254,60 +254,7 @@ function onOpen(openInfo) {
|
|||
|
||||
GUI.log(i18n.getMessage('buildInfoReceived', [CONFIG.buildInfo]));
|
||||
|
||||
MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () {
|
||||
analytics.setFlightControllerData(analytics.DATA.BOARD_TYPE, CONFIG.boardIdentifier);
|
||||
analytics.setFlightControllerData(analytics.DATA.TARGET_NAME, CONFIG.targetName);
|
||||
analytics.setFlightControllerData(analytics.DATA.BOARD_NAME, CONFIG.boardName);
|
||||
analytics.setFlightControllerData(analytics.DATA.MANUFACTURER_ID, CONFIG.manufacturerId);
|
||||
analytics.setFlightControllerData(analytics.DATA.MCU_TYPE, FC.getMcuType());
|
||||
|
||||
GUI.log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), CONFIG.boardVersion]));
|
||||
updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, FC.getHardwareName());
|
||||
updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, FC.getHardwareName());
|
||||
|
||||
if (bit_check(CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.SUPPORTS_CUSTOM_DEFAULTS) && bit_check(CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.HAS_CUSTOM_DEFAULTS) && CONFIG.configurationState === FC.CONFIGURATION_STATES.DEFAULTS_BARE) {
|
||||
var dialog = $('#dialogResetToCustomDefaults')[0];
|
||||
|
||||
$('#dialogResetToCustomDefaults-content').html(i18n.getMessage('resetToCustomDefaultsDialog'));
|
||||
|
||||
$('#dialogResetToCustomDefaults-acceptbtn').click(function() {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'AcceptResetToCustomDefaults');
|
||||
|
||||
var buffer = [];
|
||||
buffer.push(mspHelper.RESET_TYPES.CUSTOM_DEFAULTS);
|
||||
MSP.send_message(MSPCodes.MSP_RESET_CONF, buffer, false);
|
||||
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
$('#dialogResetToCustomDefaults-cancelbtn').click(function() {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'CancelResetToCustomDefaults');
|
||||
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
dialog.showModal();
|
||||
}
|
||||
MSP.send_message(MSPCodes.MSP_UID, false, false, function () {
|
||||
var uniqueDeviceIdentifier = CONFIG.uid[0].toString(16) + CONFIG.uid[1].toString(16) + CONFIG.uid[2].toString(16);
|
||||
|
||||
analytics.setFlightControllerData(analytics.DATA.MCU_ID, objectHash.sha1(uniqueDeviceIdentifier));
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
|
||||
connectionTimestamp = Date.now();
|
||||
GUI.log(i18n.getMessage('uniqueDeviceIdReceived', [uniqueDeviceIdentifier]));
|
||||
|
||||
if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_NAME, false, false, function () {
|
||||
GUI.log(i18n.getMessage('craftNameReceived', [CONFIG.name]));
|
||||
|
||||
CONFIG.armingDisabled = false;
|
||||
mspHelper.setArmingEnabled(false, false, setRtc);
|
||||
});
|
||||
} else {
|
||||
setRtc();
|
||||
}
|
||||
});
|
||||
});
|
||||
MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, processBoardInfo);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
|
@ -348,6 +295,11 @@ function onOpen(openInfo) {
|
|||
console.log('Failed to open serial port');
|
||||
GUI.log(i18n.getMessage('serialPortOpenFail'));
|
||||
|
||||
abortConnect();
|
||||
}
|
||||
}
|
||||
|
||||
function abortConnect() {
|
||||
$('div#connectbutton a.connect_state').text(i18n.getMessage('connect'));
|
||||
$('div#connectbutton a.connect').removeClass('active');
|
||||
|
||||
|
@ -356,9 +308,104 @@ function onOpen(openInfo) {
|
|||
|
||||
// reset data
|
||||
$('div#connectbutton a.connect').data("clicks", false);
|
||||
}
|
||||
|
||||
function processBoardInfo() {
|
||||
analytics.setFlightControllerData(analytics.DATA.BOARD_TYPE, CONFIG.boardIdentifier);
|
||||
analytics.setFlightControllerData(analytics.DATA.TARGET_NAME, CONFIG.targetName);
|
||||
analytics.setFlightControllerData(analytics.DATA.BOARD_NAME, CONFIG.boardName);
|
||||
analytics.setFlightControllerData(analytics.DATA.MANUFACTURER_ID, CONFIG.manufacturerId);
|
||||
analytics.setFlightControllerData(analytics.DATA.MCU_TYPE, FC.getMcuType());
|
||||
|
||||
GUI.log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), CONFIG.boardVersion]));
|
||||
updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, FC.getHardwareName());
|
||||
updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, FC.getHardwareName());
|
||||
|
||||
if (bit_check(CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.SUPPORTS_CUSTOM_DEFAULTS) && bit_check(CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.HAS_CUSTOM_DEFAULTS) && CONFIG.configurationState === FC.CONFIGURATION_STATES.DEFAULTS_BARE) {
|
||||
var dialog = $('#dialogResetToCustomDefaults')[0];
|
||||
|
||||
$('#dialogResetToCustomDefaults-acceptbtn').click(function() {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'AcceptResetToCustomDefaults');
|
||||
|
||||
var buffer = [];
|
||||
buffer.push(mspHelper.RESET_TYPES.CUSTOM_DEFAULTS);
|
||||
MSP.send_message(MSPCodes.MSP_RESET_CONF, buffer, false);
|
||||
|
||||
dialog.close();
|
||||
|
||||
GUI.timeout_add('connecting', function () {
|
||||
$('div.connect_controls a.connect').click(); // disconnect
|
||||
}, 0);
|
||||
});
|
||||
|
||||
$('#dialogResetToCustomDefaults-cancelbtn').click(function() {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'CancelResetToCustomDefaults');
|
||||
|
||||
dialog.close();
|
||||
|
||||
checkReportProblems();
|
||||
});
|
||||
|
||||
dialog.showModal();
|
||||
} else {
|
||||
checkReportProblems();
|
||||
}
|
||||
}
|
||||
|
||||
function checkReportProblems() {
|
||||
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function () {
|
||||
let needsProblemReportingDialog = false;
|
||||
const problemDialogList = $('#dialogReportProblems-list');
|
||||
problemDialogList.empty();
|
||||
const problemItemTemplate = $('.dialogReportProblems-listItem');
|
||||
const PROBLEM_ANALYTICS_EVENT = 'ProblemFound';
|
||||
|
||||
if (have_sensor(CONFIG.activeSensors, 'acc') && bit_check(CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.ACC_NEEDS_CALIBRATION)) {
|
||||
needsProblemReportingDialog = true;
|
||||
problemDialogList.append(problemItemTemplate.clone().html(i18n.getMessage('reportProblemsDialogAccCalibrationNeeded')));
|
||||
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, PROBLEM_ANALYTICS_EVENT, 'AccNotCalibrated');
|
||||
}
|
||||
|
||||
if (needsProblemReportingDialog) {
|
||||
const problemDialog = $('#dialogReportProblems')[0];
|
||||
$('#dialogReportProblems-closebtn').click(function() {
|
||||
problemDialog.close();
|
||||
});
|
||||
|
||||
problemDialog.showModal();
|
||||
}
|
||||
|
||||
processUid();
|
||||
});
|
||||
}
|
||||
|
||||
function processUid() {
|
||||
MSP.send_message(MSPCodes.MSP_UID, false, false, function () {
|
||||
var uniqueDeviceIdentifier = CONFIG.uid[0].toString(16) + CONFIG.uid[1].toString(16) + CONFIG.uid[2].toString(16);
|
||||
|
||||
analytics.setFlightControllerData(analytics.DATA.MCU_ID, objectHash.sha1(uniqueDeviceIdentifier));
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
|
||||
connectionTimestamp = Date.now();
|
||||
GUI.log(i18n.getMessage('uniqueDeviceIdReceived', [uniqueDeviceIdentifier]));
|
||||
|
||||
if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
|
||||
processName();
|
||||
} else {
|
||||
setRtc();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function processName() {
|
||||
MSP.send_message(MSPCodes.MSP_NAME, false, false, function () {
|
||||
GUI.log(i18n.getMessage('craftNameReceived', [CONFIG.name]));
|
||||
|
||||
CONFIG.armingDisabled = false;
|
||||
mspHelper.setArmingEnabled(false, false, setRtc);
|
||||
});
|
||||
}
|
||||
|
||||
function setRtc() {
|
||||
if (semver.gte(CONFIG.apiVersion, "1.37.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_SET_RTC, mspHelper.crunch(MSPCodes.MSP_SET_RTC), false, finishOpen);
|
||||
|
@ -593,10 +640,11 @@ function update_live_status() {
|
|||
|
||||
if (GUI.active_tab != 'cli') {
|
||||
MSP.send_message(MSPCodes.MSP_BOXNAMES, false, false);
|
||||
if (semver.gte(CONFIG.apiVersion, "1.32.0"))
|
||||
if (semver.gte(CONFIG.apiVersion, "1.32.0")) {
|
||||
MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false);
|
||||
else
|
||||
} else {
|
||||
MSP.send_message(MSPCodes.MSP_STATUS, false, false);
|
||||
}
|
||||
MSP.send_message(MSPCodes.MSP_ANALOG, false, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -359,7 +359,7 @@
|
|||
<dialog id="dialogResetToCustomDefaults">
|
||||
<h3 i18n="noticeTitle"></h3>
|
||||
<div class="content">
|
||||
<div id="dialogResetToCustomDefaults-content"></div>
|
||||
<div id="dialogResetToCustomDefaults-content" i18n="resetToCustomDefaultsDialog"></div>
|
||||
</div>
|
||||
<div>
|
||||
<span class="buttons">
|
||||
|
@ -371,6 +371,26 @@
|
|||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog id="dialogReportProblems">
|
||||
<h3 i18n="warningTitle"></h3>
|
||||
<div class="content">
|
||||
<div id="dialogReportProblems-header" i18n="reportProblemsDialogHeader"></div>
|
||||
<ul id="dialogReportProblems-list">
|
||||
<!-- List elements added dynamically -->
|
||||
</ul>
|
||||
<div id="dialogReportProblems-footer" i18n="reportProblemsDialogFooter"></div>
|
||||
</div>
|
||||
<div>
|
||||
<span class="buttons">
|
||||
<a href="#" id="dialogReportProblems-closebtn" class="regular-button" i18n="close"></a>
|
||||
</span>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<ul> <!-- Sonar says so -->
|
||||
<li class="dialogReportProblems-listItem"></li>
|
||||
</ul>
|
||||
|
||||
<dialog class="dialogError">
|
||||
<h3 i18n="errorTitle"></h3>
|
||||
<div class="content">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue