-
Notifications
You must be signed in to change notification settings - Fork 48
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
feature: add ais class #160
Conversation
@Hakansv How does this look to you? |
@tkurki The path "sensors.ais.class" will be good. No comments. The rest of our classes can be found out by the mmsi number apart maybe the Inland blue paddle. As mentioned the info can be found in AIS message 3 OCPN AIS decoder |
Ignoring the talker ID was implemented a while ago in the ggencoder that is used to decode VDM, it is working if you have installed recently. Additionally I updated the dependency minimum version and modified a test to make sure. Do you have an example sentence for the blue paddle - whatever it is? |
@tkurki @bdbcat
If Signal would transfer the classes as of above list the only remaining issue would be the inland blue paddle mentioned in earlier post. Again I've not investigated how corresponding N2K messages will apply to this logic. But that may be a part of the SignalK concept since one the goals to implement SK in OCPN would be a path to the N2K world. I'm sorry for this late extension but I think it's essential to try to cover this concept in whole at this early state of implementation? Thanks |
@tkurki |
@tkurki |
A single sentence would be helpful. |
OK, pretty sure it's here. (I'd catch them "on the fly") |
And to be sure the HTML parser didn't changed it. As "code" instead
|
Ok, I have tested to pass !BSVDM sentences through SignalK and it works like a charm. My comment was more due to I not fully understand the use of examples in the code. Thanks.
You saw a rendering example above. It's for Inland traffic signaling "I intend to meet Starboard-Starboard" instead of normal Port-Port. A AIS electronic adption to the old fashion hardware blue paddle out from a window or swinged out on the barge bridge. |
@tkurki |
Sorry.... I was to eager I think. All data appeared after 10 minutes. Sorry. |
Reading up on https://en.wikipedia.org/wiki/Blue_sign... so it is not about A/B as I interpreted you talking about classes that they refer to the AIS A and B class transponders. So as I understand that is more related to the navigational status of the vessel, just available as special manouver being set to value 2. I think we are starting to replicate how OpenCPN works internally in Signal K. I don't think that's the best way to go about it. Take blue sign for example: while it is transmitted over AIS it is really not about AIS - a computer vision system in not so distant future may be able to discern the white flashin light and/or the blue paddle, mark it with special status, paint the vessel blue on the OpenCPN screen and set something like AIS_DSC is not an AIS target but something else: notifications, cancelations, position requests etc that need homes in the Signal K data model - something we have yet to do. AIS_GPSG_BUDDY is a regular (non-self) vessel in the SK data model and the fact that the data came from GpsGate Buddy system should be included in the messages' source information. This is similar to Signal K cloud that Scott is running - O may get data from other vessels via Signal K -native routes. (I am also working on a similar system for next season). Just googling APRS, sounds like something similar. ATON, BASE and SART you already are handling, I assume? Different root paths in SK. ARPA again has nothing to do with AIS, right? So those would be just Hope I am making this clear? To sum this up, the use cases that O-SK integration exposes are really interesting and reflects the long history and comprehensive functionality in O. Stuff I am eager to work with in Signal K, but as this PR is just about AIS status I'll follow this up soon with more separate issues here in nmea0183 parser and in the Signal K specification. |
Teppo... So I think our primary interest in the current work is to ensure that all data which OCPN cares about (and presumably a navigator cares about) are somehow captured from the available sensor streams, and so become available in the sK model somewhere. So, specifics: In the case of BlueFlag, the sensor source which the sK NMEA parser has access to now is AIS VDM message from NMEA0183 channel. We would be happy if that information were to be encoded as a navigation.status field, as you note. And we could say the same thing about other attributes or message types such as AIS_DSC, GPS_BUDDY, etc. I realize that this rich source of sensor data available from VDM messages will lead to non-trivial extensions to the sK data model. So it may not be implemented overnight. But as a direction forward, I think it makes sense. Thanks for using OCPN as a "trial horse". |
As a point of thought... |
@tkurki
1: "A", |
Makes sense to me. What about SAR? |
Thanks Teppo! SART is not that obvious. It's a "A" ship and MMSI starts with 97 and it's also further divided. SART also depends on navigation.state. Navstatus = 14 (RESERVED_14) is one, your have called it "ais-sart", next we need here is navstatus = 15 "UNDEFINED". 14 is a active SART, 15 is a testing SART. So rather important. So, then we've covered what could be called classes apart from APRS but that's another hook I think since it's handled in $xxWDR. Could we test what we now and come back to that? Revised the list again: |
sensors.ais.class
Add test and minimum ggencoder version so that we support non-AI talker ids.
@Hakansv 24 now excluded and the test label B fixed to A. FYI if you want to try this out:
and you should have that sentence converted to SK delta. If you want to get fancy install json pretty printer with Let me know if everything seems to be in order, I'm eager to get this published! |
@tkurki
|
OK, from aisclass:
This: "sensors.ais.class","value":"A"} looks fine and that's how I prepared it in O AIS decoder. |
sensors.ais.class