Узел: SerialPort не является конструктором - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь подключиться к последовательному порту моего Raspberry pi через узел, но когда я запускаю файл js, возникает эта ошибка:

    var serialport = new SerialPort("/dev/ttyAMA0", {
                 ^

TypeError: SerialPort is not a constructor
    at Object.<anonymous> (/home/pi/exploringrpi/chp13/xbee/nodejs/test.js:12:18)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

узел - в версии 8.11.4, последовательный порт - в версии 7.0.2

Это код:

// From the example code at www.npmjs.com/package/xbee-api
var util       = require('util');
var SerialPort = require('serialport').SerialPort;

var xbee_api   = require('xbee-api');
var C          = xbee_api.constants;

var xbeeAPI = new xbee_api.XBeeAPI({
  api_mode: 1
});

var serialport = new SerialPort("/dev/ttyAMA0", {
        baudRate: 115200});
serialport.on("open", function() {
  var frame_obj = {                 // AT Request to be sent to
    type: C.FRAME_TYPE.AT_COMMAND,  // Prepare for an AT command
    command: "NI",                  // Node identifer command
    commandParameter: [],           // No parameters needed
  };
  serialport.write(xbeeAPI.buildFrame(frame_obj));
});

// The data frames are outputted by this function
xbeeAPI.on("frame_object", function(frame) {
    console.log(">>", frame);
});

Надеюсь, вы поможете

1 Ответ

0 голосов
/ 27 сентября 2018

Вероятно, вам следует удалить .SerialPort в конце строки запроса:

var SerialPort = require('serialport').SerialPort;

Документация последовательного порта показывает, как его следует использовать, а это не таквключите это .SerialPort в конце:

var SerialPort = require('serialport');
var port = new SerialPort('/dev/ttyAMA0', {
  baudRate: /dev/ttyAMA0
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...