@meri-imperiumi/signalk-aprs 0.1.1 → 0.2.1

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.
package/README.md CHANGED
@@ -26,11 +26,15 @@ Very early stages, being tested with the [LoRa APRS iGate](https://github.com/ri
26
26
  * Send telemetry (battery status, water depth, anchor distance) over APRS
27
27
  * Show other APRS beacons as vessels in Freeboard etc
28
28
  * Send alerts to crew over APRS
29
- * Get a [dedicated TOCALL for this plugin](https://github.com/aprsorg/aprs-deviceid/issues/244)
30
29
  * Figure out how to handle APRS messaging from/to boat
31
30
 
32
31
  ## Changes
33
32
 
33
+ * 0.2.1 (2026-01-20)
34
+ - Create separate context for each SSID of same callsign
35
+ - Handle malformatted timestamps coming from beacons
36
+ * 0.2.0 (2025-11-15)
37
+ - Using the new [dedicated APSIGK tocall](https://github.com/aprsorg/aprs-deviceid/issues/244)
34
38
  * 0.1.1 (2025-10-29)
35
39
  - Fix position precision
36
40
  * 0.1.0 (2025-10-29)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meri-imperiumi/signalk-aprs",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "Signal K plugin for interacting with the Automatic Packet Reporting System for radio amateurs",
5
5
  "main": "plugin/index.js",
6
6
  "scripts": {
package/plugin/index.js CHANGED
@@ -103,7 +103,7 @@ module.exports = (app) => {
103
103
  values.push({
104
104
  path: '',
105
105
  value: {
106
- name: data.source.callsign,
106
+ name: `${data.source.callsign}-${data.source.ssid}`,
107
107
  },
108
108
  });
109
109
  values.push({
@@ -123,15 +123,21 @@ module.exports = (app) => {
123
123
  value: data.comment || '',
124
124
  });
125
125
 
126
+ let ts = new Date(data.position.timestamp);
127
+ if (Number.isNaN(ts.getTime())) {
128
+ app.debug(`Invalid timestamp ${data.position.timestamp}`);
129
+ ts = new Date();
130
+ }
131
+
126
132
  app.handleMessage('signalk-aprs', {
127
- context: `meteo.${data.source.callsign}`,
133
+ context: `meteo.${data.source.callsign}-${data.source.ssid}`,
128
134
  updates: [
129
135
  {
130
136
  source: {
131
137
  label: 'signalk-aprs',
132
138
  src: formatAddress(data.source),
133
139
  },
134
- timestamp: new Date(data.position.timestamp).toISOString(),
140
+ timestamp: ts.toISOString(),
135
141
  values,
136
142
  },
137
143
  ],
@@ -181,6 +187,7 @@ module.exports = (app) => {
181
187
  socket.setTimeout(10000);
182
188
  socket.once('error', onConnectionError);
183
189
  socket.on('ready', () => {
190
+ attempt = 0;
184
191
  app.debug(`${connectionStr} connected`);
185
192
  const mySendStream = new KISSSender();
186
193
  mySendStream.pipe(socket);
@@ -260,7 +267,7 @@ module.exports = (app) => {
260
267
  const payload = `=${formatLatitude(v.value.latitude)}${settings.beacon.symbol[0]}${formatLongitude(v.value.longitude)}${settings.beacon.symbol[1]} ${app.getSelfPath('name')} ${state} ${settings.beacon.note}`;
261
268
  const frame = newKISSFrame().fromFrame({
262
269
  destination: {
263
- callsign: 'APZ42', // FIXME: https://github.com/aprsorg/aprs-deviceid/issues/244
270
+ callsign: 'APSIGK',
264
271
  },
265
272
  source: {
266
273
  callsign: settings.beacon.callsign,