Electron項(xiàng)目中使用SerialPort串口功能

初始化Electron項(xiàng)目

  1. 新建serialport_demo文件夾源哩,并cd進(jìn)入該文件夾
  2. 執(zhí)行vue init,按照提示一步一步初始化配置
  3. 安裝electron依賴項(xiàng)
    npm install electron
    

安裝串口依賴項(xiàng)

  1. 安裝串口
    npm install serialport –save
    
  2. 安裝electron-rebuild识腿,因?yàn)榇趲?kù)是npm提供的原生庫(kù),需要使用electron-rebuild重新編譯后才能實(shí)現(xiàn)跨平臺(tái)
    npm install –save-dev electron-rebuild
    
  3. 配置編譯環(huán)境造壮,需使用管理員權(quán)限運(yùn)行
    npm install –global –production windows-build-tools
    
    (如果配置失敗請(qǐng)點(diǎn)擊此處)
  4. 編譯串口庫(kù)
    .\node_modules\.bin\electron-rebuild.cmd
    
    (如果編譯失敗請(qǐng)點(diǎn)擊此處)

編寫業(yè)務(wù)代碼

  1. 新建index.html文件渡讼,自定義html結(jié)構(gòu)
  2. 打開(kāi)package.json文件,將其中的index.js改為main.js
  3. 新建main.js文件耳璧,文件內(nèi)容如下
     const Serialport = require("serialport");
     const {app, BrowserWindow} = require('electron');
    
     function createWindow() {
         const win = new BrowserWindow({
             width: 800,
             height: 600
         })
         win.loadFile('index.html');
     }
    
     app.whenReady().then(() => {
         createWindow();
    
         var serialport = new Serialport('COM14', {
             baudRate: 115200,
             autoOpen: false
         });
         // 打開(kāi)串口
         serialport.open(err => {
             console.log('IsOpen: ', serialport.isOpen);
             console.log('Err: ', err);
             if (!err) {
    
             }
         });
         // 監(jiān)聽(tīng)串口數(shù)據(jù)
         // serialport.on('data', data => {
         //     console.log('data received: ', data)
         // })
         // 獲取串口列表
         Serialport.list().then(ports => {
             ports.forEach(port => {
                 console.log(port.path);
                 console.log(port.serialNumber);
                 console.log(port.pnpId);
                 console.log(port.manufacturer);
             });
         })
     })
    

可能遇到的問(wèn)題

  1. <h5 id="build_config_issue">配置編譯環(huán)境時(shí)卡在了Python配置</h5>
    導(dǎo)致該問(wèn)題的原因是你的電腦已經(jīng)安裝了Python2.7.15成箫,無(wú)需重新安裝,但是配置腳本沒(méi)有跳過(guò)該步驟楞抡,導(dǎo)致卡住伟众。解決辦法是手動(dòng)跳過(guò)該步驟,方法如下:

    1. 在任務(wù)管理器地址欄輸入%Temp%召廷,回車進(jìn)入Temp文件夾
    2. 新建dd_client_.log文件,文件內(nèi)容如下(不要忘記最后的一個(gè)點(diǎn))
      Closing installer. Return code: 3010.
      
    3. 重新執(zhí)行配置步驟即可跳過(guò)Python配置
  2. <h5 id="build_issue">編譯時(shí)出現(xiàn)動(dòng)態(tài)庫(kù)鏈接錯(cuò)誤</h5>
    導(dǎo)致該問(wèn)題的原因是由于網(wǎng)絡(luò)太差導(dǎo)致node.lib沒(méi)有正確下載账胧,解決辦法是手動(dòng)下載node.lib竞慢,方法如下:

    1. 打開(kāi)node官方提供的動(dòng)態(tài)庫(kù) https://nodejs.org/download/release/v17.0.0/win-x64/ ,注意版本號(hào)v17.0.0需要與你的electron版本號(hào)保持一致治泥,下載其中的node.lib
    2. 將node.lib放到該文件夾下 C:/user/用戶名/.electron-gyp/17.0.0/x64
    3. 重新執(zhí)行編譯步驟
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筹煮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子居夹,更是在濱河造成了極大的恐慌败潦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件准脂,死亡現(xiàn)場(chǎng)離奇詭異劫扒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)狸膏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沟饥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事贤旷」懔希” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵幼驶,是天一觀的道長(zhǎng)艾杏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盅藻,這世上最難降的妖魔是什么购桑? 我笑而不...
    開(kāi)封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮萧求,結(jié)果婚禮上其兴,老公的妹妹穿的比我還像新娘。我一直安慰自己夸政,他們只是感情好元旬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著守问,像睡著了一般匀归。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耗帕,一...
    開(kāi)封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天穆端,我揣著相機(jī)與錄音,去河邊找鬼仿便。 笑死体啰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗽仪。 我是一名探鬼主播荒勇,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闻坚!你這毒婦竟也來(lái)了沽翔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤窿凤,失蹤者是張志新(化名)和其女友劉穎仅偎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體雳殊,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橘沥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了相种。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片威恼。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡品姓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出箫措,到底是詐尸還是另有隱情腹备,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布斤蔓,位于F島的核電站植酥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏弦牡。R本人自食惡果不足惜友驮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驾锰。 院中可真熱鬧卸留,春花似錦、人聲如沸椭豫。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赏酥。三九已至喳整,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裸扶,已是汗流浹背框都。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呵晨,地道東北人魏保。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像摸屠,于是被迫代替她去往敵國(guó)和親囱淋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容