日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php hex2bin nodejs,Nodejs Serialport文档翻译

發布時間:2023/12/15 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php hex2bin nodejs,Nodejs Serialport文档翻译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版本號:Serialport@5.0.0-beta3

本文鏈接

想象一個世界,你可以在那寫javascript來控制攪拌機,燈,安全系統或者甚至是機器人。是的,我說的是機器人。那個世界就是這兒,現在使用node serialport。它提供一個非常簡單的接口所需要的串口程序代碼Arduino 單片機, X10 無線通信模塊, 或者甚至是上升到 Z-Wave 和Zigbee . 在這個物理世界,你可以隨心所欲(The physical world is your oyster with this goodie.)。想完全了解為什么我們做這個,請閱讀NodeBots - The Rise of JS Robotics.

為了入門node-serialport,我們建議你從下列文章開始:

Johnny-Five - Johnny-Five 機器人技術和物聯網平臺的六行“helloworld”(太棒了).

NodeBots - The Rise of JS Robotics - 一篇調查文章關于為什么一個世界需要在js里編寫機器人程序以及如何開始。

平臺支持

serialport支持NodeJS v4 以及更高版本。0.10和0.12版本使用serialport@4。serialport支持的平臺,體系架構和nodejs版本可以查看下列表格信息。

平臺/架構

Node v4.x

Node v6.x

Node v7.x

Linux / ia32

Linux / x64

Linux / ARM v61

Linux / ARM v71

Linux / ARM v81

Linux / MIPSel1

Linux / PPC641

Windows2 / x86

Windows2 / x64

OSX3 / x64

1 ARM, MIPSel and PPC641 平臺已知可以運行但是不屬于我們的測試范圍或者構建矩陣。 #846 ARM v4 and v5 在 Node v0.10版本之后從Nodejs中取消.

2 Windows 7, 8, 10, and 10 IoT 是支持的但是只有Windows Server 2012 R2 是由我們測試的.

3 OSX 10.4 Tiger 以及更高版本是支持的 但是只有 10.9.5 Mavericks 和 Xcode 6.1 是由我們測試的.

安裝說明

對于大多數“標準”使用案例(在mac,linux,windows x86或者x64上node V4.x),node-serialport將會很好以及很容易的安裝。

npm install serialport

安裝的平臺環境

我們使用node-pre-gyp來編譯以及公布大多數常見使用平臺(linux,mac,windows在標準的處理器平臺)的二進制庫。如果你是特別的平臺,node-serialport將會工作,但是當你安裝的時候它將會編譯二進制文件。

這假定你有必要讓你可以在自己系統中編譯一些nodejs模塊。這個或許并非如此,可是,請確認下列對于你系統是正確的,在你提出關于“無法安裝”的issue之前。對于所有操作系統,請確認你有安裝了Python 2.x 以及不是3.0,node-gyp(你用來編譯的工具)需要Python 2.x。

Alpine Linux

Alpine 是一個(非常)小的linux開發版系統, 但是它使用組織標準庫來代替函數庫 (大多數開發版linux系統使用的), 所以他需要編譯。 它通常使用Docker.我們已經編譯了可以工作的 apline-node.

# 如果你沒有安裝node/npn,先添加它們

sudo apk add --no-cache nodejs

# 添加必要的構建庫和運行依賴

sudo apk add --no-cache make gcc g++ python linux-headers udev

# 然后我們就能安裝 serialport, 強制它編譯

npm install serialport --build-from-source

# 如果你使用root來安裝,你需要使用

Electron

Electron是一個框架用來創建跨平臺桌面程序。Electron自帶他自己的Node.js運行版本

如果你需要serialport作為一個Electron項目的依賴,你需要為你用在項目里的Electron項目編譯它。

當你第一次安裝serialport,它會編譯針對你機器的Node.js版本的serialport,而不是針對Electron捆綁的Node.js運行版本。

