Réglage de la tension de programmation
Dernière modification :
Définit la tension de programmation sur le contact indiqué du connecteur J1962 (OBD-II). Utilisée pour la programmation des ECU qui nécessitent l'application d'une tension élevée sur une broche déterminée pendant la procédure de reprogrammation.
long PassThruSetProgrammingVoltage(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage)
| Code | Description | Causes possibles et solutions |
|---|---|---|
| STATUS_NOERROR | La fonction s'est exécutée correctement | — |
| ERR_DEVICE_NOT_CONNECTED | Aucune connexion avec l'adaptateur |
|
| ERR_NOT_SUPPORTED | La fonction n'est pas prise en charge |
|
| ERR_INVALID_DEVICE_ID | Identifiant de dispositif non valide |
|
| ERR_PIN_INVALID | Numéro de broche non admis |
|
| ERR_FAILED | Erreur indéterminée |
|
#include "j2534_dll.hpp"
unsigned long DeviceID; // Obtenu de PassThruOpen
long ret;
// Définir 12V sur la broche 15
ret = PassThruSetProgrammingVoltage(DeviceID, 15, 12000);
if (ret == STATUS_NOERROR)
{
printf("Tension de programmation définie : 12V sur la broche 15\n");
}
else if (ret == ERR_NOT_SUPPORTED)
{
printf("L'adaptateur ne prend pas en charge la tension de programmation\n");
}
else
{
char error[256];
PassThruGetLastError(error);
printf("Erreur : %s\n", error);
}
// Désactiver la tension de programmation
ret = PassThruSetProgrammingVoltage(DeviceID, 15, VOLTAGE_OFF);
// deviceID obtenu précédemment de ptOpen
val result = j2534.ptSetProgrammingVoltage(deviceID, pin = 15, voltage = 12000u)
when (result.status) {
STATUS_NOERROR -> Log.i("J2534", "Tension de programmation définie")
ERR_NOT_SUPPORTED -> Log.w("J2534", "La fonction n'est pas prise en charge par l'adaptateur")
else -> Log.e("J2534", "Erreur : ${result.errorDescription}")
}
// Désactiver la tension
j2534.ptSetProgrammingVoltage(deviceID, pin = 15, voltage = VOLTAGE_OFF)
from ctypes import *
VOLTAGE_OFF = 0xFFFFFFFF
SHORT_TO_GROUND = 0xFFFFFFFE
# Définir 12V sur la broche 15
ret = j2534.PassThruSetProgrammingVoltage(device_id, 15, 12000)
if ret == 0: # STATUS_NOERROR
print("Tension de programmation définie : 12V")
elif ret == 0x01: # ERR_NOT_SUPPORTED
print("L'adaptateur ne prend pas en charge la tension de programmation")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Erreur : {error.value.decode()}")
# Désactiver la tension
j2534.PassThruSetProgrammingVoltage(device_id, 15, VOLTAGE_OFF)
const uint VOLTAGE_OFF = 0xFFFFFFFF;
const uint SHORT_TO_GROUND = 0xFFFFFFFE;
// Définir 12V sur la broche 15
int ret = J2534.PassThruSetProgrammingVoltage(deviceId, 15, 12000);
if (ret == 0)
{
Console.WriteLine("Tension de programmation définie : 12V");
}
else if (ret == 0x01) // ERR_NOT_SUPPORTED
{
Console.WriteLine("L'adaptateur ne prend pas en charge la tension de programmation");
}
else
{
var error = new StringBuilder(256);
J2534.PassThruGetLastError(error);
Console.WriteLine($"Erreur : {error}");
}
// Désactiver la tension
J2534.PassThruSetProgrammingVoltage(deviceId, 15, VOLTAGE_OFF);