Update 'radio' docs for v1 (#937)

This commit is contained in:
Galen Nickel 2018-07-09 11:17:32 -07:00 committed by GitHub
parent 5d6481a4e8
commit f5c44a3d4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 223 additions and 29 deletions

View File

@ -0,0 +1,39 @@
# get Received Packet Property
Get one of the properties from the last received radio packet.
```sig
radio.getReceivedPacketProperty(radio.PacketProperty.SignalStrength)
```
## Parameters
* **type**: the property type to get from the packet. These are:
>* ``signal strength``: the strength of the radio signal when the packet was received.
>* ``serial number``: the serial number of the board sending the packet.
>* ``time``: the time when the packet was sent.
## Returns
* a [number](/types/number) that is the property selected in the **type** parameter.
## Example
This program uses the signal strength from received packets to graph the
approximate distance between two @boardname@s.
```blocks
basic.forever(() => {
radio.sendNumber(0)
})
radio.onReceivedNumber(function (receivedNumber) {
led.plotBarGraph(
Math.abs(radio.getReceivedPacketProperty(radio.PacketProperty.SignalStrength) + 42),
128 - 42
)
})
```
## See also
[set transmit serial number](/reference/radio/set-transmit-serial-number)

View File

@ -0,0 +1,65 @@
# on Received Number
Run part of a program when the @boardname@ receives a
[number](/types/number) over ``radio``.
```sig
radio.onReceivedNumber(function (receivedNumber) {})
```
## Parameters
* **receivedNumber**: The [number](/types/number) that was sent in this packet or `0` if this packet did not contain a number. See [send number](/reference/radio/send-number) and [send value](/reference/radio/send-value)
## Examples
### Tell me how fast
This program keeps sending numbers that say how fast the @boardname@ is
slowing down or speeding up. It also receives numbers for the same
thing from nearby @boardname@s. It shows these numbers as a
[bar graph](/reference/led/plot-bar-graph).
```blocks
basic.forever(() => {
radio.sendNumber(input.acceleration(Dimension.X));
})
radio.onReceivedNumber(function (receivedNumber) {
led.plotBarGraph(receivedNumber, 1023);
})
```
### What's the distance?
This program uses the signal strength from received packets to graph the
approximate distance between two @boardname@s.
```blocks
basic.forever(() => {
radio.sendNumber(0)
})
radio.onReceivedNumber(function (receivedNumber) {
led.plotBarGraph(
Math.abs(radio.getReceivedPacketProperty(radio.PacketProperty.SignalStrength) + 42),
128 - 42
)
})
```
## Troubleshooting
The ``||radio:onReceivedNumber||`` event can only be created once, due to the hardware restrictions.
The radio set group might need to be set, synchronized , before the radio events will function.
## See also
[on received strig](/reference/radio/on-received-string),
[send number](/reference/radio/send-number),
[send string](/reference/radio/send-string),
[send value](/reference/radio/send-value),
[set group](/reference/radio/set-group)
```package
radio
```

View File

@ -0,0 +1,42 @@
# on Received String
Run part of a program when the @boardname@ receives a [string](/types/string) over ``radio``.
```sig
radio.onReceivedString(function (receivedString) {})
```
## Parameters
* **receivedString**: The [string](/types/string) that was sent in this packet or the empty string if this packet did not contain a string. See [send string](/reference/radio/send-string) and [send value](/reference/radio/send-value)
## Example
This program continuously sends a cheerful message. It also receives a messages from nearby @boardname@s. It shows these messages on the screen.
```blocks
basic.forever(() => {
radio.sendString("I'm happy");
})
radio.onReceivedString(function (receivedString) {
basic.showString(receivedString)
})
```
## Troubleshooting
The ``||radio:on received string||`` event can only be created once, due to the hardware restrictions.
The radio set group might need to be set, synchronized , before the radio events will function.
## See also
[on received number](/reference/radio/on-received-number),
[send number](/reference/radio/send-number),
[send string](/reference/radio/send-string),
[send value](/reference/radio/send-value),
[set group](/reference/radio/set-group)
```package
radio
```

View File

@ -0,0 +1,48 @@
# on Received Value
Run part of a program when the @boardname@ receives a name-value-pair over ``radio``.
```sig
radio.onReceivedValue(function (name, value) {})
```
## Parameters
* **name**: a [string](/types/string) that is a name for the value received.
* **value**: a [number](/types/number) that is the value received.
## Example
This program keeps sending numbers that say how fast the @boardname@ is
slowing down or speeding up. When it receives numbers for the same
thing from nearby @boardname@s, show the numbers as a
[bar graph](/reference/led/plot-bar-graph).
```blocks
basic.forever(() => {
radio.sendValue("accel-x", input.acceleration(Dimension.X))
})
radio.onReceivedValue(function (name, value) {
if (name == "accel-x") {
led.plotBarGraph(value, 1023);
}
})
```
## Troubleshooting
The ``||radio:on received value||`` event can only be created once, due to the hardware restrictions.
The radio set group might need to be set, synchronized , before the radio events will function.
## See also
[on received number](/reference/radio/on-received-number),
[send number](/reference/radio/send-number),
[send string](/reference/radio/send-string),
[send value](/reference/radio/send-value),
[set group](/reference/radio/set-group)
```package
radio
```

View File

@ -1,4 +1,4 @@
# Send Number # send Number
Broadcast a [number](/types/number) to other @boardname@s connected via ``radio``. Broadcast a [number](/types/number) to other @boardname@s connected via ``radio``.
@ -8,7 +8,7 @@ radio.sendNumber(0);
## Parameters ## Parameters
* ``value`` - a [number](/types/number) to send. * **value**: a [number](/types/number) to send.
## Example: Broadcasting acceleration ## Example: Broadcasting acceleration
@ -27,7 +27,7 @@ input.onButtonPressed(Button.A, () => {
This example broadcasts the level of the light around it. This example broadcasts the level of the light around it.
You can do some interesting things with it if you use it along with the You can do some interesting things with it if you use it along with the
[on data packet received](/reference/radio/on-data-packet-received) example. [on received number](/reference/radio/on-received-number) example.
```blocks ```blocks
radio.setGroup(99) radio.setGroup(99)
@ -39,7 +39,7 @@ basic.forever(() => {
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received) [on received number](/reference/radio/on-received-number)
```package ```package
radio radio

View File

@ -1,4 +1,4 @@
# Send String # send String
Sends a string to other @boardname@s in the area connected by radio. The Sends a string to other @boardname@s in the area connected by radio. The
maximum string length is 19 characters. maximum string length is 19 characters.
@ -23,10 +23,9 @@ input.onButtonPressed(Button.A, () => {
radio.sendString("Codeword: TRIMARAN") radio.sendString("Codeword: TRIMARAN")
basic.showString("SENT"); basic.showString("SENT");
}) })
radio.onReceivedString(function (receivedString) {
radio.onDataPacketReceived(({ receivedString }) => {
basic.showString(receivedString); basic.showString(receivedString);
}); })
``` ```
## ~hint ## ~hint
@ -37,7 +36,7 @@ A radio that can both transmit and receive is called a _transceiver_.
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received) [on received string](/reference/radio/on-received-string)
```package ```package
radio radio

View File

@ -1,4 +1,4 @@
# Send Value # send Value
Send a [string]() and [number]() together by ``radio`` to other @boardname@s. Send a [string]() and [number]() together by ``radio`` to other @boardname@s.
The maximum [string]() length is 12 characters. The maximum [string]() length is 12 characters.
@ -31,15 +31,16 @@ Then it shows them on the LED screen.
```blocks ```blocks
radio.setGroup(99) radio.setGroup(99)
radio.onDataPacketReceived(({ receivedString, receivedNumber }) => { radio.onReceivedValue(function (name, value) {
basic.showString(receivedString); radio.onDataPacketReceived(({ name, value }) => {
basic.showNumber(receivedNumber); basic.showString(name);
basic.showNumber(value);
}); });
``` ```
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received) [on received value](/reference/radio/on-received-value)
```package ```package
radio radio

View File

@ -1,4 +1,4 @@
# Set Group # set Group
Make a program have the group ID you tell it for sending and receiving Make a program have the group ID you tell it for sending and receiving
with ``radio``. A group is like a cable channel (a @boardname@ can only with ``radio``. A group is like a cable channel (a @boardname@ can only
@ -16,7 +16,7 @@ radio.setGroup(0);
## Parameters ## Parameters
* ``id`` is a [number](/types/number) from ``0`` to ``255``. * **id**: a [number](/types/number) from ``0`` to ``255``.
## Simulator ## Simulator
@ -32,7 +32,9 @@ radio.setGroup(128)
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received), [on received number](/reference/radio/on-received-number),
[on received string](/reference/radio/on-received-string),
[on received value](/reference/radio/on-received-value),
[send number](/reference/radio/send-number), [send number](/reference/radio/send-number),
[send value](/reference/radio/send-value), [send value](/reference/radio/send-value),
[send string](/reference/radio/send-string) [send string](/reference/radio/send-string)

View File

@ -1,7 +1,6 @@
# Set Transmit Power # set Transmit Power
Make the ``radio`` signal of the @boardname@ stronger or weaker. Make the ``radio`` signal of the @boardname@ stronger or weaker. It can be as weak as `0` and as strong as `7`.
It can be as weak as `0` and as strong as `7`.
The scientific name for the strength of the ``radio`` signal is The scientific name for the strength of the ``radio`` signal is
**dBm**, or **decibel-milliwatts**. A signal strength of `0` **dBm**, or **decibel-milliwatts**. A signal strength of `0`
@ -20,8 +19,7 @@ can reach as far as 70 meters (about 230 feet).
## Parameters ## Parameters
* ``power`` is a [number](/types/number) between ``0`` and ``7`` that * ``power`` is a [number](/types/number) between ``0`` and ``7`` that means how strong the signal is.
means how strong the signal is.
## Simulator ## Simulator
@ -37,7 +35,7 @@ radio.setTransmitPower(7)
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received), [get received packet property](/reference/radio/get-received-packet-property),
[send number](/reference/radio/send-number), [send number](/reference/radio/send-number),
[send value](/reference/radio/send-value), [send value](/reference/radio/send-value),
[send string](/reference/radio/send-string) [send string](/reference/radio/send-string)

View File

@ -1,4 +1,4 @@
# Set Transmit Serial Number # set Transmit Serial Number
Make the ``radio`` packet embed the board serial number with each packet of data. Make the ``radio`` packet embed the board serial number with each packet of data.
@ -20,7 +20,7 @@ radio.setTransmitSerialNumber(true);
## See also ## See also
[on data packet received](/reference/radio/on-data-packet-received), [get received packet property](/reference/radio/get-received-packet-property),
[send number](/reference/radio/send-number), [send number](/reference/radio/send-number),
[send value](/reference/radio/send-value), [send value](/reference/radio/send-value),
[send string](/reference/radio/send-string) [send string](/reference/radio/send-string)

View File

@ -72,7 +72,7 @@ namespace radio {
/** /**
* Registers code to run when the radio receives a number. * Registers code to run when the radio receives a number.
*/ */
//% help=radio/on-radio-received-number blockHandlerKey="radioreceived" //% help=radio/on-received-number blockHandlerKey="radioreceived"
//% blockId=radio_on_number block="on radio received" blockGap=8 //% blockId=radio_on_number block="on radio received" blockGap=8
export function onReceivedNumber(cb: (receivedNumber: number) => void) { export function onReceivedNumber(cb: (receivedNumber: number) => void) {
onDataReceived(() => { onDataReceived(() => {
@ -90,7 +90,7 @@ namespace radio {
/** /**
* Registers code to run when the radio receives a key value pair. * Registers code to run when the radio receives a key value pair.
*/ */
//% help=radio/on-radio-received-value blockHandlerKey="radioreceived" //% help=radio/on-received-value blockHandlerKey="radioreceived"
//% blockId=radio_on_value block="on radio received" blockGap=8 //% blockId=radio_on_value block="on radio received" blockGap=8
export function onReceivedValue(cb: (name: string, value: number) => void) { export function onReceivedValue(cb: (name: string, value: number) => void) {
onDataReceived(() => { onDataReceived(() => {
@ -109,7 +109,7 @@ namespace radio {
/** /**
* Registers code to run when the radio receives a string. * Registers code to run when the radio receives a string.
*/ */
//% help=radio/on-radio-received-string blockHandlerKey="radioreceived" //% help=radio/on-received-string blockHandlerKey="radioreceived"
//% blockId=radio_on_string block="on radio received" blockGap=8 //% blockId=radio_on_string block="on radio received" blockGap=8
export function onReceivedString(cb: (receivedString: string) => void) { export function onReceivedString(cb: (receivedString: string) => void) {
onDataReceived(() => { onDataReceived(() => {
@ -127,7 +127,7 @@ namespace radio {
/** /**
* Registers code to run when the radio receives a buffer. * Registers code to run when the radio receives a buffer.
*/ */
//% help=radio/on-radio-received-buffer blockHandlerKey="radioreceived" blockHidden=1 //% help=radio/on-received-buffer blockHandlerKey="radioreceived" blockHidden=1
//% blockId=radio_on_buffer block="on radio received" blockGap=8 //% blockId=radio_on_buffer block="on radio received" blockGap=8
export function onReceivedBuffer(cb: (buffer: Buffer) => void) { export function onReceivedBuffer(cb: (buffer: Buffer) => void) {
onDataReceived(() => { onDataReceived(() => {