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
TypeScript
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