starlink-node
Version:
Node.js package for communication and control of Starlink terminals locally
78 lines (71 loc) • 1.74 kB
TypeScript
export interface TerminalStatus {
uptime: number;
hardware: {
version: string;
dishId: string;
utcOffsetS: number;
};
state: 'OFFLINE' | 'BOOTING' | 'SEARCHING' | 'CONNECTED' | 'STOWED' | 'THERMAL_SHUTDOWN';
alertsEnabled: boolean;
fractionObstructed: number;
secondsUntilSwUpdate: number;
popPingDropRate: number;
downlinkThroughputBps: number;
uplinkThroughputBps: number;
popPingLatencyMs: number;
}
export interface ConnectionStats {
pingStats: {
latencyMs: number;
dropRate: number;
jitterMs: number;
};
throughputStats: {
downloadBps: number;
uploadBps: number;
};
obstructionStats: {
fractionObstructed: number;
validS: number;
wedgeFractionObstructed: number[];
wedgeAbsFractionObstructed: number[];
};
}
export interface LocationInfo {
latitude?: number;
longitude?: number;
altitude?: number;
obstructionData: {
fractionObstructed: number;
timeObstructed: number;
validS: number;
};
}
export interface HistoryData {
currentHourlyStats: {
downloadThroughputBps: number[];
uploadThroughputBps: number[];
pingLatencyMs: number[];
pingDropRate: number[];
obstructedS: number[];
};
popPingStats: {
latencyMs: number[];
dropRate: number[];
};
}
export interface StarlinkError extends Error {
code: string;
details?: string;
}
export declare class StarlinkClient {
constructor(host?: string, port?: number);
getStatus(): Promise<TerminalStatus>;
getStats(): Promise<ConnectionStats>;
getLocation(): Promise<LocationInfo>;
getHistory(): Promise<HistoryData>;
reboot(): Promise<void>;
stow(): Promise<void>;
unstow(): Promise<void>;
disconnect(): Promise<void>;
}