react-native-gnss-status-checker
Version:
React Native module to check GNSS status and satellite info (NavIC, dual-frequency GPS) on Android
163 lines • 5.86 kB
TypeScript
interface GnssStatusCheckerType {
getGNSSStatus(): Promise<GnssStatusResult>;
startListening(): Promise<void>;
stopListening(): Promise<void>;
getConstantExample(): number;
}
export interface SatelliteInfo {
svid: number;
constellationType: number;
constellationName: string;
cn0DbHz?: number;
elevation?: number;
azimuth?: number;
hasEphemeris: boolean;
hasAlmanac: boolean;
usedInFix: boolean;
carrierFrequencyHz?: number;
}
export interface GnssStatusResult {
isGNSSSupported: boolean;
isDualFrequencySupported: boolean;
isNavICSupported: boolean;
satellitesVisible: number;
satellitesUsedInFix: number;
averageSignalToNoiseRatio: number;
supportedConstellations: string[];
carrierFrequencies: number[];
frequencyBands: FrequencyBandInfo[];
satellites: SatelliteInfo[];
apiLevel?: number;
supportsCn0?: boolean;
supportsCarrierFreq?: boolean;
}
export declare const GnssConstellations: {
readonly UNKNOWN: 0;
readonly GPS: 1;
readonly SBAS: 2;
readonly GLONASS: 3;
readonly QZSS: 4;
readonly BEIDOU: 5;
readonly GALILEO: 6;
readonly IRNSS: 7;
};
export declare const CarrierFrequencies: {
readonly GPS_L1: 1575.42;
readonly GPS_L2: 1227.6;
readonly GPS_L3: 1381.05;
readonly GPS_L4: 1379.913;
readonly GPS_L5: 1176.45;
readonly GLONASS_L1_MIN: 1598.0625;
readonly GLONASS_L1_MAX: 1605.375;
readonly GLONASS_L1_CENTER: 1602;
readonly GLONASS_L2_MIN: 1242.9375;
readonly GLONASS_L2_MAX: 1248.625;
readonly GLONASS_L2_CENTER: 1246;
readonly GLONASS_L3: 1202.025;
readonly GLONASS_L5: 1176.45;
readonly QZSS_L1: 1575.42;
readonly QZSS_L2: 1227.6;
readonly QZSS_L5: 1176.45;
readonly QZSS_LEX: 1278.75;
readonly GALILEO_E1: 1575.42;
readonly GALILEO_E5: 1191.795;
readonly GALILEO_E5a: 1176.45;
readonly GALILEO_E5b: 1207.14;
readonly GALILEO_E6: 1278.75;
readonly BEIDOU_B1: 1561.098;
readonly BEIDOU_B1_2: 1589.742;
readonly BEIDOU_B2: 1207.14;
readonly BEIDOU_B2a: 1176.45;
readonly BEIDOU_B3: 1268.52;
readonly NAVIC_L5: 1176.45;
readonly NAVIC_S: 2492.028;
readonly SBAS_L1: 1575.42;
readonly SBAS_L5: 1176.45;
};
export interface FrequencyBandInfo {
frequency: number;
constellation: string;
band: string;
isDualFrequency: boolean;
}
declare const GnssStatusChecker: any;
/**
* Get current GNSS status including dual-frequency and NavIC support
* @returns Promise<GnssStatusResult> Current GNSS status information
*/
export declare function getGNSSStatus(): Promise<GnssStatusResult>;
/**
* Start listening for GNSS status updates
* This will begin monitoring satellite visibility and measurements
* @returns Promise<void>
*/
export declare function startListening(): Promise<void>;
/**
* Stop listening for GNSS status updates
* @returns Promise<void>
*/
export declare function stopListening(): Promise<void>;
/**
* Helper function to check if NavIC is supported based on constellation data
* @param supportedConstellations Array of supported constellation names
* @returns boolean True if NavIC (IRNSS) is supported
*/
export declare function isNavICSupported(supportedConstellations: string[]): boolean;
/**
* Identify the frequency band for a given frequency in MHz
* @param frequencyMHz Frequency in MHz
* @param tolerance Tolerance in MHz (default: 1.0)
* @returns FrequencyBandInfo object with band identification
*/
export declare function identifyFrequencyBand(frequencyMHz: number, tolerance?: number): FrequencyBandInfo;
/**
* Enhanced dual-frequency detection based on comprehensive frequency mapping
* @param carrierFrequencies Array of detected carrier frequencies
* @returns boolean True if any dual-frequency bands are detected
*/
export declare function isDualFrequencySupported(carrierFrequencies: number[]): boolean;
/**
* Get frequency band information for all detected frequencies
* @param carrierFrequencies Array of detected carrier frequencies
* @returns Array of FrequencyBandInfo objects
*/
export declare function getFrequencyBandInfo(carrierFrequencies: number[]): FrequencyBandInfo[];
/**
* Helper function to get satellites by constellation
* @param satellites Array of satellite information
* @param constellationType Constellation type to filter by
* @returns SatelliteInfo[] Array of satellites for the specified constellation
*/
export declare function getSatellitesByConstellation(satellites: SatelliteInfo[], constellationType: number): SatelliteInfo[];
/**
* Helper function to get satellites used in fix
* @param satellites Array of satellite information
* @returns SatelliteInfo[] Array of satellites used in position fix
*/
export declare function getSatellitesUsedInFix(satellites: SatelliteInfo[]): SatelliteInfo[];
/**
* Helper function to get satellites with good signal strength
* @param satellites Array of satellite information
* @param minCn0 Minimum C/N0 threshold in dB-Hz (default: 20)
* @returns SatelliteInfo[] Array of satellites with good signal strength
*/
export declare function getSatellitesWithGoodSignal(satellites: SatelliteInfo[], minCn0?: number): SatelliteInfo[];
/**
* Helper function to get satellite statistics
* @param satellites Array of satellite information
* @returns Object with satellite statistics
*/
export declare function getSatelliteStatistics(satellites: SatelliteInfo[]): {
total: number;
usedInFix: number;
withEphemeris: number;
withAlmanac: number;
withGoodSignal: number;
byConstellation: Record<string, number>;
averageSignalStrength: number;
strongestSignal: number;
weakestSignal: number;
};
export default GnssStatusChecker;
export type { GnssStatusCheckerType };
//# sourceMappingURL=index.d.ts.map