diff --git a/package.json b/package.json
index acf4bccf..29c2d444 100644
--- a/package.json
+++ b/package.json
@@ -68,7 +68,6 @@
"short-unique-id": "^4.4.4",
"switchery-latest": "^0.8.2",
"three": "~0.97.0",
- "universal-ga": "^1.2.0",
"vite-plugin-pwa": "^0.17.4",
"vue": "^2.7.10"
},
diff --git a/src/js/Analytics.js b/src/js/Analytics.js
index 23bb2bee..9e5115ea 100644
--- a/src/js/Analytics.js
+++ b/src/js/Analytics.js
@@ -1,5 +1,5 @@
import ShortUniqueId from 'short-unique-id';
-import googleAnalytics from 'universal-ga';
+import BuildApi from './BuildApi';
import { set as setConfig, get as getConfig } from './ConfigStorage';
import GUI from './gui';
import CONFIGURATOR from './data_storage';
@@ -8,32 +8,27 @@ import $ from 'jquery';
let tracking = null;
export { tracking };
-export function createAnalytics(ga, settings) {
- tracking = new Analytics(ga, settings);
+export function createAnalytics(settings) {
+ tracking = new Analytics(settings);
}
-function getBuildType() {
- return GUI.Mode;
-}
function setupAnalytics(result) {
+ const uid = new ShortUniqueId();
+
let userId;
if (result.userId) {
userId = result.userId;
} else {
- const uid = new ShortUniqueId();
userId = uid.randomUUID(13);
-
setConfig({ 'userId': userId });
}
const optOut = !!result.analyticsOptOut;
const checkForDebugVersions = !!result.checkForConfiguratorUnstableVersions;
- const debugMode = typeof process === "object" && process.versions['nw-flavor'] === 'sdk';
-
const settings = {
- trackingId: 'UA-123002063-1',
+ sessionId: uid.randomUUID(16),
userId: userId,
appName: CONFIGURATOR.productName,
appVersion: CONFIGURATOR.version,
@@ -41,10 +36,10 @@ function setupAnalytics(result) {
os: GUI.operating_system,
checkForDebugVersions: checkForDebugVersions,
optOut: optOut,
- // debugMode: debugMode, // enable when debugging GA
- buildType: getBuildType(),
+ buildType: GUI.Mode,
};
- createAnalytics(googleAnalytics, settings);
+
+ createAnalytics(settings);
window.tracking = tracking;
function logException(exception) {
@@ -74,29 +69,12 @@ export function checkSetupAnalytics(callback) {
class Analytics {
- constructor (ga, settings) {
- // trackingId, userId, appName, appVersion, gitRevision, os, checkForDebugVersions, optOut, debugMode, buildType
- this._trackingId = settings.trackingId;
+ constructor (settings) {
this.setOptOut(settings.optOut);
- this._googleAnalytics = ga;
-
- this._googleAnalytics.initialize(this._trackingId, {
- storage: 'none',
- clientId: settings.userId,
- debug: !!settings.debugMode,
- });
-
- // Make it work for the Chrome App:
- this._googleAnalytics.set('forceSSL', true);
- this._googleAnalytics.set('transport', 'xhr');
-
- // Make it work for NW.js:
- this._googleAnalytics.set('checkProtocolTask', null);
-
- this._googleAnalytics.set('appName', settings.appName);
- this._googleAnalytics.set('appVersion', settings.debugMode ? `${settings.appVersion}-debug` : settings.appVersion);
+ this._settings = settings;
+ this._api = new BuildApi();
this.EVENT_CATEGORIES = {
APPLICATION: 'Application',
@@ -104,149 +82,50 @@ class Analytics {
FLASHING: 'Flashing',
};
- this.DATA = {
- BOARD_TYPE: 'boardType',
- API_VERSION: 'apiVersion',
- FIRMWARE_TYPE: 'firmwareType',
- FIRMWARE_VERSION: 'firmwareVersion',
- FIRMWARE_NAME: 'firmwareName',
- FIRMWARE_SOURCE: 'firmwareSource',
- FIRMWARE_CHANNEL: 'firmwareChannel',
- FIRMWARE_ERASE_ALL: 'firmwareEraseAll',
- FIRMWARE_SIZE: 'firmwareSize',
- MCU_ID: 'mcuId',
- LOGGING_STATUS: 'loggingStatus',
- LOG_SIZE: 'logSize',
- TARGET_NAME: 'targetName',
- BOARD_NAME: 'boardName',
- MANUFACTURER_ID: 'manufacturerId',
- MCU_TYPE: 'mcuType',
- };
-
- this.DIMENSIONS = {
- CONFIGURATOR_OS: 1,
- BOARD_TYPE: 2,
- FIRMWARE_TYPE: 3,
- FIRMWARE_VERSION: 4,
- API_VERSION: 5,
- FIRMWARE_NAME: 6,
- FIRMWARE_SOURCE: 7,
- FIRMWARE_ERASE_ALL: 8,
- CONFIGURATOR_EXPERT_MODE: 9,
- FIRMWARE_CHANNEL: 10,
- LOGGING_STATUS: 11,
- MCU_ID: 12,
- CONFIGURATOR_CHANGESET_ID: 13,
- CONFIGURATOR_USE_DEBUG_VERSIONS: 14,
- TARGET_NAME: 15,
- BOARD_NAME: 16,
- MANUFACTURER_ID: 17,
- MCU_TYPE: 18,
- CONFIGURATOR_BUILD_TYPE: 19,
- };
-
- this.METRICS = {
- FIRMWARE_SIZE: 1,
- LOG_SIZE: 2,
- };
-
- this.setDimension(this.DIMENSIONS.CONFIGURATOR_OS, settings.os);
- this.setDimension(this.DIMENSIONS.CONFIGURATOR_CHANGESET_ID, settings.gitRevision);
- this.setDimension(this.DIMENSIONS.CONFIGURATOR_USE_DEBUG_VERSIONS, settings.checkForDebugVersions);
- this.setDimension(this.DIMENSIONS.CONFIGURATOR_BUILD_TYPE, settings.buildType);
-
- this.resetFlightControllerData();
- this.resetFirmwareData();
+ this.sendSettings();
}
- setDimension(dimension, value) {
- const dimensionName = `dimension${dimension}`;
- this._googleAnalytics.custom(dimensionName, value);
+ send(name, properties) {
+ if (this._optOut) {
+ return;
+ }
+
+ this._api.sendAnalytics(name, {
+ sessionId: this._settings.sessionId,
+ userId: this._settings.userId,
+ [name]: properties,
+ });
}
- setMetric(metric, value) {
- const metricName = `metric${metric}`;
- this._googleAnalytics.custom(metricName, value);
+ sendSettings() {
+ this.send('settings', this._settings);
}
sendEvent(category, action, options) {
- this._googleAnalytics.event(category, action, options);
+ this.send('event', { category: category, action: action, options: options });
}
sendChangeEvents(category, changeList) {
- for (const actionName in changeList) {
- if (changeList.hasOwnProperty(actionName)) {
- const actionValue = changeList[actionName];
- if (actionValue !== undefined) {
- this.sendEvent(category, actionName, { eventLabel: actionValue });
- }
- }
- }
+ this.sendEvent(category, 'Change', { changes: changeList });
}
sendSaveAndChangeEvents(category, changeList, tabName) {
- this.sendEvent(category, 'Save', {
- eventLabel: tabName,
- eventValue: Object.keys(changeList).length,
- });
- this.sendChangeEvents(category, changeList);
+ this.sendEvent(category, 'Save', { tab: tabName, changes: changeList });
}
sendAppView(viewName) {
- this._googleAnalytics.screenview(viewName);
+ this.send('view', viewName);
}
sendTiming(category, timing, value) {
- this._googleAnalytics.timing(category, timing, value);
+ this.send('timing', { category: category, timing: timing, value: value });
}
sendException(message) {
- this._googleAnalytics.exception(message);
+ this.send('exception', message);
}
setOptOut(optOut) {
- window[`ga-disable-${this._trackingId}`] = !!optOut;
- }
-
- _rebuildFlightControllerEvent() {
- this.setDimension(this.DIMENSIONS.BOARD_TYPE, this._flightControllerData[this.DATA.BOARD_TYPE]);
- 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.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]);
- this.setDimension(this.DIMENSIONS.TARGET_NAME, this._flightControllerData[this.DATA.TARGET_NAME]);
- this.setDimension(this.DIMENSIONS.BOARD_NAME, this._flightControllerData[this.DATA.BOARD_NAME]);
- this.setDimension(this.DIMENSIONS.MANUFACTURER_ID, this._flightControllerData[this.DATA.MANUFACTURER_ID]);
- this.setDimension(this.DIMENSIONS.MCU_TYPE, this._flightControllerData[this.DATA.MCU_TYPE]);
- }
-
- setFlightControllerData(property, value) {
- this._flightControllerData[property] = value;
- this._rebuildFlightControllerEvent();
- }
-
- resetFlightControllerData() {
- this._flightControllerData = {};
- this._rebuildFlightControllerEvent();
- }
-
- _rebuildFirmwareEvent() {
- this.setDimension(this.DIMENSIONS.FIRMWARE_NAME, this._firmwareData[this.DATA.FIRMWARE_NAME]);
- 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]);
- }
-
- setFirmwareData(property, value) {
- this._firmwareData[property] = value;
- this._rebuildFirmwareEvent();
- }
-
- resetFirmwareData() {
- this._firmwareData = {};
- this._rebuildFirmwareEvent();
+ this._optOut = !!optOut;
}
}
diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js
index 43d4c79c..39144018 100644
--- a/src/js/BuildApi.js
+++ b/src/js/BuildApi.js
@@ -176,4 +176,15 @@ export default class BuildApi {
const url = `${this._url}/api/configurator/sponsors/${mode}/${page}`;
this.load(url, onSuccess, onFailure);
}
+
+ sendAnalytics(type, parcel) {
+ const url = `${this._url}/analytics/${type}`;
+ $.ajax({
+ url: url,
+ type: "POST",
+ data: JSON.stringify(parcel),
+ contentType: "application/json",
+ dataType: "json",
+ });
+ }
}
diff --git a/src/js/main.js b/src/js/main.js
index e5df0c5c..e32d1850 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -570,7 +570,7 @@ function startProcess() {
const checked = expertModeCheckbox.is(':checked');
checkSetupAnalytics(function (analyticsService) {
- analyticsService.setDimension(analyticsService.DIMENSIONS.CONFIGURATOR_EXPERT_MODE, checked ? 'On' : 'Off');
+ analyticsService.sendEvent(analyticsService.EVENT_CATEGORIES.APPLICATION, 'ExpertMode', { status: checked ? 'On' : 'Off' });
});
if (FC.FEATURE_CONFIG && FC.FEATURE_CONFIG.features !== 0) {
diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js
index c505a29d..2c71a62b 100644
--- a/src/js/serial_backend.js
+++ b/src/js/serial_backend.js
@@ -214,20 +214,13 @@ function finishClose(finishedCallback) {
}
const wasConnected = CONFIGURATOR.connectionValid;
-
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Disconnected');
- if (connectionTimestamp) {
- const connectedTime = Date.now() - connectionTimestamp;
- tracking.sendTiming(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected', connectedTime);
- }
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Disconnected', { time: connectionTimestamp ? Date.now() - connectionTimestamp : undefined});
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_46)) {
// close reset to custom defaults dialog
$('#dialogResetToCustomDefaults')[0].close();
}
- tracking.resetFlightControllerData();
-
serial.disconnect(onClosed);
MSP.disconnect_cleanup();
@@ -349,15 +342,10 @@ function onOpen(openInfo) {
return;
}
- tracking.setFlightControllerData(tracking.DATA.API_VERSION, FC.CONFIG.apiVersion);
-
if (semver.gte(FC.CONFIG.apiVersion, CONFIGURATOR.API_VERSION_ACCEPTED)) {
MSP.send_message(MSPCodes.MSP_FC_VARIANT, false, false, function () {
- tracking.setFlightControllerData(tracking.DATA.FIRMWARE_TYPE, FC.CONFIG.flightControllerIdentifier);
if (FC.CONFIG.flightControllerIdentifier === 'BTFL') {
MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () {
- tracking.setFlightControllerData(tracking.DATA.FIRMWARE_VERSION, FC.CONFIG.flightControllerVersion);
-
gui_log(i18n.getMessage('fcInfoReceived', [FC.CONFIG.flightControllerIdentifier, FC.CONFIG.flightControllerVersion]));
MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () {
@@ -459,11 +447,6 @@ function processCustomDefaults() {
}
function processBoardInfo() {
- tracking.setFlightControllerData(tracking.DATA.BOARD_TYPE, FC.CONFIG.boardIdentifier);
- tracking.setFlightControllerData(tracking.DATA.TARGET_NAME, FC.CONFIG.targetName);
- tracking.setFlightControllerData(tracking.DATA.BOARD_NAME, FC.CONFIG.boardName);
- tracking.setFlightControllerData(tracking.DATA.MANUFACTURER_ID, FC.CONFIG.manufacturerId);
- tracking.setFlightControllerData(tracking.DATA.MCU_TYPE, FC.getMcuType());
gui_log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), FC.CONFIG.boardVersion]));
@@ -472,18 +455,26 @@ function processBoardInfo() {
} else {
processCustomDefaults();
}
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Loaded', {
+ boardIdentifier: FC.CONFIG.boardIdentifier,
+ targetName: FC.CONFIG.targetName,
+ boardName: FC.CONFIG.boardName,
+ hardware: FC.getHardwareName(),
+ manufacturerId: FC.CONFIG.manufacturerId,
+ apiVersion: FC.CONFIG.apiVersion,
+ flightControllerVersion: FC.CONFIG.flightControllerVersion,
+ flightControllerIdentifier: FC.CONFIG.flightControllerIdentifier,
+ mcu: FC.getMcuType(),
+ });
}
function checkReportProblems() {
const PROBLEM_ANALYTICS_EVENT = 'ProblemFound';
const problemItemTemplate = $('#dialogReportProblems-listItemTemplate');
- function checkReportProblem(problemName, problemDialogList) {
+ function checkReportProblem(problemName, problems) {
if (bit_check(FC.CONFIG.configurationProblems, FC.CONFIGURATION_PROBLEM_FLAGS[problemName])) {
- problemItemTemplate.clone().html(i18n.getMessage(`reportProblemsDialog${problemName}`)).appendTo(problemDialogList);
-
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, PROBLEM_ANALYTICS_EVENT, problemName);
-
+ problems.push({name: problemName, description: i18n.getMessage(`reportProblemsDialog${problemName}`)});
return true;
}
@@ -495,23 +486,29 @@ function checkReportProblems() {
const problemDialogList = $('#dialogReportProblems-list');
problemDialogList.empty();
+ let problems = [];
+
if (semver.gt(FC.CONFIG.apiVersion, CONFIGURATOR.API_VERSION_MAX_SUPPORTED)) {
const problemName = 'API_VERSION_MAX_SUPPORTED';
- problemItemTemplate.clone().html(i18n.getMessage(`reportProblemsDialog${problemName}`,
- [CONFIGURATOR.latestVersion, CONFIGURATOR.latestVersionReleaseUrl, CONFIGURATOR.getDisplayVersion(), FC.CONFIG.flightControllerVersion])).appendTo(problemDialogList);
+ problems.push({ name: problemName, description: i18n.getMessage(`reportProblemsDialog${problemName}`,
+ [CONFIGURATOR.latestVersion, CONFIGURATOR.latestVersionReleaseUrl, CONFIGURATOR.getDisplayVersion(), FC.CONFIG.flightControllerVersion])});
needsProblemReportingDialog = true;
-
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, PROBLEM_ANALYTICS_EVENT,
- `${problemName};${CONFIGURATOR.API_VERSION_MAX_SUPPORTED};${FC.CONFIG.apiVersion}`);
}
- needsProblemReportingDialog = checkReportProblem('MOTOR_PROTOCOL_DISABLED', problemDialogList) || needsProblemReportingDialog;
+ needsProblemReportingDialog = checkReportProblem('MOTOR_PROTOCOL_DISABLED', problems) || needsProblemReportingDialog;
if (have_sensor(FC.CONFIG.activeSensors, 'acc')) {
- needsProblemReportingDialog = checkReportProblem('ACC_NEEDS_CALIBRATION', problemDialogList) || needsProblemReportingDialog;
+ needsProblemReportingDialog = checkReportProblem('ACC_NEEDS_CALIBRATION', problems) || needsProblemReportingDialog;
}
if (needsProblemReportingDialog) {
+
+ problems.map((problem) => {
+ problemItemTemplate.clone().html(problem.description).appendTo(problemDialogList);
+ });
+
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, PROBLEM_ANALYTICS_EVENT, { problems: problems.map((problem) => problem.name) });
+
const problemDialog = $('#dialogReportProblems')[0];
$('#dialogReportProblems-closebtn').click(function() {
problemDialog.close();
@@ -547,9 +544,6 @@ async function processBuildConfiguration() {
async function processUid() {
await MSP.promise(MSPCodes.MSP_UID);
- tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(FC.CONFIG.deviceIdentifier));
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
-
connectionTimestamp = Date.now();
gui_log(i18n.getMessage('uniqueDeviceIdReceived', FC.CONFIG.deviceIdentifier));
@@ -559,6 +553,10 @@ async function processUid() {
} else {
processCraftName();
}
+
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected', {
+ deviceIdentifier: CryptoES.SHA1(FC.CONFIG.deviceIdentifier),
+ });
}
async function processCraftName() {
diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js
index 3ff24b73..c41ccfa8 100644
--- a/src/js/tabs/firmware_flasher.js
+++ b/src/js/tabs/firmware_flasher.js
@@ -35,6 +35,7 @@ const firmware_flasher = {
intel_hex: undefined, // standard intel hex in string format
parsed_hex: undefined, // parsed raw hex in array format
isConfigLocal: false, // Set to true if the user loads one locally
+ filename: null,
configFilename: null,
config: {},
developmentFirmwareLoaded: false, // Is the firmware to be flashed from the development branch?
@@ -72,14 +73,21 @@ firmware_flasher.initialize = function (callback) {
worker.postMessage(str);
}
- function showLoadedHex(fileName) {
+ function showLoadedHex(filename) {
+ self.filename = filename;
+
if (self.localFirmwareLoaded) {
- self.flashingMessage(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', { filename: fileName, bytes: self.parsed_hex.bytes_total }), self.FLASH_MESSAGE_TYPES.NEUTRAL);
+ self.flashingMessage(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', { filename: filename, bytes: self.parsed_hex.bytes_total }), self.FLASH_MESSAGE_TYPES.NEUTRAL);
} else {
- self.flashingMessage(`${i18n.getMessage('firmwareFlasherFirmwareOnlineLoaded', { filename: fileName, bytes: self.parsed_hex.bytes_total })}`,
- self.FLASH_MESSAGE_TYPES.NEUTRAL);
+ self.flashingMessage(`${i18n.getMessage('firmwareFlasherFirmwareOnlineLoaded', { filename: filename, bytes: self.parsed_hex.bytes_total })}`, self.FLASH_MESSAGE_TYPES.NEUTRAL);
}
self.enableFlashButton(true);
+
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'FirmwareLoaded', {
+ firmwareSize: self.parsed_hex.bytes_total,
+ firmwareName: filename,
+ firmwareSource: self.localFirmwareLoaded ? 'file' : 'http',
+ });
}
function showReleaseNotes(summary) {
@@ -129,7 +137,6 @@ firmware_flasher.initialize = function (callback) {
self.parsed_hex = data;
if (self.parsed_hex) {
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_SIZE, self.parsed_hex.bytes_total);
showLoadedHex(key);
} else {
self.flashingMessage(i18n.getMessage('firmwareFlasherHexCorrupted'), self.FLASH_MESSAGE_TYPES.INVALID);
@@ -281,15 +288,13 @@ firmware_flasher.initialize = function (callback) {
buildType_e.on('change', function() {
self.enableLoadRemoteFileButton(false);
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_CHANNEL, $('option:selected', this).text());
-
const build_type = buildType_e.val();
$('select[name="board"]').empty()
- .append($(``));
+ .append($(``));
$('select[name="firmware_version"]').empty()
- .append($(``));
+ .append($(``));
if (!GUI.connect_lock) {
try {
@@ -541,7 +546,6 @@ firmware_flasher.initialize = function (callback) {
eraseAll = true;
}
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_ERASE_ALL, eraseAll.toString());
if (!$('option:selected', portPickerElement).data().isDFU) {
if (String(portPickerElement.val()) !== '0') {
@@ -558,7 +562,7 @@ firmware_flasher.initialize = function (callback) {
baud = parseInt($('#flash_manual_baud_rate').val());
}
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'Flashing', self.fileName || null);
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'Flashing', self.filename || null);
STM32.connect(port, baud, firmware, options);
} else {
@@ -566,7 +570,7 @@ firmware_flasher.initialize = function (callback) {
gui_log(i18n.getMessage('firmwareFlasherNoValidPort'));
}
} else {
- tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'Flashing', self.fileName || null);
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'DFU Flashing', self.filename || null);
STM32DFU.connect(usbDevices, firmware, options);
}
@@ -659,9 +663,6 @@ firmware_flasher.initialize = function (callback) {
self.enableFlashButton(false);
self.developmentFirmwareLoaded = false;
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_CHANNEL, undefined);
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_SOURCE, 'file');
-
chrome.fileSystem.chooseEntry({
type: 'openFile',
accepts: [
@@ -681,7 +682,6 @@ firmware_flasher.initialize = function (callback) {
console.log('Loading file from:', path);
fileEntry.file(function (file) {
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_NAME, file.name);
const reader = new FileReader();
reader.onloadend = function(e) {
@@ -695,7 +695,6 @@ firmware_flasher.initialize = function (callback) {
self.parsed_hex = data;
if (self.parsed_hex) {
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_SIZE, self.parsed_hex.bytes_total);
self.localFirmwareLoaded = true;
showLoadedHex(file.name);
@@ -747,8 +746,6 @@ firmware_flasher.initialize = function (callback) {
self.localFirmwareLoaded = false;
self.developmentFirmwareLoaded = buildTypesToShow[$('select[name="build_type"]').val()].tag === 'firmwareFlasherOptionLabelBuildTypeDevelopment';
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_SOURCE, 'http');
-
if ($('select[name="firmware_version"]').val() === "0") {
gui_log(i18n.getMessage('firmwareFlasherNoFirmwareSelected'));
return;
@@ -834,8 +831,6 @@ firmware_flasher.initialize = function (callback) {
return;
}
- tracking.setFirmwareData(tracking.DATA.FIRMWARE_NAME, response.file);
-
updateStatus('Pending', response.key, 0, false);
let retries = 1;
@@ -1470,8 +1465,6 @@ firmware_flasher.cleanup = function (callback) {
$(document).unbind('keypress');
$(document).off('click', 'span.progressLabel a');
- tracking.resetFirmwareData();
-
if (callback) callback();
};
diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js
index f53368fc..0a6f4a52 100644
--- a/src/js/tabs/onboard_logging.js
+++ b/src/js/tabs/onboard_logging.js
@@ -372,9 +372,12 @@ onboard_logging.initialize = function (callback) {
if (dataflashPresent && FC.SDCARD.state === MSP.SDCARD_STATE_NOT_PRESENT) {
loggingStatus = 'Dataflash';
- tracking.setFlightControllerData(tracking.DATA.LOG_SIZE, FC.DATAFLASH.usedSize);
}
- tracking.setFlightControllerData(tracking.DATA.LOGGING_STATUS, loggingStatus);
+
+ tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'DataLogging', {
+ logSize: FC.DATAFLASH.usedSize,
+ logStatus: loggingStatus,
+ });
if (FC.SDCARD.supported && !sdcardTimer) {
// Poll for changes in SD card status
@@ -569,9 +572,6 @@ onboard_logging.initialize = function (callback) {
};
onboard_logging.cleanup = function (callback) {
- tracking.setFlightControllerData(tracking.DATA.LOGGING_STATUS, undefined);
- tracking.setFlightControllerData(tracking.DATA.LOG_SIZE, undefined);
-
if (sdcardTimer) {
clearTimeout(sdcardTimer);
sdcardTimer = false;
diff --git a/yarn.lock b/yarn.lock
index 1377c6ae..67c28f51 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -16281,11 +16281,6 @@ unist-util-visit@2.0.3, unist-util-visit@^2.0.0:
unist-util-is "^4.0.0"
unist-util-visit-parents "^3.0.0"
-universal-ga@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/universal-ga/-/universal-ga-1.2.0.tgz#c893d5d0f7fb2066ff43739e5daed45485c8e23f"
- integrity sha512-VSkK/aeymj0XQxNJL+Y/kenQKk2EsfWqi3Cf0EKmmGSuPjpA/R6ofJ6xWfstVqRJPj5RiAnyLpHlcshHRVVHJQ==
-
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"