再次為Electron編譯serialport(或者一個本地模塊),你可以使用electron-rebuild.

1.npm install --save-dev electron-rebuild

2.將electron-rebuild加入到你項目中的package.json的安裝鉤子。

3.運行npm install

更多關于electron-rebuild的信息訪問README.

非法指令

假定一個完全有能力的芯片預編譯的二進制文件。例如Galileo2缺乏一些ia32指令集架構。一些其他平臺有相似的問題。所以當你試圖運行serialport時,如果你得到非法指令,你將需要重新構建serialport二進制文件通過告知npm去重新構建它。

#告知npm構建serialport在安裝的時間內

npm install serialport --build-from-source

#如果你有一個依賴serialport的包,你可以告知npm去特別重新構建它。

npm rebuild serialport --build-from-source

#或者除去包名,重新構建所有

npm rebuild --build-from-source

Mac OS X

確定你有是在最低的xCode命令行工具里安裝適用你系統的配置。如果你最近更新了系統,可能會移除你安裝的命令行工具,請在提交問題前仔細查證。你需要使用g++ v4.8或者更高版本來編譯Node.js 4.x+的node-serialport。

Raspberry Pi Linux

下列是關于使用Johnny-Five和Raspi IO設置樹莓派的說明。這些項目使用Node Serialport。

Revision

CPU

Arm Version

A, A+, B, B+

32-bit ARM1176JZF-S

ARMv6

Compute Module

32-bit ARM1176JZF-S

ARMv6

Zero

32-bit ARM1176JZF-S

ARMv6

B2

32-bit ARM Cortex-A7

ARMv7

B3

32-bit ARM Cortex-A53

ARMv8

sudo / root

如果你準備使用sudo或者root權限去安裝node Serialport,npm需要你使用不安全的參數標志。這個需求一般很少需要。

sudo npm install serialport --unsafe-perm --build-form-source

使用標志失敗導致類似的錯誤如下;

root@rpi3:~# npm install -g serialport

/usr/bin/serialport-list -> /usr/lib/node_modules/serialport/bin/serialport-list.js

/usr/bin/serialport-term -> /usr/lib/node_modules/serialport/bin/serialport-terminal.js

> serialport@4.0.3 install /usr/lib/node_modules/serialport

> node-pre-gyp install --fallback-to-build

gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/6.9.1"

gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/serialport/.node-gyp"

make: Entering directory '/usr/lib/node_modules/serialport/build'

make: *** No rule to make target '../.node-gyp/6.9.1/include/node/common.gypi', needed by 'Makefile'. Stop.

make: Leaving directory '/usr/lib/node_modules/serialport/build'

gyp ERR! build error

gyp ERR! stack Error: `make` failed with exit code: 2

Ubuntu/Debian Linux

最好的方式來安裝任何版本的NodeJS是使用NodeSource Node.js Binary Distributions.舊版本的Ubuntu安裝錯誤的nodejs版本和二進制名稱。如果你node二進制文件是nodejs不是node或者如果你的nodejs版本是v0.10.29 ,那么你應該根據以下這個說明來操作。

build-essential包是編譯serialport必要的包。如果那兒有一個你不需要的你平臺的二進制文件,請繼續!

#Using Ubuntu and node 6

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

sudo apt-get install -y nodejs

#Using Debian and node 6,使用root權限

curl -sL https://deb.nodesource.com/setup_7.x | bash -

apt-get install -y nodejs

Windows

Windows 7,Windows 8.1,Windows 10和Windows 10 IoT是支持的。預編譯二進制文件是可用的,但是如果你想要從源碼構建它的話,你需要查看node-gyp 的安裝的說明。一旦這些都完成了并且可以工作了你將能從源碼來安裝serialport。

npm install serialport --build-from-source

