Skip to content

Commit d784817

Browse files
committed
Use generic slider to remove accelerometer
1 parent acacf3a commit d784817

8 files changed

Lines changed: 163 additions & 326 deletions

File tree

src/view/components/toolbar/SensorModalUtils.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export const CPX_TOOLBAR_ICON_ID = {
6666

6767
export const MICROBIT_TOOLBAR_ICON_ID = {
6868
TEMPERATURE: "toolbar-temperature-sensor",
69-
LIGHT: "toolbar-light-sensor",
69+
LIGHT: "toolbar-microbit-light-sensor",
7070
ACCELEROMETER: "toolbar-accelerometer-sensor",
7171
LEDS: "toolbar-microbit-led",
7272
PUSH_BUTTON: "toolbar-microbit-a-b-push",
@@ -309,6 +309,7 @@ export const LABEL_TO_MODAL_CONTENT_CONSTRUCTOR = new Map([
309309
MICROBIT_TOOLBAR_ICON_ID.ACCELEROMETER,
310310
MICROBIT_MODAL.ACCELEROMETER_CONTENT,
311311
],
312+
[MICROBIT_TOOLBAR_ICON_ID.LIGHT, MICROBIT_MODAL.LIGHT_CONTENT],
312313
[MICROBIT_TOOLBAR_ICON_ID.COMPASS, MICROBIT_MODAL.COMPASS_CONTENT],
313314
[MICROBIT_TOOLBAR_ICON_ID.LEDS, MICROBIT_MODAL.LED_CONTENT],
314315
[MICROBIT_TOOLBAR_ICON_ID.PUSH_BUTTON, MICROBIT_MODAL.BUTTON_CONTENT],

src/view/components/toolbar/clue/ClueModalContent.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { GESTURES_CLUE, SENSOR_LIST } from "../../../constants";
33
import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg";
44
import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg";
55
import { GenericSliderComponent } from "../GenericSliderComponent";
6-
import { Accelerometer } from "../motion/Accelerometer";
76
import { Gesture } from "../motion/Gesture";
87
import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils";
98
import TemperatureSensorBar from "../TemperatureSensorBar";
@@ -55,9 +54,10 @@ export const ACCELEROMETER_CONTENT = (
5554
};
5655
return {
5756
components: (
58-
<Accelerometer
57+
<GenericSliderComponent
5958
onUpdateValue={onUpdateValue}
6059
axisValues={accelerometerSensorValues}
60+
axisProperties={SENSOR_PROPERTIES.MOTION_SENSOR_PROPERTIES}
6161
/>
6262
),
6363
descriptionText: "toolbar-clue-accelerometer-sensor.description",
@@ -123,7 +123,7 @@ export const LIGHT_CONTENT = (
123123
onUpdateValue: (sensor: SENSOR_LIST, value: number) => void,
124124
sensorValues: { [key: string]: number }
125125
): IModalContent => {
126-
const accelerometerSensorValues = {
126+
const lightSensorValues = {
127127
R: sensorValues[SENSOR_LIST.LIGHT_R],
128128
G: sensorValues[SENSOR_LIST.LIGHT_G],
129129
B: sensorValues[SENSOR_LIST.LIGHT_B],
@@ -133,7 +133,7 @@ export const LIGHT_CONTENT = (
133133
components: (
134134
<GenericSliderComponent
135135
onUpdateValue={onUpdateValue}
136-
axisValues={accelerometerSensorValues}
136+
axisValues={lightSensorValues}
137137
axisProperties={SENSOR_PROPERTIES.CLUE_LIGHT_PROPERTIES}
138138
/>
139139
),

src/view/components/toolbar/clue/ClueSensorProperties.tsx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,39 @@ export const CLUE_PRESSURE_PROPERTIES: ISensorProps = {
146146
],
147147
unitLabel: "hPa",
148148
};
149+
const MOTION_SLIDER_PROPS_X: ISliderProps = {
150+
axisLabel: "X",
151+
maxLabel: "Right",
152+
maxValue: 1023,
153+
minLabel: "Left",
154+
minValue: -1023,
155+
type: SENSOR_LIST.MOTION_X,
156+
};
157+
158+
const MOTION_SLIDER_PROPS_Y: ISliderProps = {
159+
axisLabel: "Y",
160+
maxLabel: "Front",
161+
maxValue: 1023,
162+
minLabel: "Back",
163+
minValue: -1023,
164+
type: SENSOR_LIST.MOTION_Y,
165+
};
166+
167+
const MOTION_SLIDER_PROPS_Z: ISliderProps = {
168+
axisLabel: "Z",
169+
maxLabel: "Down",
170+
maxValue: 1023,
171+
minLabel: "Up",
172+
minValue: -1023,
173+
type: SENSOR_LIST.MOTION_Z,
174+
};
175+
176+
export const MOTION_SENSOR_PROPERTIES: ISensorProps = {
177+
LABEL: "Motion sensor",
178+
sliderProps: [
179+
MOTION_SLIDER_PROPS_X,
180+
MOTION_SLIDER_PROPS_Y,
181+
MOTION_SLIDER_PROPS_Z,
182+
],
183+
unitLabel: "m/s2",
184+
};

src/view/components/toolbar/microbit/MicrobitModalContent.tsx

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import * as React from "react";
22
import { GESTURES_MICROBIT, SENSOR_LIST } from "../../../constants";
33
import { TAG_INPUT_SVG } from "../../../svgs/tag_input_svg";
44
import { TAG_OUTPUT_SVG } from "../../../svgs/tag_output_svg";
5-
import { Accelerometer } from "../motion/Accelerometer";
65
import { Gesture } from "../motion/Gesture";
76
import { FEATURE_REQUEST_ON_GITHUB, IModalContent } from "../SensorModalUtils";
7+
import { GenericSliderComponent } from "../GenericSliderComponent";
8+
import * as SENSOR_PROPERTIES from './MicrobitSensorProperties'
89

910
export const ACCELEROMETER_CONTENT = (
1011
onUpdateValue: (sensor: SENSOR_LIST, value: number) => void,
@@ -18,9 +19,10 @@ export const ACCELEROMETER_CONTENT = (
1819
};
1920
return {
2021
components: (
21-
<Accelerometer
22+
<GenericSliderComponent
2223
onUpdateValue={onUpdateValue}
2324
axisValues={accelerometerSensorValues}
25+
axisProperties={SENSOR_PROPERTIES.MOTION_SENSOR_PROPERTIES}
2426
/>
2527
),
2628
descriptionText: "toolbar-accelerometer-sensor.description",
@@ -136,3 +138,50 @@ export const GESTURE_CONTENT = (
136138
id: "gesture_sensor",
137139
};
138140
};
141+
export const LIGHT_CONTENT = (
142+
onUpdateValue: (sensor: SENSOR_LIST, value: number) => void,
143+
sensorValues: { [key: string]: number }
144+
): IModalContent => {
145+
const lightSensorValues = {
146+
L: sensorValues[SENSOR_LIST.LIGHT]
147+
}
148+
return {
149+
descriptionTitle: "toolbar-light-sensor.title",
150+
tagInput: TAG_INPUT_SVG,
151+
tagOutput: undefined,
152+
descriptionText: "toolbar-light-sensor.description",
153+
tryItDescription: "toolbar-light-sensor.tryItDescription",
154+
components: [
155+
<GenericSliderComponent
156+
onUpdateValue={onUpdateValue}
157+
axisValues={lightSensorValues}
158+
axisProperties={SENSOR_PROPERTIES.LIGHT_SENSOR_PROPERTIES}
159+
/>,
160+
],
161+
id: "light_sensor",
162+
};
163+
};
164+
165+
export const TEMPERATURE_CONTENT = (
166+
onUpdateValue: (sensor: SENSOR_LIST, value: number) => void,
167+
sensorValues: { [key: string]: number }
168+
): IModalContent => {
169+
const temperatureSensorValues = {
170+
T: sensorValues[SENSOR_LIST.TEMPERATURE]
171+
}
172+
return {
173+
components: [
174+
<GenericSliderComponent
175+
onUpdateValue={onUpdateValue}
176+
axisValues={temperatureSensorValues}
177+
axisProperties={SENSOR_PROPERTIES.TEMPERATURE_SENSOR_PROPERTIES}
178+
/>,
179+
],
180+
descriptionText: "toolbar-temperature-sensor.description",
181+
descriptionTitle: "toolbar-temperature-sensor.title",
182+
id: "temperature",
183+
tagInput: TAG_INPUT_SVG,
184+
tagOutput: undefined,
185+
tryItDescription: "toolbar-temperature-sensor.tryItDescription",
186+
};
187+
};
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { ISliderProps, ISensorProps } from "../../../viewUtils";
2+
import { SENSOR_LIST } from "../../../constants";
3+
4+
const LIGHT_SLIDER_PROPS: ISliderProps = {
5+
maxValue: 255,
6+
minValue: 0,
7+
minLabel: "Dark",
8+
maxLabel: "Bright",
9+
type: "light",
10+
axisLabel: "L",
11+
};
12+
13+
14+
export const LIGHT_SENSOR_PROPERTIES: ISensorProps = {
15+
LABEL: "Light sensor",
16+
sliderProps: [LIGHT_SLIDER_PROPS],
17+
unitLabel: "Lux",
18+
};
19+
20+
const MOTION_SLIDER_PROPS_X: ISliderProps = {
21+
axisLabel: "X",
22+
maxLabel: "Right",
23+
maxValue: 1023,
24+
minLabel: "Left",
25+
minValue: -1023,
26+
type: SENSOR_LIST.MOTION_X,
27+
};
28+
29+
const MOTION_SLIDER_PROPS_Y: ISliderProps = {
30+
axisLabel: "Y",
31+
maxLabel: "Front",
32+
maxValue: 1023,
33+
minLabel: "Back",
34+
minValue: -1023,
35+
type: SENSOR_LIST.MOTION_Y,
36+
};
37+
38+
const MOTION_SLIDER_PROPS_Z: ISliderProps = {
39+
axisLabel: "Z",
40+
maxLabel: "Down",
41+
maxValue: 1023,
42+
minLabel: "Up",
43+
minValue: -1023,
44+
type: SENSOR_LIST.MOTION_Z,
45+
};
46+
47+
export const MOTION_SENSOR_PROPERTIES: ISensorProps = {
48+
LABEL: "Motion sensor",
49+
sliderProps: [
50+
MOTION_SLIDER_PROPS_X,
51+
MOTION_SLIDER_PROPS_Y,
52+
MOTION_SLIDER_PROPS_Z,
53+
],
54+
unitLabel: "m/s2",
55+
};
56+
57+
const TEMPERATURE_SLIDER_PROPS: ISliderProps = {
58+
axisLabel: " ",
59+
maxLabel: "Hot",
60+
maxValue: 125,
61+
minLabel: "Cold",
62+
minValue: -55,
63+
type: SENSOR_LIST.TEMPERATURE,
64+
};
65+
66+
export const TEMPERATURE_SENSOR_PROPERTIES: ISensorProps = {
67+
LABEL: "Temperature sensor",
68+
sliderProps: [TEMPERATURE_SLIDER_PROPS],
69+
unitLabel: "°C",
70+
};

src/view/components/toolbar/motion/Accelerometer.spec.tsx

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/view/components/toolbar/motion/Accelerometer.tsx

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)