pxt-common-packages 13.1.4 → 13.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libs/light/defaultlights.ts +14 -14
- package/libs/light/docs/reference/light/animation.md +33 -0
- package/libs/mixer/melody.ts +2 -0
- package/libs/rotary-encoder/docs/reference/encoders/on-changed.md +29 -0
- package/libs/rotary-encoder/docs/reference/encoders/position.md +33 -0
- package/libs/rotary-encoder/rotary.cpp +2 -2
- package/libs/rotary-encoder/shims.d.ts +2 -2
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ namespace light {
|
|
|
10
10
|
* @param rgb RGB color of the LED
|
|
11
11
|
*/
|
|
12
12
|
//% blockId="builtin_neopixel_set_strip_color" block="set all pixels to %rgb=colorNumberPicker"
|
|
13
|
-
//% help="light/set-all"
|
|
13
|
+
//% help="light/neopixelstrip/set-all"
|
|
14
14
|
//% weight=79 blockGap=8
|
|
15
15
|
export function setAll(rgb: number) {
|
|
16
16
|
light.pixels.setAll(rgb);
|
|
@@ -32,7 +32,7 @@ namespace light {
|
|
|
32
32
|
*/
|
|
33
33
|
//% blockId="builtin_neopixel_clear" block="clear"
|
|
34
34
|
//% parts="neopixel"
|
|
35
|
-
//% help="light/clear"
|
|
35
|
+
//% help="light/neopixelstrip/clear"
|
|
36
36
|
//% group="More" weight=9 blockGap=8
|
|
37
37
|
export function clear() {
|
|
38
38
|
light.pixels.clear();
|
|
@@ -45,7 +45,7 @@ namespace light {
|
|
|
45
45
|
* @param high maximum value, 0 to autoscale
|
|
46
46
|
*/
|
|
47
47
|
//% blockId=builtin_neopixel_show_bar_graph block="graph %value||up to %high" icon="\uf080"
|
|
48
|
-
//% help=light/graph blockGap=8
|
|
48
|
+
//% help=light/neopixelstrip/graph blockGap=8
|
|
49
49
|
//% weight=10
|
|
50
50
|
export function graph(value: number, high?: number): void {
|
|
51
51
|
light.pixels.graph(value, high);
|
|
@@ -58,7 +58,7 @@ namespace light {
|
|
|
58
58
|
* @param color RGB color of the LED
|
|
59
59
|
*/
|
|
60
60
|
//% blockId="builtin_neopixel_set_pixel_color" block="set pixel color at %pixeloffset|to %rgb=colorNumberPicker"
|
|
61
|
-
//% help="light/set-pixel-color"
|
|
61
|
+
//% help="light/neopixelstrip/set-pixel-color"
|
|
62
62
|
//% group="More" weight=89 blockGap=8
|
|
63
63
|
export function setPixelColor(pixeloffset: number, color: number): void {
|
|
64
64
|
light.pixels.setPixelColor(pixeloffset, color);
|
|
@@ -69,7 +69,7 @@ namespace light {
|
|
|
69
69
|
* @param pixeloffset position of the NeoPixel in the strip
|
|
70
70
|
*/
|
|
71
71
|
//% blockId="builtin_neopixel_pixel_color" block="pixel color at %pixeloffset"
|
|
72
|
-
//% help="light/pixel-color"
|
|
72
|
+
//% help="light/neopixelstrip/pixel-color"
|
|
73
73
|
//% group="More" weight=88
|
|
74
74
|
export function pixelColor(pixeloffset: number): number {
|
|
75
75
|
return light.pixels.pixelColor(pixeloffset);
|
|
@@ -81,7 +81,7 @@ namespace light {
|
|
|
81
81
|
*/
|
|
82
82
|
//% blockId="builtin_neopixel_set_brightness" block="set brightness %brightness"
|
|
83
83
|
//% brightness.min=0 brightness.max=255
|
|
84
|
-
//% help="light/set-brightness"
|
|
84
|
+
//% help="light/neopixelstrip/set-brightness"
|
|
85
85
|
//% weight=2 blockGap=8
|
|
86
86
|
export function setBrightness(brightness: number): void {
|
|
87
87
|
light.pixels.setBrightness(brightness);
|
|
@@ -92,7 +92,7 @@ namespace light {
|
|
|
92
92
|
* @param steps number of steps (lights) to move, eg: 1
|
|
93
93
|
*/
|
|
94
94
|
//% blockId=builtin_neophoton_fd block="photon forward by %steps"
|
|
95
|
-
//% help="light/photon-forward"
|
|
95
|
+
//% help="light/neopixelstrip/photon-forward"
|
|
96
96
|
//% group="Photon" weight=41 blockGap=8
|
|
97
97
|
export function photonForward(steps: number) {
|
|
98
98
|
light.pixels.photonForward(steps);
|
|
@@ -101,7 +101,7 @@ namespace light {
|
|
|
101
101
|
* Switch the direction of the photon pulse.
|
|
102
102
|
*/
|
|
103
103
|
//% blockId=builtin_neophoton_flip block="photon flip"
|
|
104
|
-
//% help="light/photon-flip"
|
|
104
|
+
//% help="light/neopixelstrip/photon-flip"
|
|
105
105
|
//% parts="neopixel"
|
|
106
106
|
//% group="Photon" weight=40 blockGap=8
|
|
107
107
|
export function photonFlip() {
|
|
@@ -114,7 +114,7 @@ namespace light {
|
|
|
114
114
|
* @param index index of the light, if out of bound, the index is wrapped
|
|
115
115
|
*/
|
|
116
116
|
//% blockId=builtin_light_photon_set_position block="photon set position %index"
|
|
117
|
-
//% help="light/set-photon-position"
|
|
117
|
+
//% help="light/neopixelstrip/set-photon-position"
|
|
118
118
|
//% parts="neopixel"
|
|
119
119
|
//% group="Photon" weight=39 blockGap=8
|
|
120
120
|
export function setPhotonPosition(index: number) {
|
|
@@ -126,7 +126,7 @@ namespace light {
|
|
|
126
126
|
* @param hue the color hue of the photon
|
|
127
127
|
*/
|
|
128
128
|
//% blockId=builtin_neophoton_set_pen_hue block="photon set pen hue %hue=colorWheelHsvPicker"
|
|
129
|
-
//% help="light/set-photon-pen-hue"
|
|
129
|
+
//% help="light/neopixelstrip/set-photon-pen-hue"
|
|
130
130
|
//% group="Photon" weight=39 blockGap=8
|
|
131
131
|
export function setPhotonPenHue(hue: number) {
|
|
132
132
|
light.pixels.setPhotonPenHue(hue);
|
|
@@ -137,7 +137,7 @@ namespace light {
|
|
|
137
137
|
* @param mode the desired mode
|
|
138
138
|
*/
|
|
139
139
|
//% blockId=builtin_neophoton_set_photon block="photon %mode"
|
|
140
|
-
//% help="light/set-photon-mode"
|
|
140
|
+
//% help="light/neopixelstrip/set-photon-mode"
|
|
141
141
|
//% group="Photon" weight=38
|
|
142
142
|
export function setPhotonMode(mode: PhotonMode) {
|
|
143
143
|
light.pixels.setPhotonMode(mode);
|
|
@@ -149,7 +149,7 @@ namespace light {
|
|
|
149
149
|
* @param duration the duration to run in milliseconds, eg: 500
|
|
150
150
|
*/
|
|
151
151
|
//% blockId=builtin_neopixel_show_animation block="show animation %animation=light_animation_picker|for %duration=timePicker|ms"
|
|
152
|
-
//% help="light/show-animation" blockGap=8
|
|
152
|
+
//% help="light/neopixelstrip/show-animation" blockGap=8
|
|
153
153
|
//% weight=81
|
|
154
154
|
export function showAnimation(animation: NeoPixelAnimation, duration: number) {
|
|
155
155
|
light.pixels.showAnimation(animation, duration);
|
|
@@ -160,7 +160,7 @@ namespace light {
|
|
|
160
160
|
* @param animation the animation to run, eg: light.rainbowAnimation
|
|
161
161
|
*/
|
|
162
162
|
//% blockId=builtin_neopixel_show_animation_frame block="show frame of %animation=light_animation_picker|animation"
|
|
163
|
-
//% help="light/show-animation-frame"
|
|
163
|
+
//% help="light/neopixelstrip/show-animation-frame"
|
|
164
164
|
//% group="More" weight=24 blockGap=8
|
|
165
165
|
export function showAnimationFrame(animation: NeoPixelAnimation) {
|
|
166
166
|
light.pixels.showAnimationFrame(animation);
|
|
@@ -170,7 +170,7 @@ namespace light {
|
|
|
170
170
|
* Stop the current animation and any other animations ready to show.
|
|
171
171
|
*/
|
|
172
172
|
//% blockId=builtin_neopixel_stop_all_animations block="stop all animations"
|
|
173
|
-
//% help="light/stop-all-animations"
|
|
173
|
+
//% help="light/neopixelstrip/stop-all-animations"
|
|
174
174
|
//% group="More" weight=23
|
|
175
175
|
export function stopAllAnimations() {
|
|
176
176
|
light.pixels.stopAllAnimations();
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# animation
|
|
2
|
+
|
|
3
|
+
Return an instance of the selected builtin animation.
|
|
4
|
+
|
|
5
|
+
```sig
|
|
6
|
+
light.animation(LightAnimation.Sparkle)
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Parameters
|
|
10
|
+
|
|
11
|
+
* **kind**: the type of animation to select, one of the following:
|
|
12
|
+
|
|
13
|
+
>* `running lights`
|
|
14
|
+
>* `comet`
|
|
15
|
+
>* `color wipe`
|
|
16
|
+
>* `theater chase`
|
|
17
|
+
>* `rainbow`
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
Show the `rainbow` animation continuously at `500` millisecond intervals.
|
|
22
|
+
|
|
23
|
+
```blocks
|
|
24
|
+
forever(function() {
|
|
25
|
+
light.showAnimation(LightAnimation.Rainbow, 500)
|
|
26
|
+
})
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## See Also
|
|
30
|
+
|
|
31
|
+
```package
|
|
32
|
+
light
|
|
33
|
+
```
|
package/libs/mixer/melody.ts
CHANGED
|
@@ -598,6 +598,8 @@ namespace music {
|
|
|
598
598
|
//% song.fieldOptions.taggedTemplate="hex;assets.song"
|
|
599
599
|
//% song.fieldOptions.decompileIndirectFixedInstances="true"
|
|
600
600
|
//% song.fieldOptions.decompileArgumentAsString="true"
|
|
601
|
+
//% song.snippet="hex`00780004080100`"
|
|
602
|
+
//% song.pySnippet='hex("""00780004080100""")'
|
|
601
603
|
//% toolboxParent=music_playable_play
|
|
602
604
|
//% toolboxParentArgument=toPlay
|
|
603
605
|
//% group="Songs"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# on Changed
|
|
2
|
+
|
|
3
|
+
Run some code when the rotary encoder changes position.
|
|
4
|
+
|
|
5
|
+
```sig
|
|
6
|
+
encoders.createRotaryEncoder(pins.A2, pins.A1).onChanged(function () {})
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Example #example
|
|
10
|
+
|
|
11
|
+
Show the encoder position on the game console when it changes.
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
const crank = encoders.createRotaryEncoder(pins.A2, pins.A1);
|
|
15
|
+
game.consoleOverlay.setVisible(true);
|
|
16
|
+
let sprite = sprites.create(sprites.castle.heroFrontAttack1)
|
|
17
|
+
crank.onChanged(function () {
|
|
18
|
+
console.log(crank.position())
|
|
19
|
+
sprite.x = screen.width / 2 + crank.position()
|
|
20
|
+
})
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## See also #seealso
|
|
24
|
+
|
|
25
|
+
[position](/reference/encoders/position)
|
|
26
|
+
|
|
27
|
+
```package
|
|
28
|
+
encoders
|
|
29
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# position
|
|
2
|
+
|
|
3
|
+
Get the current position rotary encoder.
|
|
4
|
+
|
|
5
|
+
```sig
|
|
6
|
+
encoders.createRotaryEncoder(pins.A2, pins.A1).position( )
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Returns
|
|
10
|
+
|
|
11
|
+
* a [number](/types/number) that indicates the encoder's position.
|
|
12
|
+
|
|
13
|
+
## Example #example
|
|
14
|
+
|
|
15
|
+
Show the encoder position on the game console when it changes.
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
const crank = encoders.createRotaryEncoder(pins.A2, pins.A1);
|
|
19
|
+
game.consoleOverlay.setVisible(true);
|
|
20
|
+
let sprite = sprites.create(sprites.castle.heroFrontAttack1)
|
|
21
|
+
crank.onChanged(function () {
|
|
22
|
+
console.log(crank.position())
|
|
23
|
+
sprite.x = screen.width / 2 + crank.position()
|
|
24
|
+
})
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## See also #seealso
|
|
28
|
+
|
|
29
|
+
[on changed](/reference/encoders/on-changed)
|
|
30
|
+
|
|
31
|
+
```package
|
|
32
|
+
encoders
|
|
33
|
+
```
|
|
@@ -78,7 +78,7 @@ namespace RotaryEncoderMethods {
|
|
|
78
78
|
*/
|
|
79
79
|
//% blockNamespace="encoders"
|
|
80
80
|
//% blockId=rotaryencoderonchaned block="on %this changed"
|
|
81
|
-
//% weight=80 blockGap=8
|
|
81
|
+
//% weight=80 blockGap=8 help=encoders/on-changed
|
|
82
82
|
void onChanged(RotaryEncoder encoder, Action body) {
|
|
83
83
|
registerWithDal(encoder->id, ROT_EV_CHANGED, body);
|
|
84
84
|
}
|
|
@@ -88,7 +88,7 @@ void onChanged(RotaryEncoder encoder, Action body) {
|
|
|
88
88
|
*/
|
|
89
89
|
//% blockNamespace="encoders"
|
|
90
90
|
//% blockId=rotaryencoderposition block="%this position"
|
|
91
|
-
//% weight=79 blockGap=8
|
|
91
|
+
//% weight=79 blockGap=8 help=encoders/position
|
|
92
92
|
int position(RotaryEncoder encoder) {
|
|
93
93
|
// the position always changes by 4 per tick
|
|
94
94
|
return encoder->position >> 2;
|
|
@@ -23,7 +23,7 @@ declare interface RotaryEncoder {
|
|
|
23
23
|
*/
|
|
24
24
|
//% blockNamespace="encoders"
|
|
25
25
|
//% blockId=rotaryencoderonchaned block="on %this changed"
|
|
26
|
-
//% weight=80 blockGap=8 shim=RotaryEncoderMethods::onChanged
|
|
26
|
+
//% weight=80 blockGap=8 help=encoders/on-changed shim=RotaryEncoderMethods::onChanged
|
|
27
27
|
onChanged(body: () => void): void;
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -31,7 +31,7 @@ declare interface RotaryEncoder {
|
|
|
31
31
|
*/
|
|
32
32
|
//% blockNamespace="encoders"
|
|
33
33
|
//% blockId=rotaryencoderposition block="%this position"
|
|
34
|
-
//% weight=79 blockGap=8 shim=RotaryEncoderMethods::position
|
|
34
|
+
//% weight=79 blockGap=8 help=encoders/position shim=RotaryEncoderMethods::position
|
|
35
35
|
position(): int32;
|
|
36
36
|
}
|
|
37
37
|
|