1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-16 04:45:20 +03:00
betaflight-configurator/src/js/VirtualFC.js
2020-12-28 17:24:34 +01:00

212 lines
6.6 KiB
JavaScript

'use strict';
const VirtualFC = {
// these values are manufactured to unlock all the functionality of the configurator, they dont represent actual hardware
setVirtualConfig() {
const virtualFC = FC;
virtualFC.resetState();
virtualFC.CONFIG.flightControllerVersion = "4.2.4";
virtualFC.CONFIG.apiVersion = CONFIGURATOR.virtualApiVersion;
virtualFC.FEATURE_CONFIG.features = new Features(FC.CONFIG);
virtualFC.FEATURE_CONFIG.features.setMask(0);
virtualFC.BEEPER_CONFIG.beepers = new Beepers(FC.CONFIG);
virtualFC.BEEPER_CONFIG.dshotBeaconConditions = new Beepers(FC.CONFIG, [ "RX_LOST", "RX_SET" ]);
virtualFC.MIXER_CONFIG.mixer = 3;
virtualFC.MOTOR_DATA = Array.from({length: 8});
virtualFC.MOTOR_3D_CONFIG = true;
virtualFC.MOTOR_CONFIG = {
minthrottle: 1070,
maxthrottle: 2000,
mincommand: 1000,
motor_count: 4,
motor_poles: 14,
use_dshot_telemetry: true,
use_esc_sensor: false,
};
virtualFC.SERVO_CONFIG = Array.from({length: 8});
for (let i = 0; i < virtualFC.SERVO_CONFIG.length; i++) {
virtualFC.SERVO_CONFIG[i] = {
middle: 1500,
min: 1000,
max: 2000,
indexOfChannelToForward: 255,
rate: 100,
reversedInputSources: 0,
};
}
virtualFC.ADJUSTMENT_RANGES = Array.from({length: 16});
for (let i = 0; i < virtualFC.ADJUSTMENT_RANGES.length; i++) {
virtualFC.ADJUSTMENT_RANGES[i] = {
slotIndex: 0,
auxChannelIndex: 0,
range: {
start: 900,
end: 900,
},
adjustmentFunction: 0,
auxSwitchChannelIndex: 0,
};
}
virtualFC.SERIAL_CONFIG.ports = Array.from({length: 6});
virtualFC.SERIAL_CONFIG.ports[0] = {
identifier: 20,
auxChannelIndex: 0,
functions: ["MSP"],
msp_baudrate: 115200,
gps_baudrate: 57600,
telemetry_baudrate: "AUTO",
blackbox_baudrate: 115200,
};
for (let i = 1; i < virtualFC.SERIAL_CONFIG.ports.length; i++) {
virtualFC.SERIAL_CONFIG.ports[i] = {
identifier: i-1,
auxChannelIndex: 0,
functions: [],
msp_baudrate: 115200,
gps_baudrate: 57600,
telemetry_baudrate: "AUTO",
blackbox_baudrate: 115200,
};
}
virtualFC.LED_STRIP = Array.from({length: 256});
for (let i = 0; i < virtualFC.LED_STRIP.length; i++) {
virtualFC.LED_STRIP[i] = {
x: 0,
y: 0,
functions: ["c"],
color: 0,
directions: [],
parameters: 0,
};
}
virtualFC.ANALOG = {
voltage: 12,
mAhdrawn: 1200,
rssi: 100,
amperage: 3,
};
virtualFC.CONFIG.sampleRateHz = 12000;
virtualFC.PID_ADVANCED_CONFIG.pid_process_denom = 2;
virtualFC.BLACKBOX.supported = true;
virtualFC.VTX_CONFIG.vtx_type = 1;
virtualFC.BATTERY_CONFIG = {
vbatmincellvoltage: 1,
vbatmaxcellvoltage: 4,
vbatwarningcellvoltage: 3,
capacity: 10000,
voltageMeterSource: 1,
currentMeterSource: 1,
};
virtualFC.BATTERY_STATE = {
cellCount: 10,
voltage: 20,
mAhDrawn: 1000,
amperage: 3,
};
virtualFC.DATAFLASH = {
ready: true,
supported: true,
sectors: 1024,
totalSize: 40000,
usedSize: 10000,
};
virtualFC.SDCARD = {
supported: true,
state: 1,
freeSizeKB: 1024,
totalSizeKB: 2048,
};
virtualFC.SENSOR_CONFIG = {
acc_hardware: 1,
baro_hardware: 1,
mag_hardware: 1,
};
virtualFC.RC = {
channels: Array.from({length: 16}),
active_channels: 16,
};
for (let i = 0; i < virtualFC.RC.channels.length; i++) {
virtualFC.RC.channels[i] = 1500;
}
// from https://github.com/betaflight/betaflight/blob/master/docs/Modes.md
virtualFC.AUX_CONFIG = ["ARM","ANGLE","HORIZON","ANTI GRAVITY","MAG","HEADFREE","HEADADJ","CAMSTAB","PASSTHRU","BEEPERON","LEDLOW","CALIB",
"OSD","TELEMETRY","SERVO1","SERVO2","SERVO3","BLACKBOX","FAILSAFE","AIRMODE","3D","FPV ANGLE MIX","BLACKBOX ERASE","CAMERA CONTROL 1",
"CAMERA CONTROL 2","CAMERA CONTROL 3","FLIP OVER AFTER CRASH","BOXPREARM","BEEP GPS SATELLITE COUNT","VTX PIT MODE","USER1","USER2",
"USER3","USER4","PID AUDIO","PARALYZE","GPS RESCUE","ACRO TRAINER","DISABLE VTX CONTROL","LAUNCH CONTROL"];
FC.AUX_CONFIG_IDS = [0,1,2,4,5,6,7,8,12,13,15,17,19,20,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49];
for (let i = 0; i < 16; i++) {
virtualFC.RXFAIL_CONFIG[i] = {
mode: 1,
value: 1500,
};
}
// 11 1111 (pass bitchecks)
virtualFC.CONFIG.activeSensors = 63;
},
setupVirtualOSD(){
const virtualOSD = OSD;
virtualOSD.data.video_system = 1;
virtualOSD.data.unit_mode = 1;
virtualOSD.virtualMode = {
itemPositions: Array.from({length: 60}),
statisticsState: [],
warningFlags: 0,
timerData: [],
};
virtualOSD.data.state = {
haveMax7456Configured: true,
haveOsdFeature: true,
haveMax7456FontDeviceConfigured: true,
isMax7456FontDeviceDetected: true,
haveSomeOsd: true,
};
virtualOSD.data.parameters = {
cameraFrameWidth: 30,
cameraFrameHeight: 30,
};
virtualOSD.data.osd_profiles = {
number: 3,
selected: 0,
};
virtualOSD.data.alarms = {
rssi: { display_name: i18n.getMessage('osdTimerAlarmOptionRssi'), value: 0 },
cap: { display_name: i18n.getMessage('osdTimerAlarmOptionCapacity'), value: 0 },
alt: { display_name: i18n.getMessage('osdTimerAlarmOptionAltitude'), value: 0 },
time: { display_name: 'Minutes', value: 0 },
};
},
};