Ajuste del voltaje de programación
Última modificación:
Establece el voltaje de programación en el contacto indicado del conector J1962 (OBD-II). Se utiliza para la programación de ECU que requieren la aplicación de un voltaje elevado en un pin determinado durante el procedimiento de reprogramación.
long PassThruSetProgrammingVoltage(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage)
| Código | Descripción | Posibles causas y soluciones |
|---|---|---|
| STATUS_NOERROR | La función se ejecutó correctamente | — |
| ERR_DEVICE_NOT_CONNECTED | No hay conexión con el adaptador |
|
| ERR_NOT_SUPPORTED | La función no es compatible |
|
| ERR_INVALID_DEVICE_ID | Identificador de dispositivo no válido |
|
| ERR_PIN_INVALID | Número de pin no admisible |
|
| ERR_FAILED | Error indeterminado |
|
#include "j2534_dll.hpp"
unsigned long DeviceID; // Obtenido de PassThruOpen
long ret;
// Establecer 12V en el pin 15
ret = PassThruSetProgrammingVoltage(DeviceID, 15, 12000);
if (ret == STATUS_NOERROR)
{
printf("Voltaje de programación establecido: 12V en el pin 15\n");
}
else if (ret == ERR_NOT_SUPPORTED)
{
printf("El adaptador no admite el voltaje de programación\n");
}
else
{
char error[256];
PassThruGetLastError(error);
printf("Error: %s\n", error);
}
// Desactivar el voltaje de programación
ret = PassThruSetProgrammingVoltage(DeviceID, 15, VOLTAGE_OFF);
// deviceID obtenido previamente de ptOpen
val result = j2534.ptSetProgrammingVoltage(deviceID, pin = 15, voltage = 12000u)
when (result.status) {
STATUS_NOERROR -> Log.i("J2534", "Voltaje de programación establecido")
ERR_NOT_SUPPORTED -> Log.w("J2534", "La función no es compatible con el adaptador")
else -> Log.e("J2534", "Error: ${result.errorDescription}")
}
// Desactivar el voltaje
j2534.ptSetProgrammingVoltage(deviceID, pin = 15, voltage = VOLTAGE_OFF)
from ctypes import *
VOLTAGE_OFF = 0xFFFFFFFF
SHORT_TO_GROUND = 0xFFFFFFFE
# Establecer 12V en el pin 15
ret = j2534.PassThruSetProgrammingVoltage(device_id, 15, 12000)
if ret == 0: # STATUS_NOERROR
print("Voltaje de programación establecido: 12V")
elif ret == 0x01: # ERR_NOT_SUPPORTED
print("El adaptador no admite el voltaje de programación")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Error: {error.value.decode()}")
# Desactivar el voltaje
j2534.PassThruSetProgrammingVoltage(device_id, 15, VOLTAGE_OFF)
const uint VOLTAGE_OFF = 0xFFFFFFFF;
const uint SHORT_TO_GROUND = 0xFFFFFFFE;
// Establecer 12V en el pin 15
int ret = J2534.PassThruSetProgrammingVoltage(deviceId, 15, 12000);
if (ret == 0)
{
Console.WriteLine("Voltaje de programación establecido: 12V");
}
else if (ret == 0x01) // ERR_NOT_SUPPORTED
{
Console.WriteLine("El adaptador no admite el voltaje de programación");
}
else
{
var error = new StringBuilder(256);
J2534.PassThruGetLastError(error);
Console.WriteLine($"Error: {error}");
}
// Desactivar el voltaje
J2534.PassThruSetProgrammingVoltage(deviceId, 15, VOLTAGE_OFF);