Posts: 4
Threads: 1
Joined: Apr 2025
Reputation:
0
2025-04-22, 07:50 PM
(This post was last modified: 2025-04-22, 09:53 PM by kuddel1234.
Edit Reason: typo
)
Hi,
I have installed OpenPlotter 4 on a Raspberry Pi 5. Both are connected to the NMEA 2000 network on my boat via an ActiSense NGT-1.
When I try to set up the NGT-1 via CAN Bus 4.1.0 to open the PGN 129284 (Navigation Data), I cannot check/uncheck the boxes in the "Open TX PGNs" dialog. It simply doesn't work. As if the CheckListCtrl is somehow deactivated/made passive.
As background: what I am trying to achieve is that when I activate a route in OpenCPN, that the corresponding BTW and DTW for the next waypoint are displayed on a Raymarine i70s display that is connected to the NMEA 2000 network. With the previous installation that I had (OP 3 on Raspi 4) this worked just fine. Also now, judging by SignalK's server logs all looks good: OpenCPN sends the RMB sentence with all correct data, SignalK's sk-to-n2k plugin translates and submits the corresponding PGN 129284 correctly - only the display doesn't want to show the data. And when I try to configure the NGT-1, the above mentioned weird behaviour appears. And when I look at the code of the CAN Bus in Github, it looks like when I click "Apply" the program looks at all checkboxes, finds that they are all unchecked, and hence tells the interface to close all PGNs...
Does anybody have a clue what I do wrong? Or has anybody come across the same / a similar issue?
Appreciate your help!
Thanks and regards
Posts: 4
Threads: 1
Joined: Apr 2025
Reputation:
0
Hi,
I digged a little deeper into the issue - started the CAN Bus app from the shell and got this warning message:
Code: /usr/lib/python3/dist-packages/wx/lib/mixins/listctrl.py:723: UserWarning: The CheckListCtrlMixin class has been made redundant by new checkbox features in the wx.ListCtrl class. It is advised to switch your code to use that instead of this mixin.
A quick google search on this resulted in several posts that there is an issue with a new version of wxPython - that when using the CheckListCtrlMixin the checkboxes won't work (e.g. hereĀ ).
To be honest, I am not sure if implementing a fix for this is beyond my Python skills (actually, I am more or less it is...) - so question is will this be considered in an update to the CAN Bus App rather soon? Would really be great!!
Update on my actual problem: I have now opened the TX PGN 129284 via the NMEA Reader from Actisense, but now somehow SignalK sends multiple different waypoints at the same time (with time difference of <100ms) to the bus - strnge, but I will hopefully find a solution to that...
Posts: 4
Threads: 1
Joined: Apr 2025
Reputation:
0
(2025-04-27, 12:10 PM)kuddel1234 Wrote: Hi,
I digged a little deeper into the issue - started the CAN Bus app from the shell and got this warning message:
Code: /usr/lib/python3/dist-packages/wx/lib/mixins/listctrl.py:723: UserWarning: The CheckListCtrlMixin class has been made redundant by new checkbox features in the wx.ListCtrl class. It is advised to switch your code to use that instead of this mixin.
A quick google search on this resulted in several posts that there is an issue with a new version of wxPython - that when using the CheckListCtrlMixin the checkboxes won't work (e.g. hereĀ ).
To be honest, I am not sure if implementing a fix for this is beyond my Python skills (actually, I am more or less it is...) - so question is will this be considered in an update to the CAN Bus App rather soon? Would really be great!!
Update on my actual problem: I have now opened the TX PGN 129284 via the NMEA Reader from Actisense, but now somehow SignalK sends multiple different waypoints at the same time (with time difference of <100ms) to the bus - strnge, but I will hopefully find a solution to that...
Hi all,
turns out that actually it seems I could solve this myself - in the end, all one has to do is to tweak the code just a little bit so that the new ListCtrl functionality is used directly.
Here is what I did: (all in openplotterCan.py) - Line 1132-1139 - deleted (commented out) the class CheckListCtrl completely
- Line 1167: replaced that line by the following:
Code: #delete this line:
#self.list_N2K = CheckListCtrl(panel, -1,240)
#add this instead:
self.list_N2K = wx.ListCtrl(panel, -1, style=wx.LC_REPORT, size=(240, 240))
self.list_N2K.EnableCheckBoxes(True)
...and I think that was it! Could only test it at home on a Raspi4, and I do not have the actual NGT-1 etc here, but I tested with some dummy functions and manual data, and I believe it should work also on the live system. Will let you know once I could confirm it (probably over the weekend).
But how to get this into an update (in case it should work) is now really beyond me...
Anyway, I hope this can be helpful to somebody who had the same problem as me!
BR
Posts: 3,204
Threads: 66
Joined: Mar 2016
Reputation:
310
I have added an issue to github: https://github.com/openplotter/openplotter-can/issues/7
I will try to fix it ASAP but not NGT-1 in hand right now.
Posts: 4
Threads: 1
Joined: Apr 2025
Reputation:
0
Thanks Sailoog!
In the meantime, I can confirm that the solution in my post above did the trick - tested over the weekend.
With one important addition: the method to check, if an item is actually checked or not, was called "isChecked" in the CtrlListItem - but it is called "isItemChecked" in the ListCtrl.
Therefore, this also needs to be changed in the code a little further down, I believe in the method "apply" (lines 1232 and 1253).
With those changes, this now works perfectly for me! NGT-1 can be nicely configured to send the 129284 (Navigation Data) to SeatalkNG, and the multi-display in the cockpit shows the DTW and BTW again. Super!
BR
Posts: 2
Threads: 1
Joined: Mar 2026
Reputation:
0
(2025-05-05, 03:44 PM)kuddel1234 Wrote: Thanks Sailoog!
In the meantime, I can confirm that the solution in my post above did the trick - tested over the weekend.
With one important addition: the method to check, if an item is actually checked or not, was called "isChecked" in the CtrlListItem - but it is called "isItemChecked" in the ListCtrl.
Therefore, this also needs to be changed in the code a little further down, I believe in the method "apply" (lines 1232 and 1253).
With those changes, this now works perfectly for me! NGT-1 can be nicely configured to send the 129284 (Navigation Data) to SeatalkNG, and the multi-display in the cockpit shows the DTW and BTW again. Super!
BR
Hello kuddel1234, just wanted to say thank you, as exactly (!) one year after you shared your solution it still comes in handy (probably, didn't apply yet!)
|