pxt-calliope/libs/core/basic.ts
Amerlander 3e0c9b43a2
V4 updates for beta testing (#147)
* change simulator svg

* change radio image

* Remove google fonts cdn

* change color of 'advanced' button

* font fix

* font fix 2

* display fix

* change fullsceen simulator bg

* Continuous servo

* handle continuous state

* adding shims

* update rendering for continuous servos

* fixing sim

* fix sig

* typo

* fix sim

* bump pxt

* bump pxt

* rerun travis

* Input blocks revision

- add Button and Pin event types
- merge onPinPressed & onPinReleased in new onPinEvent function
- create new onButtonEvent function

* update input blocks in docs and tests

* remove device_pin_release block

* Hide DAL.x behind Enum

* bring back deprecated blocks, but hide them

* shims and locales files

* fix input.input. typing

* remove buildpr

* bump V3

* update simulator aspect ratio

* add Loudness Block

* revoke loudness block

* Adds soundLevel

To be replaced by pxt-common-packages when DAL is updated.

* Remove P0 & P3 from AnalogPin

* Fix Sound and replace AnalogPin.P0

* remove approved extensions

* V4 Updates from remote Repo

* locales

* add storage functions

* fix storage functions

* fix int/float values

* decrease decimal precision

* reorder blocks

* Update BLE Settings and Storage Blocks

* Fetch MicroBit changes up to v4.0.18

* Update timing for LED Matrix usage

* use 32kb ram (mini v2)

* resize gatt table

* Revert "use 32kb ram (mini v2)"

This reverts commit 4b15592f0f.

* fix missleading indentation

* add support for 32kb and 16kb ram

* only MIT extensions in preferredRepos

* remove extensions without MIT License file

* add updated extensions

* add extensions with MIT license

Co-authored-by: Juri <gitkraken@juriwolf.de>
Co-authored-by: Juri <info@juriwolf.de>
2022-03-22 09:36:19 -07:00

117 lines
3.5 KiB
TypeScript

/**
Well known colors
*/
enum Colors {
//% blockIdentity=basic.color
//% block=red
Red = 0x00FF0000,
//% blockIdentity=basic.color
//% block=orange
Orange = 0x00FFA500,
//% blockIdentity=basic.color
//% block=yellow
Yellow = 0x00FFFF00,
//% blockIdentity=basic.color
//% block=green
Green = 0x0000FF00,
//% blockIdentity=basic.color
//% block=blue
Blue = 0x000000FF,
//% blockIdentity=basic.color
//% block=indigo
Indigo = 0x004b0082,
//% blockIdentity=basic.color
//% block=violet
Violet = 0x008a2be2,
//% blockIdentity=basic.color
//% block=purple
Purple = 0x00FF00FF,
//% blockIdentity=basic.color
//% block=white
White = 0xFFFFFFFF,
//% blockIdentity=basic.color
//% block=off
Off = 0x00000000,
}
/**
* Provides access to basic micro:bit functionality.
*/
//% color=#54C9C9 weight=100 icon="\uf00a"
//% groups=['LED matrix', 'Control', 'RGB LED', 'others']
namespace basic {
/**
* Scroll a number on the screen. If the number fits on the screen (i.e. is a single digit), do not scroll.
* @param interval speed of scroll; eg: 50, 100, 150, 200
*/
//% help=basic/show-number
//% weight=95
//% blockId=device_show_number
//% block="show|number %number || in an interval of %interval ms" blockGap=8
//% async
//% parts="ledmatrix"
//% expandableArgumentMode="toggle"
//% interval.defl=80
//% group="LED matrix"
export function showNumber(value: number, interval?: number) {
showString(Math.roundWithPrecision(value, 2).toString(), interval);
}
/**
* Converts the color name to a number
*/
//% blockId=color_id block="%c" shim=TD_ID
//% group="RGB LED"
//% weight=1
//% deprecated=true
export function color(c: Colors): number {
return c;
}
/**
* Converts red, green, blue channels into a RGB color
* @param red value of the red channel between 0 and 255. eg: 255
* @param green value of the green channel between 0 and 255. eg: 255
* @param blue value of the blue channel between 0 and 255. eg: 255
*/
//% weight=3
//% blockId="core_rgb" block="red %red|green %green|blue %blue"
//% group="RGB LED"
export function rgb(red: number, green: number, blue: number): number {
return ((red & 0xFF) << 16) | ((green & 0xFF) << 8) | (blue & 0xFF);
}
/**
* Converts red, green, blue channels into a RGB color
* @param red value of the red channel between 0 and 255. eg: 255
* @param green value of the green channel between 0 and 255. eg: 255
* @param blue value of the blue channel between 0 and 255. eg: 255
* @param white value of the white channel between 0 and 255. eg: 0
*/
//% weight=2
//% blockId="core_rgbw" block="red %red|green %green|blue %blue|white %white"
//% group="RGB LED"
//% deprecated=true
export function rgbw(red: number, green: number, blue: number, white:number): number {
return ((white & 0xFF) << 24) | ((red & 0xFF) << 16) | ((green & 0xFF) << 8) | (blue & 0xFF);
}
}
/**
* Pause for the specified time in milliseconds
* @param ms how long to pause for, eg: 100, 200, 500, 1000, 2000
*/
function pause(ms: number): void {
basic.pause(ms);
}
/**
* Repeats the code forever in the background. On each iteration, allows other codes to run.
* @param body code to execute
*/
function forever(a: () => void): void {
basic.forever(a);
}