CLSID_VIO_FUEL_SYSTEM_STATUS

This CLSID determines if adjustments are being made to the fuel flow to the cylinders, and why.

Name

Fuel system status

Access

Read, shareable or exclusive

Range

Type: VT_UI4 (array of 4 bytes stored as an unsigned long)

The following table shows possible enumerations.

Fuel system status
Value
Description
VIOFUELSYSTEM_NOT_
PRESENT
0 Fuel system x not present.
VIOFUELSYSTEM_OPENLOOP_
NOT_READY_YET
1 The fuel system is not being regulated because the engine sensors are not yet ready.
VIOFUELSYSTEM_OPENLOOP_
DRIVING_CONDITIONS
2 The fuel system is not being regulated by the engine sensors because of driving conditions — for example, heavy throttle is causing enrichment.
VIOFUELSYSTEM_OPENLOOP_
SYSTEM_FAULT
3 The fuel system is not being regulated because of a system fault.
VIOFUELSYSTEM_
CLOSEDLOOP_USING_O2S
4 The fuel system is being regulated by means of input from a oxygen sensor.
VIOFUELSYSTEM_
CLOSEDLOOP_FAULT_FROM_
O2S
5 The fuel system is being regulated by means of input from a oxygen sensor, but there is a fault in at least one oxygen sensor.

Byte
Status
Byte 0 Fuel system 1 status
Byte 1 Fuel system 2 status
Byte 2 Fuel system 3 status
Byte 3 Fuel system 4 status

Input

None

Output

Type: VT_UI4 (array of 4 bytes stored as an unsigned long)
Measurement: VIOMEASUREMENT_ENUM
Units: VIOUNITS_ENUM

Remarks

API device objects expect the following data types and sizes when sending data to and from the mini-drivers:

Mini-driver input

None

Mini-driver output

Type: ULONG *
Size: 4 bytes
Description: Array of 4 VIOFUELSYSTEM_* values. Each is represented in 1 byte for each available fuel system.

Example

HRESULT hr;
IVIO_Device *pFuelSystemStatus;
VARIANT vDeviceData;
WORD wStatus_1_2;
BYTE bFuelSystemStatus;
ULONG ulStatusBytes;
//Create an instance of the fuel system status device and get its 
//IVIO_Device interface.
hr = CoCreateInstance(CLSID_VIO_FUEL_SYSTEM_STATUS, NULL,
                     CLSCTX_INPROC_SERVER, IID_VIODEVICE,
                     &pFuelSystemStatus);
//Ask the device for the status of the fuel system.
pFuelSystemStatus->GetData(&vDeviceData, 3000);
//Use the HIWORD, LOWORD, HIBYTE, LOBYTE macros because different //processors may have different byte orderings. Get the status of fuel //systems 1 and 2 from the VARIANT.
wStatus_1_2 = LOWORD(vDeviceData.ulVal);
//Get the status of fuel system 1.
bFuel SystemStatus = LOBYTE(wStatus_1_2);
//Release the reference to the interface.
pFuelSystemStatus->Release();