mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-24 00:35:26 +03:00
Added more metrics, fixed bug in CLI save.
This commit is contained in:
parent
8762dbc553
commit
d9e8330997
5 changed files with 53 additions and 8 deletions
|
@ -31,15 +31,18 @@ var Analytics = function (trackingId, userId, appName, appVersion, buildType, op
|
|||
|
||||
this.DATA = {
|
||||
BOARD_TYPE: 'boardType',
|
||||
API_VERSION: 'apiVersion',
|
||||
FIRMWARE_TYPE: 'firmwareType',
|
||||
FIRMWARE_VERSION: 'firmwareVersion',
|
||||
API_VERSION: 'apiVersion',
|
||||
MCU_ID: 'mcuId',
|
||||
FIRMWARE_NAME: 'firmwareName',
|
||||
FIRMWARE_CHECKSUM: 'firmwareChecksum',
|
||||
FIRMWARE_SOURCE: 'firmwareSource',
|
||||
FIRMWARE_CHANNEL: 'firmwareChannel',
|
||||
FIRMWARE_ERASE_ALL: 'firmwareEraseAll',
|
||||
FIRMWARE_SIZE: 'firmwareSize',
|
||||
MCU_ID: 'mcuId',
|
||||
LOGGING_STATUS: 'loggingStatus',
|
||||
LOG_SIZE: 'logSize',
|
||||
};
|
||||
|
||||
this.DIMENSIONS = {
|
||||
|
@ -53,6 +56,13 @@ var Analytics = function (trackingId, userId, appName, appVersion, buildType, op
|
|||
FIRMWARE_ERASE_ALL: 8,
|
||||
CONFIGURATOR_EXPERT_MODE: 9,
|
||||
FIRMWARE_CHANNEL: 10,
|
||||
LOGGING_STATUS: 11,
|
||||
MCU_ID: 12,
|
||||
};
|
||||
|
||||
this.METRICS = {
|
||||
FIRMWARE_SIZE: 1,
|
||||
LOG_SIZE: 2,
|
||||
};
|
||||
|
||||
this.setDimension(this.DIMENSIONS.CONFIGURATOR_BUILD_TYPE, buildType);
|
||||
|
@ -66,6 +76,11 @@ Analytics.prototype.setDimension = function (dimension, value) {
|
|||
this._googleAnalytics.custom(dimensionName, value);
|
||||
}
|
||||
|
||||
Analytics.prototype.setMetric = function (metric, value) {
|
||||
var metricName = 'metric' + metric;
|
||||
this._googleAnalytics.custom(metricName, value);
|
||||
}
|
||||
|
||||
Analytics.prototype.sendEvent = function (category, action, options) {
|
||||
this._googleAnalytics.event(category, action, options);
|
||||
}
|
||||
|
@ -102,7 +117,9 @@ Analytics.prototype._rebuildFlightControllerEvent = function () {
|
|||
this.setDimension(this.DIMENSIONS.FIRMWARE_TYPE, this._flightControllerData[this.DATA.FIRMWARE_TYPE]);
|
||||
this.setDimension(this.DIMENSIONS.FIRMWARE_VERSION, this._flightControllerData[this.DATA.FIRMWARE_VERSION]);
|
||||
this.setDimension(this.DIMENSIONS.API_VERSION, this._flightControllerData[this.DATA.API_VERSION]);
|
||||
this._googleAnalytics.set('eventLabel', this._flightControllerData[this.DATA.MCU_ID]);
|
||||
this.setDimension(this.DIMENSIONS.LOGGING_STATUS, this._flightControllerData[this.DATA.LOGGING_STATUS]);
|
||||
this.setDimension(this.DIMENSIONS.MCU_ID, this._flightControllerData[this.DATA.MCU_ID]);
|
||||
this.setMetric(this.METRICS.LOG_SIZE, this._flightControllerData[this.DATA.LOG_SIZE]);
|
||||
}
|
||||
|
||||
Analytics.prototype.setFlightControllerData = function (property, value) {
|
||||
|
@ -122,6 +139,7 @@ Analytics.prototype._rebuildFirmwareEvent = function () {
|
|||
this.setDimension(this.DIMENSIONS.FIRMWARE_SOURCE, this._firmwareData[this.DATA.FIRMWARE_SOURCE]);
|
||||
this.setDimension(this.DIMENSIONS.FIRMWARE_ERASE_ALL, this._firmwareData[this.DATA.FIRMWARE_ERASE_ALL]);
|
||||
this.setDimension(this.DIMENSIONS.FIRMWARE_CHANNEL, this._firmwareData[this.DATA.FIRMWARE_CHANNEL]);
|
||||
this.setMetric(this.METRICS.FIRMWARE_SIZE, this._firmwareData[this.DATA.FIRMWARE_SIZE]);
|
||||
this._googleAnalytics.set('eventLabel', this._firmwareData[this.DATA.FIRMWARE_CHECKSUM]);
|
||||
}
|
||||
|
||||
|
|
|
@ -254,6 +254,7 @@ function configuration_backup(callback) {
|
|||
return;
|
||||
}
|
||||
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Backup');
|
||||
console.log('Write SUCCESSFUL');
|
||||
if (callback) callback();
|
||||
};
|
||||
|
@ -337,6 +338,8 @@ function configuration_restore(callback) {
|
|||
configuration.FEATURE_CONFIG.features = features;
|
||||
}
|
||||
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Restore');
|
||||
|
||||
configuration_upload(configuration, callback);
|
||||
} else {
|
||||
GUI.log(i18n.getMessage('backupFileIncompatible'));
|
||||
|
|
|
@ -60,7 +60,6 @@ TABS.cli.initialize = function (callback) {
|
|||
var textarea = $('.tab-cli textarea');
|
||||
|
||||
$('.tab-cli .save').click(function() {
|
||||
|
||||
var prefix = 'cli';
|
||||
var suffix = 'txt';
|
||||
|
||||
|
@ -87,9 +86,11 @@ TABS.cli.initialize = function (callback) {
|
|||
};
|
||||
|
||||
writer.onwriteend = function () {
|
||||
if (writer.length === 0) {
|
||||
if (self.outputHistory.length > 0 && writer.length === 0) {
|
||||
writer.write(new Blob([self.outputHistory], {type: 'text/plain'}));
|
||||
} else {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'CliSave', self.outputHistory.length);
|
||||
|
||||
console.log('write complete');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -56,12 +56,12 @@ TABS.firmware_flasher.initialize = function (callback) {
|
|||
parsed_hex = data;
|
||||
|
||||
if (parsed_hex) {
|
||||
analytics.setFirmwareData(analytics.DATA.FIRMWARE_SIZE, parsed_hex.bytes_total);
|
||||
|
||||
if (!FirmwareCache.has(summary)) {
|
||||
FirmwareCache.put(summary, intel_hex);
|
||||
}
|
||||
|
||||
var url;
|
||||
|
||||
$('span.progressLabel').html('<a class="save_firmware" href="#" title="Save Firmware">Loaded Online Firmware: (' + parsed_hex.bytes_total + ' bytes)</a>');
|
||||
|
||||
$('a.flash_firmware').removeClass('disabled');
|
||||
|
@ -367,6 +367,8 @@ TABS.firmware_flasher.initialize = function (callback) {
|
|||
parsed_hex = data;
|
||||
|
||||
if (parsed_hex) {
|
||||
analytics.setFirmwareData(analytics.DATA.FIRMWARE_SIZE, parsed_hex.bytes_total);
|
||||
|
||||
$('a.flash_firmware').removeClass('disabled');
|
||||
|
||||
$('span.progressLabel').text(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', parsed_hex.bytes_total));
|
||||
|
|
|
@ -153,6 +153,8 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
.toggleClass("msc-supported", true);
|
||||
|
||||
$('a.onboardLoggingRebootMsc').click(function () {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'RebootMsc');
|
||||
|
||||
var buffer = [];
|
||||
buffer.push(2);
|
||||
MSP.send_message(MSPCodes.MSP_SET_REBOOT, buffer, false);
|
||||
|
@ -298,6 +300,8 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
}
|
||||
|
||||
function update_html() {
|
||||
var dataflashPresent = DATAFLASH.totalSize > 0;
|
||||
|
||||
update_bar_width($(".tab-onboard_logging .dataflash-used"), DATAFLASH.usedSize, DATAFLASH.totalSize, i18n.getMessage('dataflashUsedSpace'), false);
|
||||
update_bar_width($(".tab-onboard_logging .dataflash-free"), DATAFLASH.totalSize - DATAFLASH.usedSize, DATAFLASH.totalSize, i18n.getMessage('dataflashFreeSpace'), false);
|
||||
|
||||
|
@ -312,7 +316,7 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
.toggleClass("sdcard-ready", SDCARD.state === MSP.SDCARD_STATE_READY);
|
||||
|
||||
if (semver.gte(CONFIG.apiVersion, "1.40.0")) {
|
||||
var mscIsReady = (DATAFLASH.totalSize > 0) || (SDCARD.state === MSP.SDCARD_STATE_READY);
|
||||
var mscIsReady = dataflashPresent || (SDCARD.state === MSP.SDCARD_STATE_READY);
|
||||
$(".tab-onboard_logging")
|
||||
.toggleClass("msc-not-ready", !mscIsReady);
|
||||
|
||||
|
@ -323,26 +327,38 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
}
|
||||
}
|
||||
|
||||
var loggingStatus
|
||||
switch (SDCARD.state) {
|
||||
case MSP.SDCARD_STATE_NOT_PRESENT:
|
||||
$(".sdcard-status").text(i18n.getMessage('sdcardStatusNoCard'));
|
||||
loggingStatus = 'SdCard: NotPresent';
|
||||
break;
|
||||
case MSP.SDCARD_STATE_FATAL:
|
||||
$(".sdcard-status").html(i18n.getMessage('sdcardStatusReboot'));
|
||||
loggingStatus = 'SdCard: Error';
|
||||
break;
|
||||
case MSP.SDCARD_STATE_READY:
|
||||
$(".sdcard-status").text(i18n.getMessage('sdcardStatusReady'));
|
||||
loggingStatus = 'SdCard: Ready';
|
||||
break;
|
||||
case MSP.SDCARD_STATE_CARD_INIT:
|
||||
$(".sdcard-status").text(i18n.getMessage('sdcardStatusStarting'));
|
||||
loggingStatus = 'SdCard: Init';
|
||||
break;
|
||||
case MSP.SDCARD_STATE_FS_INIT:
|
||||
$(".sdcard-status").text(i18n.getMessage('sdcardStatusFileSystem'));
|
||||
loggingStatus = 'SdCard: FsInit';
|
||||
break;
|
||||
default:
|
||||
$(".sdcard-status").text(i18n.getMessage('sdcardStatusUnknown',[SDCARD.state]));
|
||||
}
|
||||
|
||||
if (dataflashPresent && SDCARD.state === MSP.SDCARD_STATE_NOT_PRESENT) {
|
||||
loggingStatus = 'Dataflash';
|
||||
analytics.setFlightControllerData(analytics.DATA.LOG_SIZE, DATAFLASH.usedSize);
|
||||
}
|
||||
analytics.setFlightControllerData(analytics.DATA.LOGGING_STATUS, loggingStatus);
|
||||
|
||||
if (SDCARD.supported && !sdcardTimer) {
|
||||
// Poll for changes in SD card status
|
||||
sdcardTimer = setTimeout(function() {
|
||||
|
@ -374,6 +390,8 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
}
|
||||
|
||||
function mark_saving_dialog_done(startTime, totalBytes, totalBytesCompressed) {
|
||||
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'SaveDataflash');
|
||||
|
||||
var totalTime = (new Date().getTime() - startTime) / 1000;
|
||||
console.log('Received ' + totalBytes + ' bytes in ' + totalTime.toFixed(2) + 's ('
|
||||
+ (totalBytes / totalTime / 1024).toFixed(2) + 'kB / s) with block size ' + self.blockSize + '.');
|
||||
|
@ -539,6 +557,9 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
};
|
||||
|
||||
TABS.onboard_logging.cleanup = function (callback) {
|
||||
analytics.setFlightControllerData(analytics.DATA.LOGGING_STATUS, undefined);
|
||||
analytics.setFlightControllerData(analytics.DATA.LOG_SIZE, undefined);
|
||||
|
||||
if (sdcardTimer) {
|
||||
clearTimeout(sdcardTimer);
|
||||
sdcardTimer = false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue