beast-decoder
Version:
Parses messages coming from a BEAST TCP port. For example out.adsb.lol:1337 [adsb.lol](https://www.adsb.lol/docs/overview/introduction/)
44 lines (41 loc) • 1.25 kB
text/typescript
declare class EventManager<M extends {
[key: string]: any;
}> {
private listeners;
addListener<E extends keyof M>(eventName: E, callback: (data: M[E]) => void): void;
removeListener<E extends keyof M>(eventName: E, callback: (data: M[E]) => void): void;
protected dispatch<E extends keyof M>(eventName: E, data: M[E]): void;
}
type AircraftData = {
icaoAddress: AircraftIcaoAddress;
};
interface AircraftDataWithLocation extends AircraftData {
location: {
latitude: number;
longitude: number;
};
}
type BeastHandlerEvents = {
'aircraft_new': AircraftData;
'aircraft_update': AircraftData;
'aircraft_update_with_location': AircraftDataWithLocation;
'warning': {
message: string;
context: any;
};
'removed_from_cache': AircraftIcaoAddress;
};
type AircraftIcaoAddress = string;
declare class BeastHandler extends EventManager<BeastHandlerEvents> {
private readonly aircraftCache;
private cleanUpCacheInterval;
/**
* don't forget to call stop() once you are done
*/
constructor();
stop(): void;
private cleanUpCache;
handleBeastData(data: Buffer<ArrayBufferLike>): void;
private handleBeastFrame;
}
export { BeastHandler };