canboat / canboatjs

Native javascript NMEA 2000 decoder and encoder
Apache License 2.0
98 stars 41 forks source link

Restart interface in canboatjs? #193

Closed preeve9534 closed 2 months ago

preeve9534 commented 2 years ago

This relates in some way to #145.

The canboatjs driver in my Signal K server periodically dies: in the host Signal K dashboard I see interface throughput summarily drop to 0 deltas/s. N2K PGN logging and manipulation of canboatjs's debug features has not provided enough information to definitively identify the cause of the problem.

I now have a simple Signal K watchdog plugin that monitors throughput on a CAN interface and reboots Signal K when this falls to some threshold (for example 0 deltas per second). I'm wondering if I could be more subtle.

Is there a way of reloading / restarting canboatjs in a Signal K context without rebooting the host application?

naugehyde commented 1 year ago

I'm seeing this behavior periodically with a Pican-M hat (CAN0 -> canboatjs). The problem is most noticeable when I'm running signalk-rpi-monitor at a refresh high frequency. It's currently a mystery what precisely is causing the problem but a reliable solution was to set the noDataReceivedTImeout for canboatjs in settings.json. See: https://github.com/SignalK/signalk-server/issues/1626#issuecomment-1722595149