首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用具有serialport-node的域

使用具有serialport-node的域
EN

Stack Overflow用户
提问于 2014-07-01 09:48:59
回答 1查看 303关注 0票数 0

我让node-serialport库在愉快路径的情况下工作得很好,但我想解决错误处理问题。

我目前正在处理的特定测试用例是串行设备没有插入电源。理想情况下,我应该能够检测到存在问题,然后在短暂的延迟后重试。

问题是我一直收到以下错误:

代码语言:javascript
复制
events.js:72
  throw er; // Unhandled 'error' event

Error: cannot open /dev/ttyACM0

我预计会出现这样的情况,因为设备没有插入,但我需要捕获它。try/catch显然不起作用,因为它是异步的。所以我尝试使用"domain",这似乎是推荐的方式:

代码语言:javascript
复制
function reconnect() {
    var d = domain.create();

    d.on("error", function(err) {
        console.error(err);
        setTimeout(reconnect, RETRY_DELAY_MS);
    });

    d.run(function() {
        var gps = new SerialPort("/dev/ttyACM0");

        gps.on("open", function() {
            console.log("Success!");
        });

        gps.on("error", function(err) {
            console.error(err);
            setTimeout(reconnect, RETRY_DELAY_MS);
        });
    });
}

我希望这会有预期的效果,但我得到了与上面相同的错误。

有没有人看到我没看懂的东西?

EN

回答 1

Stack Overflow用户

发布于 2014-08-01 12:16:24

诀窍是在实例化SerialPort对象时提供回调

代码语言:javascript
复制
var serial = new serialPort("/dev/ttyUSB0", { baudrate : 115200 },
  function(error) {
     if(error)
     {
      console.log("INIT ERROR: " + error.message + "\n");
     }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24501389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档