signalk-siparu 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +18 -10
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -19,7 +19,7 @@ generator tab. The same gauges are also served over the API (`GET /live`,
19
19
  on every commit - grep this codebase and see for yourself.
20
20
  - **Nothing leaves until you pair her**, and pairing takes a deliberate tap at
21
21
  the helm. Unpair and it stops the same minute.
22
- - **What she sends once paired.** Her bridge, every ten seconds under way and
22
+ - **What she sends once paired.** Her bridge, every two seconds under way and
23
23
  once a minute at rest: position,
24
24
  speed and course over ground, heading, rate of turn, magnetic variation and
25
25
  deviation, navigation state, apparent and true wind with gust and direction,
@@ -145,17 +145,24 @@ changes anything aboard, and the REST surface above is not proxied to it.
145
145
  ### The uplink, when she is paired
146
146
 
147
147
  She opens a WebSocket out to the relay and sends the live frame described above
148
- every ten seconds under way, once a minute at rest; if that socket cannot hold -
149
- marina networks mangle WebSockets - the same frame goes by HTTPS once a minute
150
- instead. Either way the shore keeps none of it: when she drops off, all that
151
- remains ashore is her name and when she was last seen. Both are outbound:
152
- she dials the relay, the relay never dials her.
148
+ every two seconds under way, once a minute at rest; if that socket cannot hold -
149
+ marina networks mangle WebSockets - she falls back to an HTTPS call once a
150
+ minute that carries her clock and nothing else. There is no key exchange behind
151
+ that call, so it could not encrypt a frame even if it were handed one: it says
152
+ she is still there, not where she is. Either way the shore keeps none of it:
153
+ when she drops off, all that remains ashore is her name and when she was last
154
+ seen. Both are outbound: she dials the relay, the relay never dials her.
153
155
 
154
- Exactly one kind of message travels the other way:
156
+ Five kinds of message travel the other way, and every one of them is a read of
157
+ the store she wrote herself:
155
158
 
156
159
  | Inbound | Description |
157
160
  |---|---|
158
- | `{ type: 'history', id, path, query }` | Asks her to read one gauge's recorded history from her own store and send it back. Answered from the same NDJSON the local `GET /snapshots` serves; it reaches nothing else. |
161
+ | `{ type: 'history', id, path, query }` | One gauge's recorded series, shaped for a graph. Answered from the same NDJSON the local `GET /snapshots` serves. |
162
+ | `{ type: 'snapshots', id, query }` | Whole snapshot rows over a window: the logbook read, as the local `GET /snapshots` gives it. |
163
+ | `{ type: 'voyages', id, limit }` | Her recent voyages, newest first. She clamps the count, so a request cannot ask for more than she will give. |
164
+ | `{ type: 'track', id, voyageId }` | One voyage's recorded path, decimated aboard before it goes over the wire. |
165
+ | `{ type: 'phases', id, limit }` | The activity band beneath the voyages, newest first, clamped the same way. |
159
166
 
160
167
  Anything else the shore sends is ignored, because a boat takes no command and so
161
168
  there is nothing else to hear.
@@ -174,8 +181,9 @@ signature, so neither can be rewritten in transit.
174
181
 
175
182
  Voyage detection opens after sustained movement, closes after sustained
176
183
  stillness, and folds short docking manoeuvres into the preceding voyage. Its
177
- behavior is pinned by a golden-fixture test against a reference
178
- implementation on ten days of real vessel data (`plugin/test/fixtures/`).
184
+ behavior is pinned by a golden-fixture test against a reference implementation
185
+ on ten days of a procedurally generated track (`plugin/test/fixtures/`, laid
186
+ down from a seeded PRNG; no vessel's real movements are involved).
179
187
 
180
188
  All timestamps are epoch milliseconds (UTC). Values use Signal K's SI units
181
189
  (m/s, radians, Kelvin, Pascal).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "signalk-siparu",
3
- "version": "0.2.6",
4
- "description": "Kept aboard, proven ashore. An impartial, timestamped record of every voyage: position, wind, depth and logbook, written on the boat and readable from anywhere. A read-only Signal K plugin with a built-in dashboard.",
3
+ "version": "0.2.7",
4
+ "description": "Kept aboard, proven ashore. Position, wind, depth and voyage history, recorded on the boat and readable from anywhere: sealed to the devices you name and signed on the way out, so the relay carries what it cannot read. A read-only Signal K plugin with a built-in dashboard.",
5
5
  "keywords": [
6
6
  "signalk-node-server-plugin",
7
7
  "signalk-webapp"