UNPKG

react-native-obd-retriver

Version:

A React Native hook library to manage Bluetooth Low Energy connections and communication with ELM327 OBD-II adapters.

62 lines 2.54 kB
import { BaseDTCRetriever, type RawDTCResponse } from './BaseDTCRetriever'; import type { ServiceMode } from './types'; import type { SendCommandFunction } from '../utils/types'; /** * Specializes in retrieving permanent Diagnostic Trouble Codes * * The PermanentDTCRetriever class uses OBD Service Mode 0A (10) to retrieve * permanent DTCs from the vehicle's diagnostic system. These are special codes * that persist in memory even after clearing DTCs and disconnecting the battery. * * Key features: * - Retrieves permanent/non-erasable fault codes * - Uses OBD service mode 0A (0x0A) * - Identifies issues that require specific repair verification * - Essential for emissions compliance and inspection readiness * - Supported primarily in newer vehicles (2010+) * * Permanent DTCs are critical for: * - Emissions testing compliance * - Verifying complete repairs of critical systems * - Monitoring vehicle readiness for inspection * - Detecting tampering with emissions systems * * Note: Not all vehicles support Mode 0A (permanent DTCs), particularly * vehicles manufactured before 2010. The feature is primarily required for * emissions compliance in modern vehicles. * * @example * ```typescript * // Create a retriever instance * const permanentRetriever = new PermanentDTCRetriever(sendCommand); * * // Retrieve and check permanent DTCs * const dtcResponse = await permanentRetriever.retrieveRawDTCs(); * * if (dtcResponse) { * if (dtcResponse.troubleCodes && dtcResponse.troubleCodes.length > 0) { * console.log(`Found ${dtcResponse.troubleCodes.length} permanent DTCs:`); * console.log("Vehicle will NOT pass emissions inspection until fixed:"); * dtcResponse.troubleCodes.forEach(dtc => { * console.log(`- ${dtc}`); // e.g., "P0420", "P0455" * }); * } else { * console.log("No permanent DTCs found. Vehicle ready for inspection."); * } * } else { * console.error("Failed to retrieve permanent DTCs or not supported"); * } * ``` */ export declare class PermanentDTCRetriever extends BaseDTCRetriever { static SERVICE_MODE: ServiceMode; constructor(sendCommand: SendCommandFunction); /** * Overrides retrieveRawDTCs to use the base class logic directly. * The base class now handles configuration, command sending, retries, * and response processing including NO DATA checks. */ retrieveRawDTCs(): Promise<RawDTCResponse | null>; getServiceMode(): ServiceMode; } //# sourceMappingURL=PermanentDTCRetriever.d.ts.map