Skip to content
This repository has been archived by the owner on Dec 23, 2021. It is now read-only.

Telemetry for CLUE on frontend #300

Merged
merged 4 commits into from
Apr 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,8 @@ export enum TelemetryEventName {
CPX_DEBUGGER_INIT_FAIL = "CPX.DEBUGGER.INIT.FAIL",
MICROBIT_DEBUGGER_INIT_SUCCESS = "MICROBIT.DEBUGGER.INIT.SUCCESS",
MICROBIT_DEBUGGER_INIT_FAIL = "MICROBIT.DEBUGGER.INIT.FAIL",
CLUE_DEBUGGER_INIT_SUCCESS = "CLUE.DEBUGGER.INIT.SUCCESS",
CLUE_DEBUGGER_INIT_FAIL = "CLUE.DEBUGGER.INIT.FAIL",

// Extension commands
COMMAND_RUN_SIMULATOR_BUTTON = "COMMAND.RUN.SIMULATOR_BUTTON",
Expand Down Expand Up @@ -374,6 +376,10 @@ export enum TelemetryEventName {
MICROBIT_SIMULATOR_BUTTON_B = "MICROBIT.SIMULATOR.BUTTON.B",
MICROBIT_SIMULATOR_BUTTON_AB = "MICROBIT.SIMULATOR.BUTTON.AB",

CLUE_SIMULATOR_BUTTON_A = "CLUE.SIMULATOR.BUTTON.A",
CLUE_SIMULATOR_BUTTON_B = "CLUE.SIMULATOR.BUTTON.B",
CLUE_SIMULATOR_BUTTON_AB = "CLUE.SIMULATOR.BUTTON.AB",

// Sensors
CPX_SIMULATOR_TEMPERATURE_SENSOR = "CPX.SIMULATOR.TEMPERATURE",
CPX_SIMULATOR_LIGHT_SENSOR = "CPX.SIMULATOR.LIGHT",
Expand All @@ -384,6 +390,17 @@ export enum TelemetryEventName {
MICROBIT_SIMULATOR_TEMPERATURE_SENSOR = "MICROBIT.SIMULATOR.TEMPERATURE",
MICROBIT_SIMULATOR_LIGHT_SENSOR = "MICROBIT.SIMULATOR.LIGHT",
MICROBIT_SIMULATOR_MOTION_SENSOR = "MICROBIT.SIMULATOR.MOTION",
MICROBIT_SIMULATOR_GESTURE_SENSOR = "MICROBIT.SIMULATOR.GESTURE",

CLUE_SIMULATOR_TEMPERATURE_SENSOR = "CLUE.SIMULATOR.TEMPERATURE",
CLUE_SIMULATOR_LIGHT_SENSOR = "CLUE.SIMULATOR.LIGHT",
CLUE_SIMULATOR_MOTION_SENSOR = "CLUE.SIMULATOR.MOTION",
CLUE_SIMULATOR_GESTURE_SENSOR = "CLUE.SIMULATOR.GESTURE",
CLUE_SIMULATOR_PRESSURE_SENSOR = "CLUE.SIMULATOR.PRESSURE",
CLUE_SIMULATOR_PROXIMITY_SENSOR = "CLUE.SIMULATOR.PROXIMITY",
CLUE_SIMULATOR_HUMIDITY_SENSOR = "CLUE.SIMULATOR.HUMIDITY",
CLUE_SIMULATOR_GYRO_SENSOR = "CLUE.SIMULATOR.GYRO",
CLUE_SIMULATOR_MAGNET_SENSOR = "CLUE.SIMULATOR.MAGNET",

// Pop-up dialog
CPX_CLICK_DIALOG_DONT_SHOW = "CPX.CLICK.DIALOG.DONT.SHOW",
Expand All @@ -394,6 +411,7 @@ export enum TelemetryEventName {
CLUE_CLICK_DIALOG_HELP_DEPLOY_TO_DEVICE = "CLUE.CLICK.DIALOG.HELP.DEPLOY.TO.DEVICE",

ERROR_PYTHON_PROCESS = "ERROR.PYTHON.PROCESS",

CPX_ERROR_COMMAND_NEW_FILE = "CPX.ERROR.COMMAND.NEW.FILE",
CPX_ERROR_DEPLOY_WITHOUT_DEVICE = "CPX.ERROR.DEPLOY.WITHOUT.DEVICE",
CPX_ERROR_PYTHON_DEVICE_PROCESS = "CPX.ERROR.PYTHON.DEVICE.PROCESS",
Expand All @@ -404,6 +422,7 @@ export enum TelemetryEventName {
MICROBIT_ERROR_PYTHON_DEVICE_PROCESS = "MICROBIT.ERROR.PYTHON.DEVICE.PROCESS",
MICROBIT_SUCCESS_COMMAND_DEPLOY_DEVICE = "MICROBIT.SUCCESS.COMMAND.DEPLOY.DEVICE",

CLUE_ERROR_COMMAND_NEW_FILE = "CLUE.ERROR.COMMAND.NEW.FILE",
CLUE_ERROR_DEPLOY_WITHOUT_DEVICE = "CLUE.ERROR.DEPLOY.WITHOUT.DEVICE",
CLUE_ERROR_PYTHON_DEVICE_PROCESS = "CLUE.ERROR.PYTHON.DEVICE.PROCESS",
CLUE_SUCCESS_COMMAND_DEPLOY_DEVICE = "CLUE.SUCCESS.COMMAND.DEPLOY.DEVICE",
Expand Down
137 changes: 137 additions & 0 deletions src/service/telemetryHandlerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ export class TelemetryHandlerService {
TelemetryEventName.MICROBIT_DEBUGGER_INIT_SUCCESS
);
break;
case CONSTANTS.DEVICE_NAME.CLUE:
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_DEBUGGER_INIT_SUCCESS
);
break;
default:
break;
}
Expand All @@ -46,6 +51,11 @@ export class TelemetryHandlerService {
TelemetryEventName.MICROBIT_DEBUGGER_INIT_FAIL
);
break;
case CONSTANTS.DEVICE_NAME.CLUE:
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_DEBUGGER_INIT_FAIL
);
break;
default:
break;
}
Expand All @@ -59,6 +69,9 @@ export class TelemetryHandlerService {
case CONSTANTS.DEVICE_NAME.MICROBIT:
this.handleMicrobitButtonPressTelemetry(buttonState);
break;
case CONSTANTS.DEVICE_NAME.CLUE:
this.handleClueButtonPressTelemetry(buttonState);
break;
default:
break;
}
Expand All @@ -84,6 +97,9 @@ export class TelemetryHandlerService {
case CONSTANTS.DEVICE_NAME.MICROBIT:
this.handleMicrobitSensorTelemetry(sensor);
break;
case CONSTANTS.DEVICE_NAME.CLUE:
this.handleClueSensorTelemetry(sensor);
break;
default:
break;
}
Expand Down Expand Up @@ -200,6 +216,122 @@ export class TelemetryHandlerService {
TelemetryEventName.MICROBIT_SIMULATOR_MOTION_SENSOR
);
break;
case "gesture":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.MICROBIT_SIMULATOR_GESTURE_SENSOR
);
break;
}
};

