AIS updates

This commit is contained in:
2026-06-25 18:05:31 -04:00
parent 159bf62876
commit 0c2857306f

View File

@@ -15,7 +15,7 @@ const SENDER_TYPE = {
function decodeMsgTypes(status_raw) { function decodeMsgTypes(status_raw) {
const types = []; const types = [];
for (let i = 0; i < 32; i++) { for (let i = 0; i < 32; i++) {
if (status_raw & (1 << i)) types.push(i); // was i + 1 if (status_raw & (1 << i)) types.push(i);
} }
return types; return types;
} }
@@ -24,21 +24,26 @@ export async function getAIS() {
const {ADSB_URL} = cfg(); const {ADSB_URL} = cfg();
if(!ADSB_URL) return {data: []}; if(!ADSB_URL) return {data: []};
const r = await fetch(`${ADSB_URL}:9990/api/ships_array.json`); const r = await fetch(`${ADSB_URL}:9990/api/ships_array.json`);
const j = await r.json(); const {dynamic, static: staticRows} = await r.json();
const {values} = j; const staticMap = new Map(staticRows.map(row => [row[0], row]));
const boats = values.map(row => {
const boats = dynamic.map(row => {
const [ const [
mmsi, lat, lon, distance, bearing, rssi, count, drift, mmsi, lat, lon, distance, bearing,
unknown_bool, speed, heading, course, altitude, speed, heading, course,
destination, eta, dimension, receiver, sources, channels, unknownA, rssi, drift, count,
msg_type, msg_type2, status_raw, country, channelsMaybe, unknown, unknownB, unknownC, receiver, sender,
ship_type, callsign, imo, draught, unknownD, altitude, unknownE, unknownF, unknownG, country,
unknown1, unknown2, unknown3, // Known missing: sender_type, last_signal, in_range,
name, name2, name3,
last_signal, count2, sender_type, channels2, unknown4, in_range
] = row; ] = row;
const s = staticMap.get(mmsi) ?? [];
const [
_mmsi, name, name2, name3,
unknown1, unknown2, unknown3, unknown4, unknown5, unknown6, unknown7, unknown8, unknown9, unknown10, unknown11
] = s;
return { return {
mmsi, type: SENDER_TYPE[sender_type], mmsi, type: SENDER_TYPE[sender_type],
lat, lon, altitude, lat, lon, altitude,