Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions docs/device/serial.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,17 @@ Unfortunately, using the serial library requires quite a bit of a setup.

### ~ hint

**Windows earlier than 10**
#### Windows earlier than 10

If you are running a Windows version earlier than 10, you must [install a device driver](https://os.mbed.com/docs/latest/tutorials/windows-serial-driver.html) (for the computer to recognize the serial interface of the micro:bit).

## ~
### ~

Also, if you don't see the serial port as one of your computer's devices, you might need to [update the firmware](/device/firmware) on the @boardname@. Find the device name for the attached serial port in the following instructions for your operating system.

### Windows > Tera Term
## Windows

### Tera Term

* Install the terminal emulator [Tera Term](https://ttssh2.osdn.jp/index.html.en). At the time of this writing, the latest version is 4.88 and can be downloaded [from here](http://en.osdn.jp/frs/redir.php?m=jaist&f=%2Fttssh2%2F63767%2Fteraterm-4.88.exe). Follow the instructions from the installer.

Expand All @@ -47,7 +50,7 @@ You should be good. Feel free to hit `Setup` > `Save Setup` in the menus to eras

Please note that Windows will assign you a different COM port if you plug in another micro:bit. If you're juggling between micro:bits, you'll have to change the COM port every time.

### Windows > Putty
### Putty

If you prefer another terminal emulator (such as [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/)), here are some instructions.

Expand Down
12 changes: 5 additions & 7 deletions docs/reference/serial/on-data-received.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Serial On Data Received
# on Data Received

Registers an event to be fired when one of the delimiter is matched.


```sig
serial.onDataReceived(",", function() {})
```
Expand All @@ -13,17 +12,16 @@ serial.onDataReceived(",", function() {})

## Example

Read values separated by `,`:
Read values separated by a comma `,`.

```blocks
serial.onDataReceived(serial.delimiters(Delimiters.Comma), () => {
serial.onDataReceived(serial.delimiters(Delimiters.Comma), function() {
basic.showString(serial.readUntil(serial.delimiters(Delimiters.Comma)))
})
```

## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value)

[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value)
2 changes: 1 addition & 1 deletion docs/reference/serial/read-buffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Read character data from the serial port one row at a time. Write the rows to an
serial.setRxBufferSize(10)
for (let i = 0; i < 24; i++) {
let rowData = serial.readBuffer(10)
pins.i2cWriteBuffer(65, rowData, false);
pins.i2cWriteBuffer(65, rowData, false)
}
```

Expand Down
9 changes: 4 additions & 5 deletions docs/reference/serial/read-line.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Read Line
# read Line

Read a line of text from the serial port.

Expand All @@ -14,7 +14,6 @@ This function expects the line it reads to be terminated with the `\n`
character. If your terminal software does not terminate lines with
`\n`, this function will probably never return a value.


You can override the ``serial.NEW_LINE_DELIMITER`` field to change the newline delimiter.

### ~
Expand All @@ -30,7 +29,7 @@ The following example requests the user's name, then repeats it to greet the use
```blocks
basic.forever(() => {
serial.writeLine("What is your name?")
let answer = serial.readLine();
let answer = serial.readLine()
serial.writeString("Hello,")
serial.writeLine(answer)
})
Expand All @@ -39,5 +38,5 @@ basic.forever(() => {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value)
[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value)
6 changes: 3 additions & 3 deletions docs/reference/serial/read-string.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Read String
# read String

Read the buffered serial data as a string.

Expand All @@ -23,5 +23,5 @@ basic.forever(function() {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value)
[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value)
6 changes: 3 additions & 3 deletions docs/reference/serial/read-until.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Read Until
# read Until

Read a text from the serial port until a delimiter is found.

Expand All @@ -24,5 +24,5 @@ basic.forever(() => {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value)
[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value)
8 changes: 4 additions & 4 deletions docs/reference/serial/write-line.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Write Line
# write Line

Write a string to the [serial](/device/serial) port and start a new line of text
by writing `\r\n`.
Expand Down Expand Up @@ -57,6 +57,6 @@ basic.forever(function() {
## See also

[serial](/device/serial),
[serial write number](/reference/serial/write-number),
[serial write string](/reference/serial/write-string),
[serial write value](/reference/serial/write-value)
[write number](/reference/serial/write-number),
[write string](/reference/serial/write-string),
[write value](/reference/serial/write-value)
46 changes: 38 additions & 8 deletions docs/reference/serial/write-number.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,58 @@
# Serial Write Number
# write Number

Write a number to the [serial](/device/serial) port.

```sig
serial.writeNumber(0)
```

A number value is written to the serial port as characters in a string representation. The number `876`, for example:

```block
serial.writeNumber(876)
```

The receiving serial port will see this number as the 3 characters:

```
876
```

## Parameters

* `value` is the [number](/types/number) to write to the serial port

## Example: one two three
### ~ reminder

#### Simulator data log

When a number is written to the serial port, it's sent immediately over the serial connection. However, when you code with ``||serial:write number||`` in the Editor, the simulator's data log may not display the output data right away. The characters that represent the number may get queued in the data log buffer and won't display until:

This program repeatedly writes a 3-digit number to the serial port.
* a 'newline' line character is received (`\n`)

-- or --

* log data buffer limit is reached (currently set at `256` characters).

If you want to see the string displayed immediately, use a ``||serial:write line||`` with an empty string right after the ``||serial:write number||``.

### ~

## Examples

### One, Two, Three

This program repeatedly writes a 3-digit number as a line to the serial port.

```blocks
basic.forever(function() {
serial.writeNumber(123)
serial.writeLine("")
basic.pause(5000)
});
```

## Example: plot bar graph does serial
### Plot bar graph does serial

If you use the ``led.plotBarGraph`` function, it writes the number
being plotted to the serial port too.
Expand All @@ -36,7 +67,6 @@ basic.forever(function() {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value),
[serial write numbers](/reference/serial/write-numbers)

[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value),
[write numbers](/reference/serial/write-numbers)
6 changes: 3 additions & 3 deletions docs/reference/serial/write-numbers.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Write Numbers
# write Numbers

Write an array of numbers to the [serial](/device/serial) port.

Expand Down Expand Up @@ -41,5 +41,5 @@ basic.forever(function() {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write value](/reference/serial/write-value)
[write line](/reference/serial/write-line),
[write value](/reference/serial/write-value)
24 changes: 20 additions & 4 deletions docs/reference/serial/write-string.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Serial Write String
# write String

Write a string to the [serial](/device/serial) port,
without starting a new line afterward.
Expand All @@ -7,6 +7,22 @@ without starting a new line afterward.
serial.writeString("")
```

### ~ reminder

#### Simulator data log

When a string is written to the serial port, it's sent immediately over the serial connection. However, when you code with ``||serial:write string||`` in the Editor, the simulator's data log may not display the output data right away. The characters that represent the string may get queued in the data log buffer and won't display until:

* a 'newline' line character is received (`\n`)

-- or --

* log data buffer limit is reached (currently set at `256` characters).

If you want to see the string displayed immediately, use a ``||serial:write line||`` with an empty string right after the ``||serial:write string||``.

### ~

## Parameters

* `text` is the [string](/types/string) to write to the serial port
Expand All @@ -26,6 +42,6 @@ basic.forever(function() {
## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write number](/reference/serial/write-number),
[serial write value](/reference/serial/write-value)
[write line](/reference/serial/write-line),
[write number](/reference/serial/write-number),
[write value](/reference/serial/write-value)
8 changes: 5 additions & 3 deletions docs/reference/serial/write-value.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,17 @@ basic.forever(function() {

### ~hint

#### Radio-Serial gateway

The [send value](/reference/radio/send-value) function broadcasts
string/number pairs. You can use a second @boardname@ to receive them,
string/number pairs. You can use a second @boardname@ to receive them,
and then send them directly to the serial port with ``write value``.

### ~

## See also

[serial](/device/serial),
[serial write line](/reference/serial/write-line),
[serial write number](/reference/serial/write-number),
[write line](/reference/serial/write-line),
[write number](/reference/serial/write-number),
[send value](/reference/radio/send-value)
2 changes: 1 addition & 1 deletion libs/core/console.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace console {
if (priority < minPriority) return;
let text = inspect(message);
// add new line
text += "\n";
text += "\r\n";
control.__log(priority, text)
// send to listeners
if (listeners)
Expand Down
4 changes: 2 additions & 2 deletions sim/state/serial.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ namespace pxsim {
serialOutBuffer: string = "";
writeSerial(s: string) {
this.serialOutBuffer += s;
if (/\n/.test(this.serialOutBuffer) || this.serialOutBuffer.length > SERIAL_BUFFER_LENGTH) {
//if (/\n/.test(this.serialOutBuffer) || this.serialOutBuffer.length > SERIAL_BUFFER_LENGTH) {
Runtime.postMessage(<SimulatorSerialMessage>{
type: 'serial',
data: this.serialOutBuffer,
id: runtime.id,
sim: true
})
this.serialOutBuffer = '';
}
//}
}

writeCsv(s: string, type: "headers" | "row" | "clear") {
Expand Down
Loading