-
Notifications
You must be signed in to change notification settings - Fork 30
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
Missing "ais.sensors.class" values for AIS related PGN's #227
Comments
@tkurki Please note if we can help in any way. |
Thanks for the heads up on this! Please check the linked PR for adding these. |
Values other than BTW does OpenCPN make use of the |
@tkurki
Yes please. In the same way as of "NMEA018 to SK". See JSON example in attached picture and below how we use it in OCPN.
|
About the PR. As you may have seen we have a user, TVR, who can test it once SK is updated with these changes. |
A thought...
but is there anything in "N2k - signalk" to detect and set the "sensors.ais.class" if other applications may have use of that? |
Would I make new issue for the above? |
virtual and offPosition are already there for PGN 129041 n2k-signalk/test/129041_aton_report.js Lines 21 to 22 in 4b56bf4
|
Is SART a real AIS class, if it is just derived from MMSI? MMSI number is available in the delta message's context, maybe O could use the same logic on that? |
Published as @signalk/n2k-signalk@2.3.1. If you rerun your sk server's installation it should update n2k-signalk package to 2.3.1 |
virtual/offposition... Sorry I missed. Your faster than............ Many thanks for the update and your excellent service! |
Don't confuse SAR with SART ! SAR (Search and Rescue Aircraft) should be derived from PGN 129798 (equivalent to VDM Message 9). I would have thought that SignalK should set the value for "sensors.ais.class" as 'SAR', although from what I can see, instead the context is "aircraft.urn:mrn:imo:mmsi:" In anycase OpenCPN should display a SAR target as a little aeroplane! AIS SART (Search and Rescue Transponder) as well as AIS MOB (Man Overboard) and AIS EPIRB (Emergency Position Indicating Radio Beacon) are derived from PGN 129038. I think (and Hakan will correct me), that OpenCPN checks the MMSI prefix to see if it matches that for a SART, MOB or EPIRB devices and if it matches, displays the target differently to that of a normal vessel. As OpenCPN does the parsing to differentiate AIS SART, MOB or EPIRB, perhaps little point in SignalK doing the same parsing and setting the value of "sensors.ais.class" to something more appropriate, but from a viewpoint of completeness, perhaps SignalK should do so, to make it easy for third party apps to rely on a single mechanism to differentiate the types of AIS devices. BTW, you could further check the validity of SAR, AToN, AIS SART, MOB & EPIRB devices as they have specific MMSI prefixes. |
@TwoCanPlugIn |
Missing "ais.sensor.class" values for the following NMEA 2000 PGN's:
129038 Class A Position Report - 'A'
129039 Class B Position Report - 'B'
129040 Extended Class B Position Report - 'B'
129041 Aid To Navigation (AToN) Report - 'ATON'
129793 Base Station Report - 'BASE'
129798 SAR Position Report - 'SAR'
The values appear to be correctly generated for the following NMEA 2000 PGN's
129794 Class A Static and Voyage Related Data
129809 Class B Static Data Report Part A
129810 Class B Static Data Report Part B
They are also correctly generated from NMEA 0183 derived AIS data.
Impact: OpenCPN incorrectly displays AIS targets when using SignalK and the AIS data is received from a NMEA 2000 connected transponder as the 'ais.sensors.class' values are missing.
Eg. AToN report derived from NMEA 0183:
{
"context" : "atons.urn:mrn:imo:mmsi:995036044",
"updates" : [
{
"source" : {
"talker" : "AI",
"label" : "183TCP",
"sentence" : "VDM",
"type" : "NMEA0183"
},
"$source" : "183TCP.AI",
"timestamp" : "2021-12-26T16:29:32.511Z",
"values" : [
{
"path" : "",
"value" : {
"mmsi" : "995036044"
}
},
{
"path" : "",
"value" : {
"name" : "TB2"
}
},
{
"path" : "navigation.position",
"value" : {
"latitude" : -38.10014167,
"longitude" : 144.3819833
}
},
{
"path" : "sensors.ais.class",
"value" : "ATON"
},
{
"path" : "atonType",
"value" : {
"name" : "Beacon, Starboard Hand",
"id" : 14
}
},
{
"path" : "offPosition",
"value" : false
},
{
"path" : "virtual",
"value" : true
}
]
}
]
}
compare with AToN report derived from NMEA2000.
{
"context" : "atons.urn:mrn:imo:mmsi:995036044",
"updates" : [
{
"source" : {
"src" : "43",
"label" : "N2K",
"pgn" : 129041,
"type" : "NMEA2000"
},
"$source" : "N2K.43",
"timestamp" : "2021-12-26T15:38:19.794Z",
"values" : [
{
"path" : "",
"value" : {
"name" : "TB2@@@@@@@@@@@@@@@@@"
}
},
{
"path" : "navigation.position",
"value" : {
"latitude" : -38.1001416,
"longitude" : 144.3819833
}
},
{
"path" : "atonType",
"value" : {
"name" : "Beacon, Starboard Hand",
"id" : 14
}
},
{
"path" : "virtual",
"value" : true
},
{
"path" : "offPosition",
"value" : false
},
{
"path" : "",
"value" : {
"mmsi" : "995036044"
}
}
]
}
]
}
The text was updated successfully, but these errors were encountered: