Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

B&G display reconciliation issue, missing values after SignalK server reboot #284

Open
mrstas opened this issue Oct 20, 2024 · 1 comment

Comments

@mrstas
Copy link

mrstas commented Oct 20, 2024

Hi
I have B&G Triton2 multi-function display. It has a feature that you can map selected parameter value to specific source. For example if you have multiple GPS sources in nmea2000 network you can select specific device you nominate for reading those values.
So there is the issue: in my setup I have position mapped to be received from SignalK server. After mapping it work absolutely fine till I reboot RaspberryPi. After reboot I've got 2 records of SignalK server in the device list (one of them will diapers after a while) and in mapping menu my previously selected Signalk connection is marked as OFFLINE. So B&G Triton2 device can't reconcile (match) two SignalK instances (before and after reboot). This leads to missing values on display.
I did a bit of testing and found these 2 issues causing this problem:

  1. When requesting address claim we are passing 999 as manufacturing code But I think it is incorrect, we need to send manufacturer name as a string, just like in this example
    When value is 999 then B&G reports manufacturer as "Unknown", if value is any text from this list then it display same value, if string is not from that list (f.e. 'canboat') then B&G report it as "internal"
  2. New device unique number is generating every time we are connecting to network This line overwrites previously set value here

So after putting canboat instead of 999 here and commenting out this line that generate new unique id every time I was able to fix issue on B&G display. I think we can set unique number to be equal to serial number as a solution instead of hardcoding fixed value or generating random number.
This may fix this issue as well (SignalK/signalk-to-nmea2000#58)

@mrstas
Copy link
Author

mrstas commented Oct 22, 2024

my bad, Manufacturer Code should be a number, old test is reffering to commented out code. After testing I have found that 0 is acceptable code that appears as "Internal" manufacturer on B&G display, codes outside of codesMfgs.json appears as "Unknown" and does not work. So setting mfg code to 0 instead of 999 partially resolve the issue. As for setting Unique Number I've tried to move that functionality to SignalK server provider configuration (similar to this 5c783fd) and have found that in current code options.uniqueNumber is never passed from SignalK server (even if it set here https://github.com/SignalK/signalk-server/pull/1026/commits) and device serial number is always defaulting to 0000001
@tkurki appreciate any help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant