diff --git a/src/constants.ts b/src/constants.ts index 9ca39ef45..488a23b5c 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -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", @@ -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", @@ -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", @@ -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", @@ -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", diff --git a/src/service/telemetryHandlerService.ts b/src/service/telemetryHandlerService.ts index 815525226..f16141f65 100644 --- a/src/service/telemetryHandlerService.ts +++ b/src/service/telemetryHandlerService.ts @@ -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; } @@ -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; } @@ -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; } @@ -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; } @@ -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; } }; @@ -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; }