mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-26 01:35:28 +03:00
Reset all FC configuration state on connect to prevent side effects when
configuring multiple FC's without restarting the configurator each time.
This commit is contained in:
parent
7b5d074747
commit
5c2273bd65
4 changed files with 255 additions and 214 deletions
|
@ -14,216 +14,3 @@ var CONFIGURATOR = {
|
||||||
'cliActive': false,
|
'cliActive': false,
|
||||||
'cliValid': false
|
'cliValid': false
|
||||||
};
|
};
|
||||||
|
|
||||||
var CONFIG = {
|
|
||||||
apiVersion: "0.0.0",
|
|
||||||
flightControllerIdentifier: '',
|
|
||||||
flightControllerVersion: '',
|
|
||||||
version: 0,
|
|
||||||
buildInfo: '',
|
|
||||||
multiType: 0,
|
|
||||||
msp_version: 0, // not specified using semantic versioning
|
|
||||||
capability: 0,
|
|
||||||
cycleTime: 0,
|
|
||||||
i2cError: 0,
|
|
||||||
activeSensors: 0,
|
|
||||||
mode: 0,
|
|
||||||
profile: 0,
|
|
||||||
uid: [0, 0, 0],
|
|
||||||
accelerometerTrims: [0, 0]
|
|
||||||
};
|
|
||||||
|
|
||||||
var BF_CONFIG = {
|
|
||||||
mixerConfiguration: 0,
|
|
||||||
features: 0,
|
|
||||||
serialrx_type: 0,
|
|
||||||
board_align_roll: 0,
|
|
||||||
board_align_pitch: 0,
|
|
||||||
board_align_yaw: 0,
|
|
||||||
currentscale: 0,
|
|
||||||
currentoffset: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var LED_STRIP = [];
|
|
||||||
|
|
||||||
var PID = {
|
|
||||||
controller: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var PID_names = [];
|
|
||||||
var PIDs = new Array(10);
|
|
||||||
for (var i = 0; i < 10; i++) {
|
|
||||||
PIDs[i] = new Array(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
var RC_MAP = [];
|
|
||||||
|
|
||||||
// defaults
|
|
||||||
// roll, pitch, yaw, throttle, aux 1, ... aux n
|
|
||||||
var RC = {
|
|
||||||
active_channels: 0,
|
|
||||||
channels: new Array(32)
|
|
||||||
};
|
|
||||||
|
|
||||||
var RC_tuning = {
|
|
||||||
RC_RATE: 0,
|
|
||||||
RC_EXPO: 0,
|
|
||||||
roll_pitch_rate: 0, // pre 1.7 api only
|
|
||||||
roll_rate: 0,
|
|
||||||
pitch_rate: 0,
|
|
||||||
yaw_rate: 0,
|
|
||||||
dynamic_THR_PID: 0,
|
|
||||||
throttle_MID: 0,
|
|
||||||
throttle_EXPO: 0,
|
|
||||||
dynamic_THR_breakpoint: 0,
|
|
||||||
RC_YAW_EXPO: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var AUX_CONFIG = [];
|
|
||||||
var AUX_CONFIG_IDS = [];
|
|
||||||
|
|
||||||
var MODE_RANGES = [];
|
|
||||||
var ADJUSTMENT_RANGES = [];
|
|
||||||
|
|
||||||
var SERVO_CONFIG = [];
|
|
||||||
var SERVO_RULES = [];
|
|
||||||
|
|
||||||
var SERIAL_CONFIG = {
|
|
||||||
ports: [],
|
|
||||||
|
|
||||||
// pre 1.6 settings
|
|
||||||
mspBaudRate: 0,
|
|
||||||
gpsBaudRate: 0,
|
|
||||||
gpsPassthroughBaudRate: 0,
|
|
||||||
cliBaudRate: 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
var SENSOR_DATA = {
|
|
||||||
gyroscope: [0, 0, 0],
|
|
||||||
accelerometer: [0, 0, 0],
|
|
||||||
magnetometer: [0, 0, 0],
|
|
||||||
altitude: 0,
|
|
||||||
sonar: 0,
|
|
||||||
kinematics: [0.0, 0.0, 0.0],
|
|
||||||
debug: [0, 0, 0, 0]
|
|
||||||
};
|
|
||||||
|
|
||||||
var MOTOR_DATA = new Array(8);
|
|
||||||
var SERVO_DATA = new Array(8);
|
|
||||||
|
|
||||||
var GPS_DATA = {
|
|
||||||
fix: 0,
|
|
||||||
numSat: 0,
|
|
||||||
lat: 0,
|
|
||||||
lon: 0,
|
|
||||||
alt: 0,
|
|
||||||
speed: 0,
|
|
||||||
ground_course: 0,
|
|
||||||
distanceToHome: 0,
|
|
||||||
ditectionToHome: 0,
|
|
||||||
update: 0,
|
|
||||||
|
|
||||||
// baseflight specific gps stuff
|
|
||||||
chn: [],
|
|
||||||
svid: [],
|
|
||||||
quality: [],
|
|
||||||
cno: []
|
|
||||||
};
|
|
||||||
|
|
||||||
var ANALOG = {
|
|
||||||
voltage: 0,
|
|
||||||
mAhdrawn: 0,
|
|
||||||
rssi: 0,
|
|
||||||
amperage: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var ARMING_CONFIG = {
|
|
||||||
auto_disarm_delay: 0,
|
|
||||||
disarm_kill_switch: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var FC_CONFIG = {
|
|
||||||
loopTime: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var MISC = {
|
|
||||||
midrc: 0,
|
|
||||||
minthrottle: 0,
|
|
||||||
maxthrottle: 0,
|
|
||||||
mincommand: 0,
|
|
||||||
failsafe_throttle: 0,
|
|
||||||
gps_type: 0,
|
|
||||||
gps_baudrate: 0,
|
|
||||||
gps_ubx_sbas: 0,
|
|
||||||
multiwiicurrentoutput: 0,
|
|
||||||
rssi_channel: 0,
|
|
||||||
placeholder2: 0,
|
|
||||||
mag_declination: 0, // not checked
|
|
||||||
vbatscale: 0,
|
|
||||||
vbatmincellvoltage: 0,
|
|
||||||
vbatmaxcellvoltage: 0,
|
|
||||||
vbatwarningcellvoltage: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var _3D = {
|
|
||||||
deadband3d_low: 0,
|
|
||||||
deadband3d_high: 0,
|
|
||||||
neutral3d: 0,
|
|
||||||
deadband3d_throttle: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var DATAFLASH = {
|
|
||||||
ready: false,
|
|
||||||
supported: false,
|
|
||||||
sectors: 0,
|
|
||||||
totalSize: 0,
|
|
||||||
usedSize: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var SDCARD = {
|
|
||||||
supported: false,
|
|
||||||
state: 0,
|
|
||||||
filesystemLastError: 0,
|
|
||||||
freeSizeKB: 0,
|
|
||||||
totalSizeKB: 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
var BLACKBOX = {
|
|
||||||
supported: false,
|
|
||||||
blackboxDevice: 0,
|
|
||||||
blackboxRateNum: 1,
|
|
||||||
blackboxRateDenom: 1
|
|
||||||
};
|
|
||||||
|
|
||||||
var RC_deadband = {
|
|
||||||
deadband: 0,
|
|
||||||
yaw_deadband: 0,
|
|
||||||
alt_hold_deadband: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var SENSOR_ALIGNMENT = {
|
|
||||||
align_gyro: 0,
|
|
||||||
align_acc: 0,
|
|
||||||
align_mag: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var RX_CONFIG = {
|
|
||||||
serialrx_provider: 0,
|
|
||||||
maxcheck: 0,
|
|
||||||
midrc: 0,
|
|
||||||
mincheck: 0,
|
|
||||||
spektrum_sat_bind: 0,
|
|
||||||
rx_min_usec: 0,
|
|
||||||
rx_max_usec: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var FAILSAFE_CONFIG = {
|
|
||||||
failsafe_delay: 0,
|
|
||||||
failsafe_off_delay: 0,
|
|
||||||
failsafe_throttle: 0,
|
|
||||||
failsafe_kill_switch: 0,
|
|
||||||
failsafe_throttle_low_delay: 0,
|
|
||||||
failsafe_procedure: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var RXFAIL_CONFIG = [];
|
|
||||||
|
|
253
js/fc.js
Normal file
253
js/fc.js
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// define all the global variables that are uses to hold FC state
|
||||||
|
var CONFIG;
|
||||||
|
var BF_CONFIG;
|
||||||
|
var LED_STRIP;
|
||||||
|
var PID;
|
||||||
|
var PID_names;
|
||||||
|
var PIDs;
|
||||||
|
var RC_MAP;
|
||||||
|
var RC;
|
||||||
|
var RC_tuning;
|
||||||
|
var AUX_CONFIG;
|
||||||
|
var AUX_CONFIG_IDS;
|
||||||
|
var MODE_RANGES;
|
||||||
|
var ADJUSTMENT_RANGES;
|
||||||
|
var SERVO_CONFIG;
|
||||||
|
var SERVO_RULES;
|
||||||
|
var SERIAL_CONFIG;
|
||||||
|
var SENSOR_DATA;
|
||||||
|
var MOTOR_DATA;
|
||||||
|
var SERVO_DATA;
|
||||||
|
var GPS_DATA;
|
||||||
|
var ANALOG;
|
||||||
|
var ARMING_CONFIG;
|
||||||
|
var FC_CONFIG;
|
||||||
|
var MISC;
|
||||||
|
var _3D;
|
||||||
|
var DATAFLASH;
|
||||||
|
var SDCARD;
|
||||||
|
var BLACKBOX;
|
||||||
|
var RC_deadband;
|
||||||
|
var SENSOR_ALIGNMENT;
|
||||||
|
var RX_CONFIG;
|
||||||
|
var FAILSAFE_CONFIG;
|
||||||
|
var RXFAIL_CONFIG;
|
||||||
|
|
||||||
|
var FC = {
|
||||||
|
resetState: function() {
|
||||||
|
CONFIG = {
|
||||||
|
apiVersion: "0.0.0",
|
||||||
|
flightControllerIdentifier: '',
|
||||||
|
flightControllerVersion: '',
|
||||||
|
version: 0,
|
||||||
|
buildInfo: '',
|
||||||
|
multiType: 0,
|
||||||
|
msp_version: 0, // not specified using semantic versioning
|
||||||
|
capability: 0,
|
||||||
|
cycleTime: 0,
|
||||||
|
i2cError: 0,
|
||||||
|
activeSensors: 0,
|
||||||
|
mode: 0,
|
||||||
|
profile: 0,
|
||||||
|
uid: [0, 0, 0],
|
||||||
|
accelerometerTrims: [0, 0]
|
||||||
|
};
|
||||||
|
|
||||||
|
BF_CONFIG = {
|
||||||
|
mixerConfiguration: 0,
|
||||||
|
features: 0,
|
||||||
|
serialrx_type: 0,
|
||||||
|
board_align_roll: 0,
|
||||||
|
board_align_pitch: 0,
|
||||||
|
board_align_yaw: 0,
|
||||||
|
currentscale: 0,
|
||||||
|
currentoffset: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
LED_STRIP = [];
|
||||||
|
|
||||||
|
PID = {
|
||||||
|
controller: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
PID_names = [];
|
||||||
|
PIDs = new Array(10);
|
||||||
|
for (var i = 0; i < 10; i++) {
|
||||||
|
PIDs[i] = new Array(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
RC_MAP = [];
|
||||||
|
|
||||||
|
// defaults
|
||||||
|
// roll, pitch, yaw, throttle, aux 1, ... aux n
|
||||||
|
RC = {
|
||||||
|
active_channels: 0,
|
||||||
|
channels: new Array(32)
|
||||||
|
};
|
||||||
|
|
||||||
|
RC_tuning = {
|
||||||
|
RC_RATE: 0,
|
||||||
|
RC_EXPO: 0,
|
||||||
|
roll_pitch_rate: 0, // pre 1.7 api only
|
||||||
|
roll_rate: 0,
|
||||||
|
pitch_rate: 0,
|
||||||
|
yaw_rate: 0,
|
||||||
|
dynamic_THR_PID: 0,
|
||||||
|
throttle_MID: 0,
|
||||||
|
throttle_EXPO: 0,
|
||||||
|
dynamic_THR_breakpoint: 0,
|
||||||
|
RC_YAW_EXPO: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
AUX_CONFIG = [];
|
||||||
|
AUX_CONFIG_IDS = [];
|
||||||
|
|
||||||
|
MODE_RANGES = [];
|
||||||
|
ADJUSTMENT_RANGES = [];
|
||||||
|
|
||||||
|
SERVO_CONFIG = [];
|
||||||
|
SERVO_RULES = [];
|
||||||
|
|
||||||
|
SERIAL_CONFIG = {
|
||||||
|
ports: [],
|
||||||
|
|
||||||
|
// pre 1.6 settings
|
||||||
|
mspBaudRate: 0,
|
||||||
|
gpsBaudRate: 0,
|
||||||
|
gpsPassthroughBaudRate: 0,
|
||||||
|
cliBaudRate: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
SENSOR_DATA = {
|
||||||
|
gyroscope: [0, 0, 0],
|
||||||
|
accelerometer: [0, 0, 0],
|
||||||
|
magnetometer: [0, 0, 0],
|
||||||
|
altitude: 0,
|
||||||
|
sonar: 0,
|
||||||
|
kinematics: [0.0, 0.0, 0.0],
|
||||||
|
debug: [0, 0, 0, 0]
|
||||||
|
};
|
||||||
|
|
||||||
|
MOTOR_DATA = new Array(8);
|
||||||
|
SERVO_DATA = new Array(8);
|
||||||
|
|
||||||
|
GPS_DATA = {
|
||||||
|
fix: 0,
|
||||||
|
numSat: 0,
|
||||||
|
lat: 0,
|
||||||
|
lon: 0,
|
||||||
|
alt: 0,
|
||||||
|
speed: 0,
|
||||||
|
ground_course: 0,
|
||||||
|
distanceToHome: 0,
|
||||||
|
ditectionToHome: 0,
|
||||||
|
update: 0,
|
||||||
|
|
||||||
|
// baseflight specific gps stuff
|
||||||
|
chn: [],
|
||||||
|
svid: [],
|
||||||
|
quality: [],
|
||||||
|
cno: []
|
||||||
|
};
|
||||||
|
|
||||||
|
ANALOG = {
|
||||||
|
voltage: 0,
|
||||||
|
mAhdrawn: 0,
|
||||||
|
rssi: 0,
|
||||||
|
amperage: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
ARMING_CONFIG = {
|
||||||
|
auto_disarm_delay: 0,
|
||||||
|
disarm_kill_switch: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
FC_CONFIG = {
|
||||||
|
loopTime: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
MISC = {
|
||||||
|
midrc: 0,
|
||||||
|
minthrottle: 0,
|
||||||
|
maxthrottle: 0,
|
||||||
|
mincommand: 0,
|
||||||
|
failsafe_throttle: 0,
|
||||||
|
gps_type: 0,
|
||||||
|
gps_baudrate: 0,
|
||||||
|
gps_ubx_sbas: 0,
|
||||||
|
multiwiicurrentoutput: 0,
|
||||||
|
rssi_channel: 0,
|
||||||
|
placeholder2: 0,
|
||||||
|
mag_declination: 0, // not checked
|
||||||
|
vbatscale: 0,
|
||||||
|
vbatmincellvoltage: 0,
|
||||||
|
vbatmaxcellvoltage: 0,
|
||||||
|
vbatwarningcellvoltage: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
_3D = {
|
||||||
|
deadband3d_low: 0,
|
||||||
|
deadband3d_high: 0,
|
||||||
|
neutral3d: 0,
|
||||||
|
deadband3d_throttle: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
DATAFLASH = {
|
||||||
|
ready: false,
|
||||||
|
supported: false,
|
||||||
|
sectors: 0,
|
||||||
|
totalSize: 0,
|
||||||
|
usedSize: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
SDCARD = {
|
||||||
|
supported: false,
|
||||||
|
state: 0,
|
||||||
|
filesystemLastError: 0,
|
||||||
|
freeSizeKB: 0,
|
||||||
|
totalSizeKB: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
BLACKBOX = {
|
||||||
|
supported: false,
|
||||||
|
blackboxDevice: 0,
|
||||||
|
blackboxRateNum: 1,
|
||||||
|
blackboxRateDenom: 1
|
||||||
|
};
|
||||||
|
|
||||||
|
RC_deadband = {
|
||||||
|
deadband: 0,
|
||||||
|
yaw_deadband: 0,
|
||||||
|
alt_hold_deadband: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
SENSOR_ALIGNMENT = {
|
||||||
|
align_gyro: 0,
|
||||||
|
align_acc: 0,
|
||||||
|
align_mag: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
RX_CONFIG = {
|
||||||
|
serialrx_provider: 0,
|
||||||
|
maxcheck: 0,
|
||||||
|
midrc: 0,
|
||||||
|
mincheck: 0,
|
||||||
|
spektrum_sat_bind: 0,
|
||||||
|
rx_min_usec: 0,
|
||||||
|
rx_max_usec: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
FAILSAFE_CONFIG = {
|
||||||
|
failsafe_delay: 0,
|
||||||
|
failsafe_off_delay: 0,
|
||||||
|
failsafe_throttle: 0,
|
||||||
|
failsafe_kill_switch: 0,
|
||||||
|
failsafe_throttle_low_delay: 0,
|
||||||
|
failsafe_procedure: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
RXFAIL_CONFIG = [];
|
||||||
|
}
|
||||||
|
};
|
|
@ -178,6 +178,7 @@ function onOpen(openInfo) {
|
||||||
}
|
}
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
|
||||||
|
FC.resetState();
|
||||||
|
|
||||||
// request configuration data
|
// request configuration data
|
||||||
MSP.send_message(MSP_codes.MSP_API_VERSION, false, false, function () {
|
MSP.send_message(MSP_codes.MSP_API_VERSION, false, false, function () {
|
||||||
|
@ -285,7 +286,6 @@ function onClosed(result) {
|
||||||
|
|
||||||
var dataflash = $('#dataflash_wrapper_global');
|
var dataflash = $('#dataflash_wrapper_global');
|
||||||
dataflash.hide();
|
dataflash.hide();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function read_serial(info) {
|
function read_serial(info) {
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
<script type="text/javascript" src="./js/request_balancer.js"></script>
|
<script type="text/javascript" src="./js/request_balancer.js"></script>
|
||||||
<script type="text/javascript" src="./js/serial_backend.js"></script>
|
<script type="text/javascript" src="./js/serial_backend.js"></script>
|
||||||
<script type="text/javascript" src="./js/data_storage.js"></script>
|
<script type="text/javascript" src="./js/data_storage.js"></script>
|
||||||
|
<script type="text/javascript" src="./js/fc.js"></script>
|
||||||
<script type="text/javascript" src="./js/msp.js"></script>
|
<script type="text/javascript" src="./js/msp.js"></script>
|
||||||
<script type="text/javascript" src="./js/backup_restore.js"></script>
|
<script type="text/javascript" src="./js/backup_restore.js"></script>
|
||||||
<script type="text/javascript" src="./js/protocols/stm32.js"></script>
|
<script type="text/javascript" src="./js/protocols/stm32.js"></script>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue