2020-01-25, 08:06 PM
(This post was last modified: 2020-01-25, 08:18 PM by seandepagnier.)
When I started pypilot I really needed a way to communicate autopilot data between various processes. At the time signalk specification was even less worked out and the few disagreements I had were never resolved. Most of my disagreements are related to how large the actual messages (bytes over tcp) compared to what could actually be sent instead.
for example:
Would be in pypilot signalk:
I am confused why it needs to specify the vessel uid (twice!) when there is only ever one vessel!
Anyway, I hope there is some way that pypilot can use a compatible subset of signalk so the above sentence could be valid.
I also now have the issue of sharing larger binary files between processes but maybe signalk is not right for this?
btw, I really do like the "minperiod" option for subscriptions. This is not yet implemented and clients have to poll data if they want less frequent updates.
So I am really just looking for a way to simplify the protocol in the most common case (single vessel single data source) but I don't know if it's possible, and pypilot can certainly be extended to support more of the signalk standard, changing key names or methods is no problem, but for now they are purposefully different.
for example:
Code:
{
"self": "urn:mrn:signalk:uuid:c0d79334-4e25-4245-8892-54e8ccc8021d",
"version": "0.9.0",
"vessels": {
"urn:mrn:signalk:uuid:c0d79334-4e25-4245-8892-54e8ccc8021d": {
"uuid": "urn:mrn:signalk:uuid:c0d79334-4e25-4245-8892-54e8ccc8021d",
"navigation": {
"courseOverGroundTrue": {
"value": 3.61562407843144,
"$source": "ttyUSB0.GP",
"timestamp": "2017-04-03T06:14:04.451Z"
}
}
}
}
}
Would be in pypilot signalk:
Code:
{ "gps.track": {"value": 3.6156, "timestamp": "2017-04-03T06:14:04.451Z"}}
I am confused why it needs to specify the vessel uid (twice!) when there is only ever one vessel!
Anyway, I hope there is some way that pypilot can use a compatible subset of signalk so the above sentence could be valid.
I also now have the issue of sharing larger binary files between processes but maybe signalk is not right for this?
btw, I really do like the "minperiod" option for subscriptions. This is not yet implemented and clients have to poll data if they want less frequent updates.
So I am really just looking for a way to simplify the protocol in the most common case (single vessel single data source) but I don't know if it's possible, and pypilot can certainly be extended to support more of the signalk standard, changing key names or methods is no problem, but for now they are purposefully different.