1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-14 20:10:11 +03:00
inav-configurator/tabs/programming.js
2024-04-18 15:39:19 -03:00

87 lines
No EOL
2.4 KiB
JavaScript

'use strict';
const path = require('path');
const MSPChainerClass = require('./../js/msp/MSPchainer');
const mspBalancedInterval = require('./../js/msp_balanced_interval');
const mspHelper = require('./../js/msp/MSPHelper');
const { GUI, TABS } = require('./../js/gui');
const FC = require('./../js/fc');
const tabs = require('./../js/tabs');
const i18n = require('./../js/localization');
TABS.programming = {};
TABS.programming.initialize = function (callback, scrollPosition) {
let loadChainer = new MSPChainerClass(),
saveChainer = new MSPChainerClass(),
statusChainer = new MSPChainerClass();
if (GUI.active_tab != 'programming') {
GUI.active_tab = 'programming';
}
loadChainer.setChain([
mspHelper.loadLogicConditions,
mspHelper.loadGlobalVariablesStatus,
mspHelper.loadProgrammingPidStatus,
mspHelper.loadProgrammingPid
]);
loadChainer.setExitPoint(loadHtml);
loadChainer.execute();
saveChainer.setChain([
mspHelper.sendLogicConditions,
mspHelper.sendProgrammingPid,
mspHelper.saveToEeprom
]);
statusChainer.setChain([
mspHelper.loadLogicConditionsStatus,
mspHelper.loadGlobalVariablesStatus,
mspHelper.loadProgrammingPidStatus
]);
statusChainer.setExitPoint(onStatusPullDone);
function loadHtml() {
GUI.load(path.join(__dirname, "programming.html"), processHtml);
}
function processHtml() {
FC.LOGIC_CONDITIONS.init($('#subtab-lc'));
FC.LOGIC_CONDITIONS.render();
GUI.switchery();
FC.PROGRAMMING_PID.init($('#subtab-pid'));
FC.PROGRAMMING_PID.render();
GUI.switchery();
FC.GLOBAL_VARIABLES_STATUS.init($(".gvar__container"));
tabs.init($('.tab-programming'));
i18n.localize();;
$('#save-button').on('click', function () {
saveChainer.execute();
GUI.log(i18n.getMessage('programmingEepromSaved'));
});
mspBalancedInterval.add('logic_conditions_pull', 100, 1, function () {
statusChainer.execute();
});
GUI.content_ready(callback);
}
function onStatusPullDone() {
FC.LOGIC_CONDITIONS.update(FC.LOGIC_CONDITIONS_STATUS);
FC.GLOBAL_VARIABLES_STATUS.update($('.tab-programming'));
FC.PROGRAMMING_PID.update(FC.PROGRAMMING_PID_STATUS);
}
}
TABS.programming.cleanup = function (callback) {
if (callback) callback();
};