public handleClueButtonPressTelemetry = (buttonState: any) => {
if (buttonState.button_a && buttonState.button_b) {
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_BUTTON_AB
);
} else if (buttonState.button_a) {
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_BUTTON_A
);
} else if (buttonState.button_b) {
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_BUTTON_B
);
}
};

public handleClueSensorTelemetry = (sensor: string) => {
switch (sensor) {
case "temperature":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_TEMPERATURE_SENSOR
);
break;
case "light_r":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_LIGHT_SENSOR
);
break;
case "light_g":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_LIGHT_SENSOR
);
break;
case "light_b":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_LIGHT_SENSOR
);
break;
case "light_c":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_LIGHT_SENSOR
);
break;
case "motion_x":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MOTION_SENSOR
);
break;
case "motion_y":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MOTION_SENSOR
);
break;
case "motion_z":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MOTION_SENSOR
);
break;
case "gesture":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_GESTURE_SENSOR
);
break;
case "humidity":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_HUMIDITY_SENSOR
);
break;
case "pressure":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_PRESSURE_SENSOR
);
break;
case "proximity":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_PROXIMITY_SENSOR
);
break;
case "gyro_x":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_GYRO_SENSOR
);
break;
case "gyro_y":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_GYRO_SENSOR
);
break;
case "gyro_z":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_GYRO_SENSOR
);
break;
case "magnet_x":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MAGNET_SENSOR
);
break;
case "magnet_y":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MAGNET_SENSOR
);
break;
case "magnet_z":
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_SIMULATOR_MAGNET_SENSOR
);
break;
}
};

Expand All @@ -215,6 +347,11 @@ export class TelemetryHandlerService {
TelemetryEventName.MICROBIT_ERROR_COMMAND_NEW_FILE
);
break;
case CONSTANTS.DEVICE_NAME.CLUE:
this.telemetryAI.trackFeatureUsage(
TelemetryEventName.CLUE_ERROR_COMMAND_NEW_FILE
);
break;
default:
break;
}
Expand Down