56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import type { PluginListenerHandle } from '@capacitor/core';
|
|
export interface SatelliteStatus {
|
|
satellitesInView: number;
|
|
usedInFix: number;
|
|
constellationCounts: {
|
|
[key: string]: number;
|
|
};
|
|
}
|
|
export interface WifiAp {
|
|
ssid: string;
|
|
bssid: string;
|
|
rssi: number;
|
|
distance?: number;
|
|
}
|
|
export interface WifiScanResult {
|
|
apCount: number;
|
|
aps: WifiAp[];
|
|
}
|
|
export interface ImuData {
|
|
accelX: number;
|
|
accelY: number;
|
|
accelZ: number;
|
|
gyroX: number;
|
|
gyroY: number;
|
|
gyroZ: number;
|
|
speed?: number;
|
|
acceleration?: number;
|
|
directionRad?: number;
|
|
}
|
|
export interface GpsData {
|
|
latitude: number;
|
|
longitude: number;
|
|
accuracy: number;
|
|
satellitesInView?: number;
|
|
usedInFix?: number;
|
|
constellationCounts?: {
|
|
[key: string]: number;
|
|
};
|
|
}
|
|
export interface PositioningData {
|
|
source: 'GNSS' | 'WIFI' | 'FUSED' | 'MOCK';
|
|
timestamp: number;
|
|
latitude: number;
|
|
longitude: number;
|
|
accuracy: number;
|
|
gnssData?: SatelliteStatus;
|
|
wifiData?: WifiAp[];
|
|
imuData?: ImuData;
|
|
}
|
|
export interface DumonGeolocationPlugin {
|
|
startPositioning(): Promise<void>;
|
|
stopPositioning(): Promise<void>;
|
|
getLatestPosition(): Promise<PositioningData>;
|
|
addListener(eventName: 'onPositionUpdate', listenerFunc: (data: PositioningData) => void): PluginListenerHandle;
|
|
}
|