這不是node-gyp說明的一部分,但是有些時候它會幫助你,如果你在visual studio創建了一個c++項目,它將會安裝那些在兩個小時安裝visual studio過程中不能安裝的必要的組件,而你只能坐在那兒。這個將解決一些Failed to locate:"CL.exe"的實例。

協議

SerialPort 使用的是MIT協議以及它所有的依賴關系都是遵循MIT或者BSD協議。

使用

打開一個串口:

var SerialPort = require('serialport');

var port = new SerialPort('/dev/tty-usbserial1',{

baudRate: 57600

});

當打開一個串口,你可以指定(按這個順序)

1.串口的路徑 - 需要

2.選項 - 可選的,下面會描述

打開一個串口

構造一個SerialPort項目將會立即打開一個串口。當你可以在任何時候能讀出和寫入(它會在打開的串口中排列),大多數串口函數要求一個開啟的串口。當串口是打開的時候,你可以使用以下三個方式調用代碼。

open事件經常會觸發當串口打開的時候。 當autoOpen選項沒有失效的時候,構造函數的 openCallback

被傳遞給.open()。如果你已經將它關閉,callback回調會被忽視。

.open()函數需要一個在串口打開后的回調。如果你關閉了autoOpen選項或者已經關閉了串口,這個就可以被使用。

var SerialPort = require('serialport');

var port = new SerialPort('/dev/tty-usbserial1');

port.on('open',function(){

port.write('main screen turn on ',function(err){

if(err){

return console.log('Error on write: ' ,err.message);

}

console.log('message written');

});

});

//打開錯誤將會發出一個錯誤事件

port.on('error',function(err){

console.log('Error: ',err.message);

});

這個可以被移動到構造函數的回調

var SerialPort = require('serialport');

var port = new SerialPort('/dev/tty-usbserial1',function(err){

if(err){

return console.log('Error:',err.message);

}

port.write('main screen turn on',function(err){

if(err){

return console.log('Error on write: ',err.message);

}

console.log('message written');

});

});

當關閉autoOpen選項,你將要自己打開串口。

var SerialPort = require('serialport');

var port = new SerialPort('/dev/tty-usbserial1',{autoOpen:false});

port.open(function(err){

if(err){

return console.log('Error opening port: ',err.message);

}

//寫入失敗將會被串口發出由于沒有寫回調。

port.write('main screen turn on');

});

//開啟事件總是會被發出

port.on('open',function(){

//打開的邏輯

});

你可以從下列串口更新新的數據

port.on('data',function(data){

console.log('Data: '+data);

});

你可以通過發送一個字符串或者緩沖給寫入方法來向串口寫入數據。像下列一樣:

port.write('Hi Mon!');

port.write(new Buffer('Hi Mom!'));

享受以及使用這些代碼做一些酷的事情吧!

調試

我們使用debug 包以及記錄下serialport的命名空間。我們的日志;

serialport:main對于所有高等級的主要日志

serialport:binding 對于所有低級的日志

你可以通過環境變量來應用日志。檢查debug文檔給更多的信息。

DEBUG=serialport:main node myapp.js

DEBUG=serialport:* node myapp.js

DEBUG=* node myapp.js

錯誤處理

所有函數在SerialPort的兩個約定。

參數錯誤拋出一個TypeError對象。當這些函數被叫做無效參數時,你將會看見這些。

如果沒有回調被提供,運行時錯誤提供Error對象給函數回調或者發出一個error event。你將會看到這些當一個運行錯誤發生,比如試圖開啟一個錯誤的串口,或者設置一個不支持的波特率。

如果你調用正確參數的函數,它應該不需要在一個try/catch結構中包括一個SerialPort對象

SerialPort ?

Kind: 輸出類

Kind: Exported class

Emits: open, data, close, error, disconnect

Properties

Name

Type

Description

baudRate

number

串口的波特率,使用.update來改變它。只讀

binding

object

支持串口的綁定對象,只讀.

isOpen

boolean

如果串口打開時為true ,其他情況是 false.只讀. (since 5.0.0)

