@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 +5 -1
- package/package.json +1 -1
- package/plugin/index.js +11 -4
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
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:
|
|
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: '
|
|
270
|
+
callsign: 'APSIGK',
|
|
264
271
|
},
|
|
265
272
|
source: {
|
|
266
273
|
callsign: settings.beacon.callsign,
|