'use strict'; TABS.ports = {}; TABS.ports.initialize = function (callback) { var columns = ['data', 'logging', 'sensors', 'telemetry', 'rx', 'peripherals']; if (GUI.active_tab != 'ports') { GUI.active_tab = 'ports'; googleAnalytics.sendAppView('Ports'); } mspHelper.loadSerialPorts(function () { GUI.load("./tabs/ports.html", on_tab_loaded_handler) }); function update_ui() { $(".tab-ports").addClass("supported"); var i, $elements; $elements = $('select.sensors_baudrate'); for (i = 0; i < helper.serialPortHelper.getBauds('SENSOR').length; i++) { $elements.append(''); } $elements = $('select.msp_baudrate'); for (i = 0; i < helper.serialPortHelper.getBauds('MSP').length; i++) { $elements.append(''); } $elements = $('select.telemetry_baudrate'); for (i = 0; i < helper.serialPortHelper.getBauds('TELEMETRY').length; i++) { $elements.append(''); } $elements = $('select.peripherals_baudrate'); for (i = 0; i < helper.serialPortHelper.getBauds('PERIPHERAL').length; i++) { $elements.append(''); } var ports_e = $('.tab-ports .ports'); var port_configuration_template_e = $('#tab-ports-templates .portConfiguration'); for (var portIndex = 0; portIndex < SERIAL_CONFIG.ports.length; portIndex++) { var port_configuration_e = port_configuration_template_e.clone(); var serialPort = SERIAL_CONFIG.ports[portIndex]; port_configuration_e.data('serialPort', serialPort); //Append only port different than USB VCP if (serialPort.identifier != 20) { port_configuration_e.find('select.msp_baudrate').val(serialPort.msp_baudrate); port_configuration_e.find('select.telemetry_baudrate').val(serialPort.telemetry_baudrate); port_configuration_e.find('select.sensors_baudrate').val(serialPort.sensors_baudrate); port_configuration_e.find('select.peripherals_baudrate').val(serialPort.peripherals_baudrate); port_configuration_e.find('.identifier').text(helper.serialPortHelper.getPortName(serialPort.identifier)); if (serialPort.identifier >= 30) { port_configuration_e.find('.softSerialWarning').css("display", "inline") } else { port_configuration_e.find('.softSerialWarning').css("display", "none") } port_configuration_e.data('index', portIndex); port_configuration_e.data('port', serialPort); for (var columnIndex = 0; columnIndex < columns.length; columnIndex++) { var column = columns[columnIndex]; var functions_e = $(port_configuration_e).find('.functionsCell-' + column); let functions_e_id = "portFunc-" + column + "-" + portIndex; functions_e.attr("id", functions_e_id); for (i = 0; i < helper.serialPortHelper.getRules().length; i++) { var functionRule = helper.serialPortHelper.getRules()[i]; var functionName = functionRule.name; if (functionRule.groups.indexOf(column) == -1) { continue; } var select_e; if (column !== 'telemetry' && column !== 'peripherals' && column !== 'sensors') { var checkboxId = 'functionCheckbox-' + portIndex + '-' + columnIndex + '-' + i; functions_e.prepend(''); if (serialPort.functions.indexOf(functionName) >= 0) { var checkbox_e = functions_e.find('#' + checkboxId); checkbox_e.prop("checked", true); } } else { var selectElementName = 'function-' + column; var selectElementSelector = 'select[name=' + selectElementName + ']'; select_e = functions_e.find(selectElementSelector); if (select_e.length == 0) { functions_e.prepend('