path

string

串口的系統路徑或者名稱. 只讀.

new SerialPort(path,[options],[openCallback])

為path創建一個新的串口對象.用無效的參數或者無效的選項構造一個新的串口時,會拋出錯誤。串口將默認自動打開,其次這相當于調用port.open(openCallback)。這個可以被關閉,通過設置autoOpen選項為false。

Throws:

TypeError 當提供無效參數時, 將會拋出TypeError。

參數

類型

描述

path

string

串口打開的系統路徑.例如, 在Mac/Linux上/dev/tty.XXX 或者 Windows上的 COM1 .

[options]

openOptions

串口配置選項

[openCallback]

errorCallback

當連接已經打開. 如果它沒有提供以及由錯誤發生,它將會發出串口error事件。如果在openOptions中autoOpen被設置為false,回調將不會調用

serialPort.open([callback])

打開一個連接到串口

Kind:實例方法 SerialPort

Emits:open

參數

類型

描述

[callback]

errorCallback

當連接已經被打開. 如果它沒有被提供以及有一個錯誤發生, 它將在串口上被發出error事件``.

serialPort.update([options],[callback])

改變打開的串口的波特率。拋出異常如果你提供了一個錯誤的參數。當波特率不支持事,會拋出錯誤或者產生回調。

Kind: instance method of SerialPort

參數

類型

描述

[options]

object

目前只有波特率是支持的

[options.baudRate]

number

設置波特率的串口是打開的。這應該匹配常見的波特率之一, 比如 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. 當然不能擔保, 串口連接的設備將支持請求的波特率,只要串口自己支持那個波特率.

[callback]

errorCallback

當波特率被改變的時候. 如果 .update 被調用而沒有回調以及有一個錯誤,錯誤事件將會被觸發。

serialPort.write(data,[encoding],[callback])? boolean

向給定的串口寫入數據。如果端口沒有打開,會緩存寫入數據。

寫入操作是無阻塞的。當它返回時,數據或許還沒有被寫入串口??磀rain()

一些設備,比如當你打開一個連接到Arduino時,它會重啟。在這種情況下,如果你立刻向設備寫入,它們將不能接收到數據。這經常在Arduino發送“ready”字節后工作,你的node程序會在寫入前等待。你也可以僥幸認為等待大概400ms.

盡管串口是一個流,但當寫入它可以接受的字節數組除了字符串和緩存時,這個格外的功能非常有用。

Kind: 實例方法 SerialPort

Returns: boolean - 如果流渴望在繼續寫入其他數據之前調用代碼等待被觸發的drain事件,就是false; 其他情況是 true.

Since: 5.0.0

參數

類型

描述

data

string

array

buffer

接收一個 Buffer 對象, 或者一個接受buffer構造函數的類型 (除了字節數組或者一個字符串).

[encoding]

string

編碼, 如果數據塊是一個字符串. 默認的是 'utf8'. 也接受 'ascii', 'base64', 'binary', 'hex' 查看 Buffers and Character Encodings了解所有可用的選項.

[callback]

function

第一次寫入操作結束.數據可能還沒有刷新到底層端口,沒有參數.

serialPort.read([size]) ? string | Buffer | null

從串口請求一個字節數.read()方法從內存緩沖區拉取一些數據然后返回它。如果沒有可用數據被讀取,會返回null。默認的,數據將會被返回成一個緩存對象,除非一個編碼已經指明使用了.setEncoding()方法。

Kind: 實例方法 SerialPort

Returns: string | Buffer | null - 內存緩沖區數據

Since: 5.0.0

參數

類型

描述

[size]

number

指明了會返回多少字節的數據如果是可用的話。

serialPort.close(callback)

關閉開啟的連接

Kind: 實例方法 SerialPort

Emits: close

參數

類型

描述

callback

errorCallback

當連接被關閉.

serialPort.set([options], [callback])

