node.js調試串口,nodejs編寫後端接口

本文目錄一覽:

node.js 使用serialport打開串口報錯

1. 先判斷在關閉原先串口 com:

if (com != null)

{

com.Close();

}

2. 然後重新new,在打開串口:

com = new System.IO.Ports.SerialPort(strComName); //strComName串口名

com.Open();

// …設置屬性

// …綁定串口接收函數

node-serialport windows下怎麼使用

node-serialport 是一個 Node.js 的包,用來對串口數據進行讀寫操作。

基本示例代碼:

var SerialPort = require(“serialport”).SerialPort

var serialPort = new SerialPort(“/dev/tty-usbserial1”, {

baudrate: 57600

}, false); // this is the openImmediately flag [default is true]

serialPort.open(function (error) {

if ( error ) {

console.log(‘failed to open: ‘+error);

} else {

console.log(‘open’);

serialPort.on(‘data’, function(data) {

console.log(‘data received: ‘ + data);

});

serialPort.write(“ls\n”, function(err, results) {

console.log(‘err ‘ + err);

console.log(‘results ‘ + results);

});

}

});

羅列所有串口:

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);

});

});

串口配置:

baudRate

dataBits

stopBits

parity

rtscts

xon

xoff

xany

flowControl

bufferSize

parser

encoding

dataCallback

disconnectedCallback

platformOptions- sets platform specific options, see below.

nodejs 獲取串口數據

由於項目要求,項目為(B/S)架構 ,需要在頁面上讀取串口數據,於是就需要nodejs了

使用 nodejs 的一個插件 :serialport

現在先做個測試demo

1、先建立測試文件夾 

2、在文件夾中安裝serialport ,在文件夾下的 cmd 中輸入

3、可能會出現 一個警告可用忽略

4、安裝後 編寫讀取串口 js 文件 testport.js

5、運行 js 在文件夾下 cmd 中輸入

執行成功:

可能的問題:

問題一: Flie not found

這個是電腦上沒有安裝串口驅動,或者虛擬串口 

可用 虛擬串口程序

建立測試串口

問題二:Port is opening

需要加入 串口屬性 autoOpen:false

web實現串口調試助手

最近受朋友之託試圖用web前端實現串口調試助手,一開始覺得不太有可行性,以前用過的串口調試助手都是客戶端程序。覺得瀏覽器怎麼會有調用電腦上的串口的功能呢。後來朋友找了幾個資料給我,說網上有人實現,他看不懂。我看了之後恍然大悟,原來是用node。如此萬能。

node 實現操作串口的模塊是一個 serialport 的模塊,網上一搜有很多好文,此處記錄一下實現過程中遇到的一些問題以及解決方法。

一開始被忽略的問題 ,我把 node 服務搭在自己的服務器上,後來返回的串口數組全是一堆令我懵逼的數據。後來想起那是 node 讀取了我的

Linux 服務器的串口,而不是用戶使用的 pc。

由此引出的兩個問題。第一,node 服務必須搭建在用戶使用的 pc 上,因此用戶使用的電腦必須有 node 環境。第二,用戶 pc 一般是 windows 系統, node 的模塊很多在 Linux 上很容易安裝成功,在 Windows 上安裝比較困難。

首先解決的是第二個問題:在Windows上安裝serialport失敗

解決方法: npm install –global –production windows-build-tools

參考鏈接1:

參考鏈接2:

安裝好之後就可以安裝 serialport 模塊了。

解決第一個問題:用戶電腦的 node 環境

解決方法: electron ——使用 JavaScript, HTML 和 CSS 構建跨平台的桌面應用 (官網鏈接: )(w3c: )

使用 electron 搭建的桌面應用可以像平常我們使用的 exe 應用程序一樣直接運行,不需要搭建環境。

npm install -g electron-prebuilt //提示electron-prebuilt已經更名為electron

npm install -g electron //安裝失敗

使用淘寶鏡像安裝問題解決: cnpm install -g electron

參考鏈接:

解決方法: npm install -g electron-rebuild

以後每次重新運行 electron . 的時候再執行一次 “./node_modules/.bin/electron-rebuild` 對原生模塊進行rebuild

參考鏈接:

參考鏈接:

cnpm install -g electron-packager //安裝打包工具

electron-packager . 可執行文件的文件名 –win –out 打包成的文件夾名 –arch=x64位還是32位 –version版本號 –overwrite –ignore=node_modules

因為打包的時候執行的命令帶有 –ignore=node_modules , 即不將 node_modules 裡面的依賴包打包,所以在打包後的新文件中,進入resource 目錄會發現 node_modules 是一個空文件夾,所以自然找不到依賴包。如果去掉打包時的命令參數 –ignore=node_modules ,則需要非常長的打包時間。我的解決方法是將原來 node_modules 文件夾中的相關的依賴包文件複製進打包後的 node_modules 中,雖然是一個比較無腦的方法,每次打包都要拖動相關文件進去,不過我備份了一個 node_modules 文件夾,下一次打包後就把備份的 node_modules 直接複製進去。

node 模塊 ccap : 用於生成驗證碼圖片,可以在 express 後台

res.send(圖片) ,前端的 img 的 src設置為請求這個接口。

ccap的用法可以參考鏈接:

如何調試nodejs

1. 基於Nodejs內建的調試器

Nodejs提供了一個內建調試器來幫助開發者調試應用程序。想要開啟調試器我們需要在代碼中加入debugger標籤,當Nodejs執行到debugger標籤時會自動暫停(debugger標籤相當於在代碼中開啟一個斷點)。代碼如下:

var path = url.parse(req.url).pathname;

debugger;

res.writeHead(200, {‘Content-Type’: ‘text/plain’});

執行命令:node debug example.js 就可以進入調試模式。

在debug模式下,可以使用內建命令如repl去評估變量和表達式的值(如2所示)。我們也可以通過help命令來獲取完整的調試命令列表。

Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),

watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version

2. 基於V8插件的調試器

Nodejs是基於google V8的引擎上構建的,Google為Eclipse提供了一個對應的調試插件。關於如何在Eclipse中安裝和調試Nodejs程序就不再重複描述了,網上已經有很多的文章了(具體可以參考這篇文章)。唯一要注意的是在默認情況下V8引擎支持的調試模式是本地模式。如果想要開啟遠程調試的話,我們需要修改Nodejs中的V8源文件:/deps/v8/src/platform-posix.cc

addr.sin_family = AF_INET;

addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); — INADDR_ANY

addr.sin_port = htons(port);

然後重新編譯Nodejs。

提示:

用插件來調試nodejs程序,你有時候會遇到什麼connect refuse, get version failed等等錯誤。那麼請注意你使用的ip的地址, 一般下127.0.0.1的迴環地址是都工作的。如果你使用真實的ip地址,請檢查防火牆設置。

3. 基於Chrome瀏覽器的調試器

既然我們可以通過V8的調試插件來調試,那是否也可以借用Chrome瀏覽器的JavaScript調試器來調試呢?node-inspector模塊提供了這樣一種可能。我們需要先通過npm來安裝node-inspector

npm install -g node-inspector // -g 導入安裝路徑到環境變量

node-inspector是通過websocket方式來轉向debug輸入輸出的。因此,我們在調試前要先啟動node-inspector來監聽Nodejs的debug調試端口。

默認情況下node-inspector的端口是8080,可以通過參數–web-port=[port]來設置端口。在啟動node-inpspector之後,我們可以通過–debug或–debug-brk來啟動nodejs程序。通過在瀏覽器輸入http://[ip address]:8080/debug?port=5858,我們會得到如下的調試窗口:

這三種方法各自有優缺點,我個人比較欣賞node-inspector的方式。

具體可以參考這個帖子:

原創文章,作者:FAPZM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/315700.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FAPZM的頭像FAPZM
上一篇 2025-01-09 12:13
下一篇 2025-01-09 12:13

相關推薦

  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • Cookie是後端生成的嗎?

    是的,Cookie通常是由後端生成並發送給客戶端的。下面從多個方面詳細闡述這個問題。 一、什麼是Cookie? 我們先來簡單地了解一下什麼是Cookie。Cookie是一種保存在客…

    編程 2025-04-28
  • Avue中如何按照後端返回的鏈接顯示圖片

    Avue是一款基於Vue.js、Element-ui等技術棧的可視化開發框架,能夠輕鬆搭建前端頁面。在開發中,我們使用到的圖片通常都是存儲在後端服務器上的,那麼如何使用Avue來展…

    編程 2025-04-28
  • Python接口自動化測試

    本文將從如下多個方面對Python編寫接口自動化進行詳細闡述,包括基本介紹、常用工具、測試框架、常見問題及解決方法 一、基本介紹 接口自動化測試是軟件測試中的一種自動化測試方式。通…

    編程 2025-04-27
  • 如何解決Node.js中jwt.sign()響應過慢的問題

    本文將從多個方面探討如何解決Node.js中jwt.sign()響應過慢的問題,給出完整的代碼示例與最佳實踐,幫助開發者更好地處理這個問題。 一、問題概述 在使用Node.js編寫…

    編程 2025-04-27
  • 小波特掘金——從前端到後端的全棧開發之路

    本文將從小波特掘金平台的概述、前端和後端技術棧、以及實例代碼等多個方面來探討小波特掘金作為一個全棧開發工程師的必練平台。 一、平台概述 小波特掘金是一個前後端分離式的技術分享社區,…

    編程 2025-04-27
  • Jadoor門鎖開發接口接入指南

    本文將從多個方面詳細介紹如何將門鎖接入Jadoor平台的開發接口,方便開發者們快速實現門鎖遠程控制、開鎖記錄查看等功能。 一、Jadoor門鎖開發接口簡介 Jadoor是一款用於密…

    編程 2025-04-27
  • 後端接口設計開發經驗分享

    在受到前端某些限制或特殊需求時,後端接口的設計和開發顯得尤為重要。下面從以下幾個方面進行講述。 一、命名規範 合理的命名規範可以大大提高接口的可讀性和可維護性。以下是一些命名規範的…

    編程 2025-04-27
  • Python調用串口用法介紹

    本文將從以下幾個方面詳細闡述如何使用Python調用串口進行數據傳輸。 一、Python調用串口的基本知識 在使用Python調用串口之前,需要了解串口的相關知識。 串口是計算機與…

    編程 2025-04-27
  • 期貨數據接口 Python:打通數字資產交易數據的關鍵

    本文將從以下幾個方面討論期貨數據接口 Python: 一、數據接口簡介 期貨數據接口是指為期貨從業人員提供用於獲取歷史、實時及未來交易數據的工具。Python是一種常用的編程語言,…

    編程 2025-04-27

發表回復

登錄後才能評論