'use strict';
TABS.transponder = {
available: false,
};
TABS.transponder.initialize = function(callback, scrollPosition) {
let _persistentInputValues = {};
let dataTypes = {
NONE: 0,
TEXT: 1,
LIST: 2,
};
// CONFIGURATION HERE FOR ADD NEW TRANSPONDER
let transponderConfigurations = {
0: {
dataType: dataTypes.NONE, // empty
}, //NONE
1: {
dataType: dataTypes.TEXT, //
}, //ilap
2: {
dataType: dataTypes.LIST, //
dataOptions: {
'ID 1': 'E00370FC0FFE07E0FF',
'ID 2': '007C003EF800FC0FFE',
'ID 3': 'F8811FF8811FFFC7FF',
'ID 4': '007C003EF81F800FFE',
'ID 5': 'F00FFF00FFF00FF0FF',
'ID 6': '007CF0C1071F7C00F0',
'ID 7': 'E003F03F00FF03F0C1',
'ID 8': '00FC0FFE071F3E00FE',
'ID 9': 'E083BFF00F9E38C0FF',
},
}, //arcitimer
3: {
dataType: dataTypes.LIST, //
dataOptions: {
'0':'00',
'1':'01',
'2':'02',
'3':'03',
'4':'04',
'5':'05',
'6':'06',
'7':'07',
'8':'08',
'9':'09',
'10':'0A',
'11':'0B',
'12':'0C',
'13':'0D',
'14':'0E',
'15':'0F',
'16':'10',
'17':'11',
'18':'12',
'19':'13',
'20':'14',
'21':'15',
'22':'16',
'23':'17',
'24':'18',
'25':'19',
'26':'1A',
'27':'1B',
'28':'1C',
'29':'1D',
'30':'1E',
'31':'1F',
'32':'20',
'33':'21',
'34':'22',
'35':'23',
'36':'24',
'37':'25',
'38':'26',
'39':'27',
'40':'28',
'41':'29',
'42':'2A',
'43':'2B',
'44':'2C',
'45':'2D',
'46':'2E',
'47':'2F',
'48':'30',
'49':'31',
'50':'32',
'51':'33',
'52':'34',
'53':'35',
'54':'36',
'55':'37',
'56':'38',
'57':'39',
'58':'3A',
'59':'3B',
'60':'3C',
'61':'3D',
'62':'3E',
'63':'3F',
},
}, //ERLT
};
/////////////////////////////////////////////
if ( GUI.active_tab != 'transponder' ) {
GUI.active_tab = 'transponder';
// Disabled on merge into betaflight-configurator
//googleAnalytics.sendAppView('Transponder');
}
// transponder supported added in MSP API Version 1.16.0
if ( FC.CONFIG ) {
TABS.transponder.available = semver.gte(FC.CONFIG.apiVersion, "1.16.0");
}
//////////////
if ( !TABS.transponder.available ) {
load_html();
return;
}
function load_html() {
$('#content').load("./tabs/transponder.html", process_html);
}
//HELPERS
// Convert a hex string to a byte array
function hexToBytes(hex) {
const bytes = [];
for ( let c = 0; c < hex.length; c += 2 ) {
bytes.push(~parseInt(hex.substr(c, 2), 16));
}
return bytes;
}
function pad(n, width) {
n = `${n}`;
return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
}
// Convert a byte array to a hex string
function bytesToHex(bytes) {
const hex = [];
for ( let i = 0; i < bytes.length; i++ ) {
hex.push(pad(((~bytes[i]) & 0xFF).toString(16), 2));
}
return hex.join("").toUpperCase();
}
/////////////
function fillByTransponderProviders(transponderProviders, transponderProviderID, toggleTransponderTypeFn) {
let transponderTypeSelect = $('#transponder_type_select');
transponderTypeSelect.attr('data-defaultValue', transponderProviderID);
transponderTypeSelect.off('change').change(toggleTransponderTypeFn);
transponderTypeSelect.html('');
//build radio buttons
if (transponderProviders.length > 1) {
transponderTypeSelect.append(
$('