在打開的串口上設置控制標志. Uses SetCommMask for windows and ioctl for mac and linux.

Kind:實例方法 SerialPort

Since: 5.0.0

參數

類型

默認值

描述

[options]

object

所有選項是操作系統默認的當串口被打開. 每個標志被設置為相同的調用提供或者是默認數據.如果選項沒有提供將要使用的默認選項.

[options.brk]

Boolean

false

[options.cts]

Boolean

false

[options.dsr]

Boolean

false

[options.dtr]

Boolean

true

[options.rts]

Boolean

true

[callback]

errorCallback

當串口標志被設置.

serialPort.get([callback])

返回控制標志 (CTS, DSR, DCD)在開啟的串口上.

使用GetCommModemStatus for windows and ioctl for mac and linux.

Kind: 實例方法 SerialPort

參數

類型

描述

[callback]

Called once the modem bits have been retrieved(當比特被恢復)

serialPort.flush([callback])

刷新收到的丟棄的數據,但是不讀出和寫入,也不傳輸。. 更多的詳細技術請看 tcflush(fd, TCIFLUSH) for Mac/Linux and FlushFileBuffers for Windows.

Kind: 實例方法 SerialPort

參數

類型

描述

[callback]

errorCallback

當刷新操作完成.

serialPort.drain([callback])

等待直到所有發出的數據被傳輸到串口。 查看 tcdrain() or FlushFileBuffers() 了解更多信息。

Kind: 實例方法 SerialPort

參數

類型

描述

[callback]

errorCallback

當耗盡操作返回

Example

寫入 data 以及等待直到在調用回調之前,結束對目標串口的傳輸。

function writeAndDrain (data, callback) {

sp.write(data, function () {

sp.drain(callback);

});

}

serialPort.pause() ?

pause()方法會導致一個流的流動模式停止觸發'data'事件,切換的流動模式. 任何可用的數據將仍然存放在內存緩存區。

Kind: 實例方法SerialPort

Returns: this

See: module:serialport#resume

Since: 5.0.0

serialPort.resume() ?

resume()會導致一個明確的暫??勺x的流,來恢復觸發的‘data'事件,切換流到流模式

Kind: 實例方法 SerialPort

Returns: this

See: module:serialport#pause

Since: 5.0.0

Event: "error"

無論何時這有一個錯誤就會回調error 事件。

Kind: 事件由此觸發 SerialPort

Event: "open"

當串口打開以及準備進行寫入時,open 事件將會無參回調。 如果碰巧如果你有構造函數立即打開或者如果你通過open()手動打開串口。查看 Useage/Opening a Port 了解更多信息.

Kind: 事件由此觸發 SerialPort

Event: "data"

data 事件輸出字符串到串口在流動模式中. 一旦被接受到,數據就會被發出。 數據將會是一個緩存對象,很多不同的數據量在其中.readLine解析器將數據轉換成字符串.查看 parsers部分了解關于解析器的更多信息以及 NodeJS stream documentation 了解更多關于數據事件的信息.

Kind: 事件由此觸發 SerialPort

Event: "disconnect"

disconnect 事件回調會調用一個錯誤對象. 這個經常發生在 close 事件之前如果斷開連接被發現。

Kind: 事件由此觸發SerialPort

Event: "close"

close事件是無參回調當串口被關閉時. 當一個錯誤發生,錯誤事件將被觸發。

Kind: 事件由此觸發 SerialPort

SerialPort.Binding : BaseBinding

Binding是node Serialport底層的系統. 默認的我們自動檢測 windows, Linux 和 OSX系統 以及為你系統加載合適的模塊. 你可以指定 SerialPort.Binding 去綁定任何你喜歡的后臺. 你可以搜索更多信息從 npm.

你也可以禁止自動后臺加載,通過一下代碼實現

var SerialPort = require('serialport/lib/serialport');

SerialPort.Binding = MyBindingClass;

