node-serialport ライブラリはハッピー パスの状況で正常に動作していますが、エラー処理に対処したいと考えています。
現時点で取り組んでいる特定のテスト ケースは、単にシリアル デバイスが接続されていないということです。理想的には、問題が存在することを検出し、少し遅れてから再試行することができます。
問題は、次のエラーが発生し続けることです。
events.js:72
throw er; // Unhandled 'error' event
Error: cannot open /dev/ttyACM0
デバイスが接続されていないため、このようなことが予想されますが、キャッチする必要があります。try/catch は非同期であるため、明らかに機能しません。したがって、推奨される方法のように見える「ドメイン」を試しています。
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);
});
});
}
これで目的の効果が得られると期待していますが、上記と同じエラーが発生します。
私が得ていないものを見ている人はいますか?