obniz
Version:
obniz sdk for javascript
147 lines (118 loc) • 4.02 kB
Markdown
# Peripherals UART
UARTモジュールです。
UARTは2つ利用可能で、
uart0からuart1までです。
## obniz.getFreeUart()
未使用のuartを返します。
```javascript
var uart = obniz.getFreeUart();
```
もし未使用のuartがなければエラーとなります。
```javascript
var uart0 = obniz.getFreeUart();
var uart1 = obniz.getFreeUart();
var uart2 = obniz.getFreeUart(); // Error
```
## start({tx, rx[, gnd, baud, stop, bits, parity, flow control, rts, cts, drive, pull ]})
uartを開始します。
txで指定したピンが送信でそこからデータがobnizから送信され、rxで指定したピンで受信します。
tx とrx以外は設定されて無くても動作します。その場合のデフォルト通信設定は以下のとおりです。
Defaults
- 速度 115200bps
- 非同期
- フローコントロールなし
- 8bit
- パリティなし
- 1 ストップビット
- 5v push-pull drive
- 内部プルアップなし
設定する場合、設定できるのは以下のとおりです
1. baud: number (default 115200)
2. stop: ストップビット幅 数値で 1(default)/1.5/2
3. bits: データ幅 数値で 8(default)/5/6/7
4. parity: パリティチェック 文字列で "off"(default)/"odd"/"even"
5. flowcontrol: フローコントロール 文字列で "off"(default)/"rts"/"cts"/"rts-cts"
6. rts: rtsで利用するピン番号 数値
7. cts: ctsで利用するピン番号 数値
```Javascript
// Javascript Example
obniz.io0.output(false) // for sharing GND.
obniz.uart0.start({tx: 1, rx: 2, baud:9600, bits:7 });
obniz.uart0.send("Hi");
obniz.uart1.start({tx: 3, rx: 4, cts:5, rts:6, flowcontrol: 'rts-cts'});
obniz.uart1.send("Hi");
```
## send(data)
データを送信します。
dataで送れるものは
- 文字 => utf8エンコードされたバイト列となります(ヌル文字は含まれません)
- 数字 => 1byteのデータになります
- 数字の配列 => 1つ1つ1byteのデータとして送信されます
- Buffer/Array => そのまま送信されます
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
obniz.uart0.send("Hi");
obniz.uart0.send(0x11);
obniz.uart0.send([0x11, 0x45, 0x44]);
```
## end()
uartを停止します。uartで使われていたピンは入力となります
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
obniz.uart0.send("Hi");
obniz.uart0.end();
```
## onreceive
データを受信した時に呼び出されます。
第一引数のdataは受信したデータをarrayとして受け取れます。
第二引数のtextは受信したarrayをtextとして変換したものです。
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
obniz.uart0.onreceive = function(data, text) {
console.log(data);
console.log(text);
}
obniz.uart0.send("Hello");
```
## isDataExists
受信済みで,まだ使用していないデータが無いかチェックします.
データがあればtrueを返します
もし`onreceive`を設定していれば,データが来ると同時に`onreceive`関数によって値を受け取るので,
この値は常にfalseになります.
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
while(1){
if(obniz.uart0.isDataExists()){
console.log(obniz.uart0.readText());
}
await obniz.wait(10); //wait for 10ms
}
```
## readBytes
受信済みで,まだ使用していないデータをarrayで返します
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
while(1){
if(obniz.uart0.isDataExists()){
console.log(obniz.uart0.readBytes());
}
await obniz.wait(10); //wait for 10ms
}
```
## readText
受信済みで,まだ使用していないデータを文字列で返します
```Javascript
// Javascript Example
obniz.uart0.start({tx:0, rx:1})
while(1){
if(obniz.uart0.isDataExists()){
console.log(obniz.uart0.readText());
}
await obniz.wait(10); //wait for 10ms
}
```