Kind: 靜態性能SerialPort

Since: 5.0.0

SerialPort.parsers : object

默認的分析程序是Transform streams 可以用各種各樣的方式來解析數據,可以被使用來處理傳入的數據。

使用各種解析程序你都需要創建他們然后輸送SerialPort到解析程序。千萬別編寫解析程序,而是編寫SerialPort對象。

Kind: 靜態特性SerialPort

Since: 5.0.0

Properties

名稱

狀態

描述

ByteLength

Class

發出數據的轉換流作為緩存,在收到一個特定的字節數后

Delimiter

Class

發出數據的轉換流,每次接受一個字節序列

Readline

Class

發出數據的轉換流,在收到一個換行符之后

例子

var SerialPort = require('serialport');

var Readline = SerialPort.parsers.Readline;

var port = new SerialPort('/dev/tty-usbserial1');

var parser = new Readline();

port.pipe(parser);

parser.on('data', console.log);

port.write('ROBOT PLEASE RESPOND\n');

// 可以縮短創建的解析程序和傳輸管道

var parser = port.pipe(new Readline());

使用字節長度解析器,你必須提供字節數的長度:

var SerialPort = require('serialport');

var ByteLength = SerialPort.parsers.ByteLength

var port = new SerialPort('/dev/tty-usbserial1');

var parser = port.pipe(new ByteLength({length: 8}));

parser.on('data', console.log);

使用分隔符解析器你必須指明分隔符,你必須在一個字符串、緩存或者一個字節數組中提供一個分隔符:

var SerialPort = require('serialport');

var Delimiter = SerialPort.parsers.Delimiter;

var port = new SerialPort('/dev/tty-usbserial1');

var parser = port.pipe(new Delimiter({delimiter: new Buffer('EOL')}));

parser.on('data', console.log);

使用換行符解析器,你必須提供一個分隔符 (默認是 '\n')

var SerialPort = require('serialport');

var Readline = SerialPort.parsers.Readline;

var port = new SerialPort('/dev/tty-usbserial1');

var parser = port.pipe(Readline({delimiter: '\r\n'}));

parser.on('data', console.log);

SerialPort.list(callback) : function

從元數據中找回可用的串口列表. 只有“串口名”是可用的,所有其他的字段如果它們不可用,將會無意義。 串口名 也是一個路徑或者一個標識符(例如 COM1)用來打開串口.

Kind: 靜態方法 SerialPort

參數

類型

callback

listCallback

例子

// 示例的串口信息

{

comName: '/dev/cu.usbmodem1421',

manufacturer: 'Arduino (www.arduino.cc)',

serialNumber: '757533138333964011C1',

pnpId: undefined,

locationId: '0x14200000',

vendorId: '0x2341',

productId: '0x0043'

}

var SerialPort = require('serialport');

SerialPort.list(function (err, ports) {

ports.forEach(function(port) {

console.log(port.comName);

console.log(port.pnpId);

console.log(port.manufacturer);

});

});

SerialPort~BaseBinding

你永遠不能直接使用Binding對象,因為它們通過SerialPort來接觸底層硬件. 這個文檔是針對綁定不同平臺的用戶.這個類能被繼承來為每個方法進行類型檢查.

Kind: 內部類 SerialPort

Since: 5.0.0

Properties

名稱

類型

描述

isOpen

boolean

必須的屬性. 串口打開就是true , 其他的是false.只讀.

~BaseBinding

instance

.close() ? Promise

.read(data, length) ? Promise

.write(data) ? Promise

.update([options]) ? Promise

.set([options]) ? Promise

.get() ? Promise

.flush() ? Promise

.drain() ? Promise

static

.list() ? Promise

new BaseBinding(options)

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

參數

類型

描述

options

object

options.disconnect

function

當binding被檢測到一個沒連接的串口,方法將會被調用. 這個方法應該在所有操作期間調用,而不是在操作正?;卣{后調用。SerialPort 將試圖調用 close在斷開連接后,以及會忽視所有錯誤.

baseBinding.open(path, openOptions) ? Promise

通過路徑打開一個引用的串口連接

Kind: 實例方法BaseBinding

Returns: Promise - 在串口打開和配置好后返回解決.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

參數

類型

path

string

openOptions

openOptions

baseBinding.close() ? Promise

關閉一個串口連接

Kind: 實例方法 BaseBinding

Returns: Promise - 一旦串口被關閉返回解決.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

baseBinding.read(data, length) ? Promise

從SerialPort請求一個字節數。這個方法和node的 fs.read相似.

Kind: 實例方法 BaseBinding

Returns: Promise -在閱讀操作結束之后返回讀取的字節數.

Throws:

TypeError當給定一個無效的參數,將會拋出TypeError錯誤.

Params: integer 偏移 - 在緩存區偏移處開始寫入.

參數

類型

描述

data

buffer

length

integer

讀取指定的最大字節數

baseBinding.write(data) ? Promise

向SerialPort寫入一個字節數,這將只能在沒有等待寫入的操作時被調用.

Kind: 實例方法 BaseBinding

Returns: Promise - 在數據傳遞給操作系統編寫后返回.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

參數

類型

描述

data

buffer

baseBinding.update([options]) ? Promise

改變開啟的串口的連接設置。當前只能設置波特率。

Kind: 實例方法 BaseBinding

Returns: Promise - 當串口波特率被改變后返回.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

參數

類型

描述

[options]

object

目前只有波特率支持

[options.baudRate]

number

如果通過bingdings提供一個不支持的波特率,它將回調一個錯誤。

baseBinding.set([options]) ? Promise

設置一個打開的串口的控制標志。

Kind: 實例方法BaseBinding

Returns: Promise - 在串口的標識被設置后返回.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

參數

類型

默認

描述

[options]

object

當串口被打開時,所有設置都是操作系統的默認設置. 每個標識都被設置成每次調用時提供的或者默認的數值。所有設置通常都是被提供的.

[options.brk]

Boolean

false

[options.cts]

Boolean

false

[options.dsr]

Boolean

false

[options.dtr]

Boolean

true

[options.rts]

Boolean

true

baseBinding.get() ? Promise

從打開的串口中獲得控制標識(CTS, DSR, DCD).

Kind: 實例 BaseBinding

Returns: Promise - 當標識被獲取后返回.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

baseBinding.flush() ? Promise

接收到的沖洗 (丟棄)的數據不會被讀寫也不會傳輸.

Kind: 實例方法 BaseBinding

Returns: Promise - 當沖洗操作結束后返回.

Throws:

TypeError 當給定一個無效的參數,將會拋出TypeError錯誤.

baseBinding.drain() ? Promise

耗盡等待所有輸出數據被傳輸到串口后.

Kind: instance method of BaseBinding

Returns: Promise - 耗盡操作結束后調用.

Throws:

TypeError當給定一個無效的參數,將會拋出TypeError錯誤.

BaseBinding.list() ? Promise

從元數據中找回可用的串口列表. 只有“串口名”是可用的,所有其他的字段如果它們不可用,將會無意義。 串口名 也是一個路徑或者一個標識符(例如 COM1)用來打開串口.

Kind: 實例方法 BaseBinding

Returns: Promise - 串口列表數組info objects.

SerialPort~errorCallback : function

錯誤或者null的回調

Kind: 內部類型定義 SerialPort

參數

類型

error

error

SerialPort~modemBitsCallback : function

控制標識(cts, dsr, dcd)一個錯誤或者對象產生回調.

Kind: 內部類型定義 SerialPort

參數

類型

默認

error

error

status

object

[status.cts]

boolean

false

[status.dsr]

boolean

false

[status.dcd]

boolean

false

SerialPort~openOptions : Object

Kind: 內部類型定義 SerialPort

Properties

名稱

類型

默認

描述

Binding

module:serialport~Binding

硬件訪問綁定, 綁定是node SreialPort如何和底層系統通信.默認的,我們自動判斷Windows (WindowsBinding), Linux (LinuxBinding) 和 OSX (DarwinBinding)系統,以及加載合適我們系統的模塊.

autoOpen

boolean

true

在 nextTick自動打開串口

lock

boolean

true

防止其他進程打開串口. 目前不支持Windows系統.

baudRate

number

9600

已經打開的串口的波特率. 這個應該匹配一個常用的波特率,比如 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. 這些是不確定的, 設備連接到串口上將支持請求的波特率,即使串口自己支持那個波特率。

dataBits

number

8

必須是其中之一: 8, 7, 6, or 5.

stopBits

number

1

必須是其中之一: 1 or 2.

highWaterMark

number

16384

讀寫緩存區大小,默認是 16k

parity

string

"none"

必須是其中之一: 'none', 'even', 'mark', 'odd', 'space'

rtscts

boolean

false

流控制設置

xon

boolean

false

流控制設置

xoff

boolean

false

流控制設置

xany

boolean

false

流控制設置

bindingOptions

object

設置特定的綁定選項

bindingOptions.vmin

number

1

查看man termios LinuxBinding和 DarwinBinding

bindingOptions.vtime

number

0

查看man termios LinuxBinding 和 DarwinBinding

SerialPort~listCallback : function

這個回調類型叫做 requestCallback,作為一個全局標識展示。

Kind: 內部類型定義 SerialPort

參數

類型

描述

error

error

ports

array

串口信息的對象數組

命令行工具

如果你全局安裝了 serialport. (例如 npm install -g serialport) 你會獲得兩個命令行工具.

串口列表

serialport-list 將會通過不同的格式列出所有可用的串口.

$ serialport-list -h

Usage: serialport-list [options]

List available serial ports

Options:

-h, --help 輸出幫助信息

-V, --version 輸出版本號

-f, --format 輸出的格式: text, json, or jsonline. 默認的是: text

$ serialport-list

/dev/cu.Bluetooth-Incoming-Port

/dev/cu.usbmodem1421 Arduino (www.arduino.cc)

$ serialport-list -f json

[{"comName":"/dev/cu.Bluetooth-Incoming-Port"},{"comName":"/dev/cu.usbmodem1421","manufacturer":"Arduino (www.arduino.cc)","serialNumber":"752303138333518011C1","locationId":"0x14200000","vendorId":"0x2341","productId":"0x0043"}]

$ serialport-list -f jsonline

{"comName":"/dev/cu.Bluetooth-Incoming-Port"}

{"comName":"/dev/cu.usbmodem1421","manufacturer":"Arduino (www.arduino.cc)","serialNumber":"752303138333518011C1","locationId":"0x14200000","vendorId":"0x2341","productId":"0x0043"}

串口終端

serialport-term 提供基礎的命令的接口給一個串口通信使用。 通過ctrl+c退出.

$ serialport-term -h

Usage: serialport-term -p [options]

A basic terminal interface for communicating over a serial port. Pressing ctrl+c exits.

Options:

-h, --help 輸出幫助信息

-V, --version 輸出版本號

-l --list 列出可用串口然后退出

-p, --port, --portname 串口的路徑或者名稱

-b, --baud 波特率,默認是: 9600

--databits 數據字節 默認是: 8

--parity 奇偶性,默認是: none

--stopbits 停止位,默認是: 1

--echo --localecho 打印類型,你輸入它們時.

$ serialport-term -l

/dev/cu.Bluetooth-Incoming-Port

/dev/cu.usbmodem1421 Arduino (www.arduino.cc)

總結

以上是生活随笔為你收集整理的php hex2bin nodejs,Nodejs Serialport文档翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。