1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-17 21:35:33 +03:00

Add an VTX tab

This commit is contained in:
Miguel Angel Mulero Martinez 2019-08-06 12:49:58 +02:00
parent 7189363f98
commit 0817e7d9e6
12 changed files with 1441 additions and 42 deletions

View file

@ -1282,9 +1282,78 @@ MspHelper.prototype.process_data = function(dataHandler) {
TRANSPONDER.data.push(data.readU8());
}
break;
case MSPCodes.MSP_SET_TRANSPONDER_CONFIG:
console.log("Transponder config saved");
break;
case MSPCodes.MSP_VTX_CONFIG:
VTX_CONFIG.vtx_type = data.readU8();
VTX_CONFIG.vtx_band = data.readU8();
VTX_CONFIG.vtx_channel = data.readU8();
VTX_CONFIG.vtx_power = data.readU8();
VTX_CONFIG.vtx_pit_mode = data.readU8() != 0;
VTX_CONFIG.vtx_frequency = data.readU16();
VTX_CONFIG.vtx_device_ready = data.readU8() != 0;
VTX_CONFIG.vtx_low_power_disarm = data.readU8();
if (semver.gte(CONFIG.apiVersion, "1.42.0")) {
VTX_CONFIG.vtx_pit_mode_frequency = data.readU16();
VTX_CONFIG.vtx_table_available = data.readU8() != 0;
VTX_CONFIG.vtx_table_bands = data.readU8();
VTX_CONFIG.vtx_table_channels = data.readU8();
VTX_CONFIG.vtx_table_powerlevels = data.readU8();
VTX_CONFIG.vtx_table_clear = false;
}
break;
case MSPCodes.MSP_SET_VTX_CONFIG:
console.log("VTX config sent");
break;
case MSPCodes.MSP_VTXTABLE_BAND:
VTXTABLE_BAND.vtxtable_band_number = data.readU8();
let bandNameLength = data.readU8();
VTXTABLE_BAND.vtxtable_band_name = '';
for (let i = 0; i < bandNameLength; i++) {
VTXTABLE_BAND.vtxtable_band_name += String.fromCharCode(data.readU8());
}
VTXTABLE_BAND.vtxtable_band_letter = String.fromCharCode(data.readU8());
VTXTABLE_BAND.vtxtable_band_is_factory_band = data.readU8() != 0;
let bandFrequenciesLength = data.readU8();
VTXTABLE_BAND.vtxtable_band_frequencies = [];
for (let i = 0; i < bandFrequenciesLength; i++) {
VTXTABLE_BAND.vtxtable_band_frequencies.push(data.readU16());
}
break;
case MSPCodes.MSP_SET_VTXTABLE_BAND:
console.log("VTX band sent");
break;
case MSPCodes.MSP_VTXTABLE_POWERLEVEL:
VTXTABLE_POWERLEVEL.vtxtable_powerlevel_number = data.readU8();
VTXTABLE_POWERLEVEL.vtxtable_powerlevel_value = data.readU16();
let powerLabelLength = data.readU8();
VTXTABLE_POWERLEVEL.vtxtable_powerlevel_label = '';
for (let i = 0; i < powerLabelLength; i++) {
VTXTABLE_POWERLEVEL.vtxtable_powerlevel_label += String.fromCharCode(data.readU8());
}
break;
case MSPCodes.MSP_SET_VTXTABLE_POWERLEVEL:
console.log("VTX powerlevel sent");
break;
case MSPCodes.MSP_SET_MODE_RANGE:
console.log('Mode range saved');
break;
@ -1340,10 +1409,6 @@ MspHelper.prototype.process_data = function(dataHandler) {
case MSPCodes.MSP_OSD_CHAR_WRITE:
console.log('OSD char uploaded');
break;
case MSPCodes.MSP_VTX_CONFIG:
break;
case MSPCodes.MSP_SET_VTX_CONFIG:
break;
case MSPCodes.MSP_SET_NAME:
console.log('Name set');
break;
@ -1885,6 +1950,58 @@ MspHelper.prototype.crunch = function(code) {
}
break;
case MSPCodes.MSP_SET_VTX_CONFIG:
buffer.push16(VTX_CONFIG.vtx_frequency)
.push8(VTX_CONFIG.vtx_power)
.push8(VTX_CONFIG.vtx_pit_mode ? 1 : 0)
.push8(VTX_CONFIG.vtx_low_power_disarm);
if (semver.gte(CONFIG.apiVersion, "1.42.0")) {
buffer.push16(VTX_CONFIG.vtx_pit_mode_frequency)
.push8(VTX_CONFIG.vtx_band)
.push8(VTX_CONFIG.vtx_channel)
.push16(VTX_CONFIG.vtx_frequency)
.push8(VTX_CONFIG.vtx_table_bands)
.push8(VTX_CONFIG.vtx_table_channels)
.push8(VTX_CONFIG.vtx_table_powerlevels)
.push8(VTX_CONFIG.vtx_table_clear ? 1 : 0);
}
break;
case MSPCodes.MSP_SET_VTXTABLE_POWERLEVEL:
buffer.push8(VTXTABLE_POWERLEVEL.vtxtable_powerlevel_number)
.push16(VTXTABLE_POWERLEVEL.vtxtable_powerlevel_value);
buffer.push8(VTXTABLE_POWERLEVEL.vtxtable_powerlevel_label.length);
for (let i = 0; i < VTXTABLE_POWERLEVEL.vtxtable_powerlevel_label.length; i++) {
buffer.push8(VTXTABLE_POWERLEVEL.vtxtable_powerlevel_label.charCodeAt(i));
}
break;
case MSPCodes.MSP_SET_VTXTABLE_BAND:
buffer.push8(VTXTABLE_BAND.vtxtable_band_number);
buffer.push8(VTXTABLE_BAND.vtxtable_band_name.length);
for (let i = 0; i < VTXTABLE_BAND.vtxtable_band_name.length; i++) {
buffer.push8(VTXTABLE_BAND.vtxtable_band_name.charCodeAt(i));
}
buffer.push8(VTXTABLE_BAND.vtxtable_band_letter.charCodeAt(0))
.push8(VTXTABLE_BAND.vtxtable_band_is_factory_band ? 1 : 0);
buffer.push8(VTXTABLE_BAND.vtxtable_band_frequencies.length);
for (let i = 0; i < VTXTABLE_BAND.vtxtable_band_frequencies.length; i++) {
buffer.push16(VTXTABLE_BAND.vtxtable_band_frequencies[i]);
}
break;
default:
return false;
}