mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-23 16:25:22 +03:00
Added analytics for OSD elements.
This commit is contained in:
parent
1bb4a16bd3
commit
7626d7be7f
1 changed files with 57 additions and 7 deletions
|
@ -1928,13 +1928,19 @@ OSD.msp = {
|
||||||
text: c.text,
|
text: c.text,
|
||||||
desc: c.desc,
|
desc: c.desc,
|
||||||
index: i,
|
index: i,
|
||||||
enabled: v === 1
|
enabled: v === 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Read all the data for any statistics we don't know about
|
// Read all the data for any statistics we don't know about
|
||||||
} else {
|
} else {
|
||||||
let statisticNumber = i - OSD.constants.STATISTIC_FIELDS.length + 1;
|
let statisticNumber = i - OSD.constants.STATISTIC_FIELDS.length + 1;
|
||||||
d.stat_items.push({name: 'UNKNOWN', text: ['osdTextStatUnknown', statisticNumber], desc: 'osdDescStatUnknown', index: i, enabled: v === 1 });
|
d.stat_items.push({
|
||||||
|
name: 'UNKNOWN',
|
||||||
|
text: ['osdTextStatUnknown', statisticNumber],
|
||||||
|
desc: 'osdDescStatUnknown',
|
||||||
|
index: i,
|
||||||
|
enabled: v === 1,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1966,12 +1972,19 @@ OSD.msp = {
|
||||||
|
|
||||||
// Known warning field
|
// Known warning field
|
||||||
if (i < OSD.constants.WARNINGS.length) {
|
if (i < OSD.constants.WARNINGS.length) {
|
||||||
d.warnings.push($.extend(OSD.constants.WARNINGS[i], { enabled: (warningFlags & (1 << i)) != 0 }));
|
d.warnings.push($.extend(OSD.constants.WARNINGS[i], {
|
||||||
|
enabled: (warningFlags & (1 << i)) !== 0,
|
||||||
|
}));
|
||||||
|
|
||||||
// Push Unknown Warning field
|
// Push Unknown Warning field
|
||||||
} else {
|
} else {
|
||||||
var warningNumber = i - OSD.constants.WARNINGS.length + 1;
|
var warningNumber = i - OSD.constants.WARNINGS.length + 1;
|
||||||
d.warnings.push({name: 'UNKNOWN', text: ['osdWarningTextUnknown', warningNumber], desc: 'osdWarningUnknown', enabled: (warningFlags & (1 << i)) != 0 });
|
d.warnings.push({
|
||||||
|
name: 'UNKNOWN',
|
||||||
|
text: ['osdWarningTextUnknown', warningNumber],
|
||||||
|
desc: 'osdWarningUnknown',
|
||||||
|
enabled: (warningFlags & (1 << i)) !== 0,
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2150,7 +2163,10 @@ OSD.GUI.preview = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
TABS.osd = {};
|
TABS.osd = {
|
||||||
|
analyticsChanges: {},
|
||||||
|
};
|
||||||
|
|
||||||
TABS.osd.initialize = function (callback) {
|
TABS.osd.initialize = function (callback) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
@ -2413,7 +2429,14 @@ TABS.osd.initialize = function (callback) {
|
||||||
.attr('checked', field.enabled)
|
.attr('checked', field.enabled)
|
||||||
.change(function (e) {
|
.change(function (e) {
|
||||||
var field = $(this).data('field');
|
var field = $(this).data('field');
|
||||||
|
|
||||||
field.enabled = !field.enabled;
|
field.enabled = !field.enabled;
|
||||||
|
|
||||||
|
if (self.analyticsChanges[`OSDStatistic${field.name}`] === undefined) {
|
||||||
|
self.analyticsChanges[`OSDStatistic${field.name}`] = 0;
|
||||||
|
}
|
||||||
|
self.analyticsChanges[`OSDStatistic${field.name}`] += field.enabled ? 1 : -1;
|
||||||
|
|
||||||
MSP.promise(MSPCodes.MSP_SET_OSD_CONFIG, OSD.msp.encodeStatistics(field))
|
MSP.promise(MSPCodes.MSP_SET_OSD_CONFIG, OSD.msp.encodeStatistics(field))
|
||||||
.then(function () {
|
.then(function () {
|
||||||
updateOsdView();
|
updateOsdView();
|
||||||
|
@ -2450,6 +2473,12 @@ TABS.osd.initialize = function (callback) {
|
||||||
.change(function (e) {
|
.change(function (e) {
|
||||||
var field = $(this).data('field');
|
var field = $(this).data('field');
|
||||||
field.enabled = !field.enabled;
|
field.enabled = !field.enabled;
|
||||||
|
|
||||||
|
if (self.analyticsChanges[`OSDWarning${field.name}`] === undefined) {
|
||||||
|
self.analyticsChanges[`OSDWarning${field.name}`] = 0;
|
||||||
|
}
|
||||||
|
self.analyticsChanges[`OSDWarning${field.name}`] += field.enabled ? 1 : -1;
|
||||||
|
|
||||||
MSP.promise(MSPCodes.MSP_SET_OSD_CONFIG, OSD.msp.encodeOther())
|
MSP.promise(MSPCodes.MSP_SET_OSD_CONFIG, OSD.msp.encodeOther())
|
||||||
.then(function () {
|
.then(function () {
|
||||||
updateOsdView();
|
updateOsdView();
|
||||||
|
@ -2564,6 +2593,12 @@ TABS.osd.initialize = function (callback) {
|
||||||
var profile = $(this).data('osd_profile');
|
var profile = $(this).data('osd_profile');
|
||||||
var $position = $(this).parent().find('.position.' + field.name);
|
var $position = $(this).parent().find('.position.' + field.name);
|
||||||
field.isVisible[profile] = !field.isVisible[profile];
|
field.isVisible[profile] = !field.isVisible[profile];
|
||||||
|
|
||||||
|
if (self.analyticsChanges[`OSDElement${field.name}`] === undefined) {
|
||||||
|
self.analyticsChanges[`OSDElement${field.name}`] = 0;
|
||||||
|
}
|
||||||
|
self.analyticsChanges[`OSDElement${field.name}`] += field.isVisible[profile] ? 1 : -1;
|
||||||
|
|
||||||
if (field.isVisible[OSD.getCurrentPreviewProfile()]) {
|
if (field.isVisible[OSD.getCurrentPreviewProfile()]) {
|
||||||
$position.show();
|
$position.show();
|
||||||
} else {
|
} else {
|
||||||
|
@ -2764,14 +2799,27 @@ TABS.osd.initialize = function (callback) {
|
||||||
});
|
});
|
||||||
|
|
||||||
$('a.save').click(function () {
|
$('a.save').click(function () {
|
||||||
var self = this;
|
|
||||||
MSP.promise(MSPCodes.MSP_EEPROM_WRITE);
|
MSP.promise(MSPCodes.MSP_EEPROM_WRITE);
|
||||||
GUI.log(i18n.getMessage('osdSettingsSaved'));
|
GUI.log(i18n.getMessage('osdSettingsSaved'));
|
||||||
var oldText = $(this).text();
|
var oldText = $(this).text();
|
||||||
$(this).html(i18n.getMessage('osdButtonSaved'));
|
$(this).html(i18n.getMessage('osdButtonSaved'));
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$(self).html(oldText);
|
$(this).html(oldText);
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
||||||
|
Object.keys(self.analyticsChanges).forEach(function (change) {
|
||||||
|
const value = self.analyticsChanges[change];
|
||||||
|
if (value > 0) {
|
||||||
|
self.analyticsChanges[change] = 'On';
|
||||||
|
} else if (value < 0) {
|
||||||
|
self.analyticsChanges[change] = 'Off';
|
||||||
|
} else {
|
||||||
|
self.analyticsChanges[change] = undefined;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
analytics.sendChangeEvents(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges);
|
||||||
|
self.analyticsChanges = {};
|
||||||
});
|
});
|
||||||
|
|
||||||
// font preview window
|
// font preview window
|
||||||
|
@ -2887,6 +2935,8 @@ TABS.osd.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
self.analyticsChanges = {};
|
||||||
|
|
||||||
GUI.content_ready(callback);
|
GUI.content_ready(callback);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue