0 - OpenCPN - Feature Requests

This is the project for all Feature Requests except the ones concerning plugins. Please add this Feature Requests to the respective plugin project - thanks.

FS#331 - AIS DSC display GPSGate Buddies and DSC Positions

Attached to Project: 0 - OpenCPN - Feature Requests
Opened by PjotrC (pjotrc) - Friday, 07 January 2011, 08:29 GMT-7
Last edited by Serge (AISEAG) - Saturday, 14 September 2013, 11:57 GMT-7
Task Type Feature Request
Category Backend / Core
Status Closed
Assigned To Dave (bdbcat)
Operating System All
Severity Low
Priority Normal
Reported Version future version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


OpenCPN 2.3.1 build 1228 can display GPSGate Buddy List targets and NMEA CDDSC and CDDSE reports next to AIS targets

with the attached changes to


1. The $FRPOS and $CDDSC, $CDDSE sentences are expected in the AIS NMEA stream. Connecting, receiving and multiplexing these with !AIVDx is done externally e.g. by a client program or hardware box.
2. Buddy targets use a fake MMSI internally with MID=199. I expect there should be no real conflicts.
3. $CD targets are yellow if only the DSC was received, green when a matching DSE was received, always red if the message format is Distress.
4. Usual ageing and removal rules apply to DSC targets. Buddy targets are removed only on closing the AIS thread.

This task depends upon

Closed by  Serge (AISEAG)
Saturday, 14 September 2013, 11:57 GMT-7
Reason for closing:  Implemented
Additional comments about closing:  Asked by the initiator : implemented a long ago
Comment by PjotrC (pjotrc) - Saturday, 08 January 2011, 11:36 GMT-7
One thing, that did not make it to the patch - the mechanism removing stationary/slow moving targets should rather be applied to AIS targets only. Therefore in file chcanv.cpp


// Skip anchored/moored (interpreted as low speed) targets if requested
if ( (!g_bShowMoored) && (td->SOG <= g_ShowMoored_Kts)) // dsr


// Skip anchored/moored (interpreted as low speed) targets if requested
if ( (!g_bShowMoored) && (td->SOG <= g_ShowMoored_Kts) // dsr
&& ((td->Class == AIS_CLASS_A)||(td->Class == AIS_CLASS_B)) ) // pjotrc

I am not sure if DSC Distress should be shown regardless of all other settings... I'd say perhaps not, but for ECDIS this would be the required behaviour.
Comment by PjotrC (pjotrc) - Tuesday, 11 January 2011, 03:34 GMT-7
Attached is a supplementary patch adding the above modification, plus

- removing the ambiguity between equal mmsi for AIS and DSC targets (DSC use now negative mmsi internally)
- changing the shape of Buddy icon to a lighter one