bmw-advanced-tools/app/EC-APPS/INPA/SGDAT/PL2_87_1.ips

1419 lines
77 KiB
Plaintext
Raw Permalink Normal View History

2021-09-18 17:45:57 +02:00
//**********************************************************************************************************************
//** **
//** BMW AG - M<>nchen, FIZ **
//** EE-13: Entwicklungsbegleitende Absicherung **
//** Sonderscript f<>r PL2_87_1 Identifikation **
//** **
//**********************************************************************************************************************
//** **
//** Dieses Script wurde am 06.03.2003 um 16:04 automatisch aus der Tabelle **
//** InpaTool_V101_PL2.xls (Makro-Version: 1.0.1), Tabelle: PL2 **
//** generiert und basiert auf dem Sonderscript f<>r E65-Identifikation Version 0.2.3 von Hermann Achatz, EE-13. **
//** Unterst<73>tzt werden die Befehle IDENT_LESEN, FS_LESEN, FS_L<5F>SCHEN, IS_LESEN und IS_L<5F>SCHEN, inklusive Details. **
//** **
//**********************************************************************************************************************
//** **
//** Bei Fragen/Problemen/<2F>nderungsw<73>nschen/Verbesserungsvorschl<68>gen wenden Sie sich bitte an: **
//** Ludwig Remy, EE-13, Telefon 49914, eMail: Ludwig.RA.Remy@partner.bmw.de **
//** **
//**********************************************************************************************************************
//** **
//** <20>nderungshistorie: **
//** **
//** 06.03.03 - V1.0.0 - InpaTool : automatische Erstellung **
//** **
//**********************************************************************************************************************
// Compiler-Anweisungen ----------------------------------------------------------------------------------------------
#pragma winedit
#include "..\sgdat\inpa.h"
#include "..\sgdat\bmwlib.h"
// Definition globaler Konstanten: feste Einstellungen ---------------------------------------------------------------
string STR_Titel = "Identifikation PL2_87_1"; // Titel dieses INPA-Scripts
string STR_Version = "1.0.0"; // Version dieses INPA-Scripts
string STR_Origin = "BMW AG, EE-13, L. Remy"; // Verantwortung f<>r dieses INPA-Script
string STR_SGBD = "";
int INT_AnzSG = 48; // Anzahl der abzufragenden Steuerger<65>te
string STR_IniFile = "C:\INPA\SGDAT\PL2_87_1.ini"; // Zugeh<65>riges INI-File dieses INPA-Scripts
string STR_BackSlash = ""; // Konstante f<>r Sonderzeichen 'Backslash'
string STR_CfgFileVers = "1"; // Layout-Version des generierten CFG-Files (wichtig f<>r Vergleichstool)
// Weitere globale Konstanten: Parameter f<>r den Programmablauf (Ersatzwerte, falls kein INI-File vorhanden) ---------
string STR_Pfad = "C:"; // Defaultwert f<>r Verzeichnispfad
bool BOL_AutoFile = TRUE; // Dateinamen aus Fahrgestellnummer automatisch erzeugen
string STR_STD_OUT = "OBD"; // Defaultwert f<>r Kommunikations-Schnittstelle
// Die Einstellung mu<6D> auf jeden Fall mit der Angabe in 'EDIABAS.INI' <20>bereinstimmen (OBD f<>r ADS w<>hlen)
// Wert 'OBD' = Kommunikation <20>ber OBD-Dose (funktionierendes Gateway erforderlich)
// Wert 'CAN' = Kommunikation <20>ber CAN-Bus (derzeit noch nicht m<>glich)
string STR_STD_ID_File = "Unknown"; // Defaultname der Protokolldatei f<>r Ident-Daten
string STR_STD_FS_File = "FS_DAT"; // Defaultname der Protokolldatei f<>r Fehlerspeicher aller SG
string STR_STD_IS_File = "IS_DAT"; // Defaultname der Protokolldatei f<>r Infospeicher aller SG
string STR_InfoPre = "C:\INPA\SGBD\FS_PreInfo.tmp";
// Defaultname der Info-Datei, die vor den Detailinformationen in das Fehler-/Infoprotokoll eingef<65>gt wird;
// <20>bergabe eines Leerstrings (statt 'C:\INPA\SGBD\FS_PreInfo.tmp'), wenn kein File eingef<65>gt werden soll;
string STR_InfoPost = "C:\INPA\SGBD\FS_PostInfo.tmp";
// Defaultname der Info-Datei, die nach den Detailinformationen in das Fehler-/Infoprotokoll eingef<65>gt wird;
// <20>bergabe eines Leerstrings (statt 'C:\INPA\SGBD\FS_PostInfo.tmp'), wenn kein File eingef<65>gt werden soll;
string STR_IDFileMode = "w"; // Parameter zur Steuerung der IDENT-Daten-Speicherung
// Wert 'a' = Anh<6E>ngen (append) der neuen Daten an ein bestehendes Logfile
// Wert 'w' = bei jedem Aufruf ein neues Logfile anlegen (Defaultwert)
string STR_FsFileMode = "w"; // Parameter zur Steuerung der Fehlerprotokollierung
// Wert 'a' = Anh<6E>ngen (append) aller neuen Daten an ein bestehendes Fehlerprotokoll
// Wert 'w' = neues Fehlerprotokoll mit allen Daten anlegen (Defaultwert)
// Wert 's' = f<>r jedes Steuerger<65>t ein eigenes (neues) Fehlerprotokoll erstellen (Endung *.FS)
string STR_IsFileMode = "a"; // Parameter zur Steuerung der Fehlerprotokollierung
// Falls BOL_AutoFile = TRUE (Defaultwert) wird das Infoprotokoll unter gleichem Dateinamen wie das Fehlerprotokoll abgespeichert.
// Wert 'a' = Anh<6E>ngen (append) aller neuen Daten an ein bestehendes (Fehler-/)Infoprotokoll (Defaultwert)
// Wert 'w' = neues Infoprotokoll mit allen Daten anlegen
// Wert 's' = f<>r jedes Steuerger<65>t ein eigenes (neues) Infoprotokoll erstellen (Endung *.IS)
int INT_FsMode = 0xFF; // Parameter (bitcodiert) zur selektiven Anzeige der Fehlerspeicher-Details
// Maske 0x01 = Fehlerorte anzeigen
// Maske 0x02 = Umweltbedingungen anzeigen (nur bei FS_LESEN_DETAIL)
// Maske 0x04 = Fehlerarten anzeigen
// Maske 0x08 = Umweltwerte anzeigen (nur in Verbindung mit 0x02, nur bei FS_LESEN_DETAIL)
// Maske 0x10 = Umwelteinheiten anzeigen (nur in Verbindung mit 0x02 und 0x08, nur bei FS_LESEN_DETAIL)
// Maske 0x20 = Fehlerh<72>ufigkeiten anzeigen
// Maske 0x40 = Fehlercodes anzeigen (Hex-Werte)
// Maske 0x80 = Hinweistexte anzeigen
// Maske 0xFF = alles anzeigen (Defaultwert)
int INT_IsMode = 0xFF; // Parameter (bitcodiert) zur selektiven Anzeige der Infospeicher-Details
// Maske 0x01 = Fehlerorte anzeigen
// Maske 0x02 = Umweltbedingungen anzeigen (nur bei IS_LESEN_DETAIL)
// Maske 0x04 = Fehlerarten anzeigen
// Maske 0x08 = Umweltwerte/-einheiten anzeigen (nur in Verbindung mit 0x02, nur bei IS_LESEN_DETAIL)
// Maske 0x10 = Umwelteinheiten anzeigen (nur in Verbindung mit 0x02 und 0x08, nur bei IS_LESEN_DETAIL)
// Maske 0x20 = Fehlerh<72>ufigkeiten anzeigen
// Maske 0x40 = Fehlercodes anzeigen (Hex-Werte)
// Maske 0x80 = Hinweistexte anzeigen
// Maske 0xFF = alles anzeigen (Defaultwert)
bool BOL_ErrorInfo_ID = TRUE; // Flag f<>r zus<75>tzliche Infos bei Fehlern w<>hrend IDENT ('SG meldet sich nicht', etc)
bool BOL_ErrorInfo_FS = TRUE; // Flag f<>r zus<75>tzliche Infos bei Fehlern w<>hrend FS_LESEN
bool BOL_ErrorInfo_IS = TRUE; // Flag f<>r zus<75>tzliche Infos bei Fehlern w<>hrend IS_LESEN
// Definition globaler Variablen -------------------------------------------------------------------------------------
string STR_ID_File = ""; // Protokolldatei f<>r Ident-Daten (global Var)
string STR_FS_File = ""; // Protokolldatei f<>r Fehlerspeicher aller SG (global Var)
string STR_IS_File = ""; // Protokolldatei f<>r Infospeicher aller SG (global Var)
int INT_FsIsMode = 0x1FF; // bitcodierter <20>bergabeparameter f<>r FS_Lesen und IS_Lesen
//**********************************************************************************************************************
//** **
//** F U N K T I O N S - D E F I N I T I O N E N **
//** **
//**********************************************************************************************************************
// Initialisierung (INI-File auslesen / Parametrisierung) -------------------------------------------------------------
FKT_READ_INI_FILE() {
string STR_a, STR_b;
int INT_MaxLength, INT_Length, INT_ErrCode, INT_x, INT_y;
midstr(STR_ID_File, STR_STD_ID_File, 0, 8);
midstr(STR_FS_File, STR_STD_FS_File, 0, 8);
midstr(STR_IS_File, STR_STD_IS_File, 0, 8);
fileexist(STR_IniFile, INT_ErrCode); // Check, ob INI-File vorhanden
if (INT_ErrCode == 0) { // falls vorhanden
INT_MaxLength = 254;
GetPrivateProfileString("DEFAULT", "INI_ACTIVE", "true", STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if ((STR_a == "true") || (STR_a == "TRUE")) {
GetPrivateProfileString("DEFAULT", "PATH", STR_Pfad, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) {
instr(INT_x, INT_Length-1, STR_a, STR_BackSlash);
if (INT_x < 0)
STR_Pfad = STR_a + STR_BackSlash;
else
STR_Pfad = STR_a; }
STR_b = "FALSE";
if (BOL_AutoFile == TRUE) STR_b = "TRUE";
GetPrivateProfileString("DEFAULT", "AUTO_FILENAME", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
BOL_AutoFile = TRUE;
if ((STR_a == "false") || (STR_a == "FALSE")) BOL_AutoFile = FALSE;
GetPrivateProfileString("DEFAULT", "STANDARD_OUT", STR_STD_OUT, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
STR_STD_OUT = STR_a;
GetPrivateProfileString("DEFAULT", "PRE_INFO_FILE", STR_InfoPre, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) STR_InfoPre = STR_a;
GetPrivateProfileString("DEFAULT", "POST_INFO_FILE", STR_InfoPost, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) STR_InfoPost = STR_a;
STR_b = "FALSE";
if (BOL_ErrorInfo_ID == TRUE) STR_b = "TRUE";
GetPrivateProfileString("DEFAULT", "ID_ERROR_INFOS", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
BOL_ErrorInfo_ID = TRUE;
if ((STR_a == "false") || (STR_a == "FALSE")) BOL_ErrorInfo_ID = FALSE;
GetPrivateProfileString("DEFAULT", "ID_FILE_MODE", STR_IDFileMode, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
trimstr(STR_a);
strlen(INT_x, STR_a);
if (INT_x > 0) {
midstr(STR_b, STR_a, 0, 1);
instr(INT_y, 0, "aw", STR_b);
if (INT_y >= 0) STR_IDFileMode = STR_b; }
GetPrivateProfileString("DEFAULT", "ID_CONFIG_FILE", STR_ID_File, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) midstr(STR_ID_File, STR_a, 0, 8);
inttostring (INT_FsMode, STR_b);
GetPrivateProfileString("DEFAULT", "FS_READ_MODE", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
stringtoint (STR_a, INT_FsMode);
STR_b = "FALSE";
if (BOL_ErrorInfo_FS == TRUE) STR_b = "TRUE";
GetPrivateProfileString("DEFAULT", "FS_ERROR_INFOS", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
BOL_ErrorInfo_FS = TRUE;
if ((STR_a == "false") || (STR_a == "FALSE")) BOL_ErrorInfo_FS = TRUE;
GetPrivateProfileString("DEFAULT", "FS_FILE_MODE", STR_FsFileMode, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
trimstr(STR_a);
strlen(INT_x, STR_a);
if (INT_x > 0) {
midstr(STR_b, STR_a, 0, 1);
instr(INT_y, 0, "aws", STR_b);
if (INT_y >= 0) STR_FsFileMode = STR_b; }
GetPrivateProfileString("DEFAULT", "FS_RESULT_FILE", STR_FS_File, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) midstr(STR_FS_File, STR_a, 0, 8);
inttostring (INT_IsMode, STR_b);
GetPrivateProfileString("DEFAULT", "IS_READ_MODE", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
stringtoint (STR_a, INT_IsMode);
STR_b = "FALSE";
if (BOL_ErrorInfo_IS == TRUE) STR_b = "TRUE";
GetPrivateProfileString("DEFAULT", "IS_ERROR_INFOS", STR_b, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
BOL_ErrorInfo_IS = TRUE;
if ((STR_a == "false") || (STR_a == "FALSE")) BOL_ErrorInfo_IS = TRUE;
GetPrivateProfileString("DEFAULT", "IS_FILE_MODE", STR_IsFileMode, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
trimstr(STR_a);
strlen(INT_x, STR_a);
if (INT_x > 0) {
midstr(STR_b, STR_a, 0, 1);
instr(INT_y, 0, "aws", STR_b);
if (INT_y >= 0) STR_IsFileMode = STR_b; }
GetPrivateProfileString("DEFAULT", "IS_RESULT_FILE", STR_IS_File, STR_a, INT_MaxLength, STR_IniFile, INT_Length);
if (INT_Length > 0) midstr(STR_IS_File, STR_a, 0, 8); } } }
// INI-File erg<72>nzen bzw. erstellen (Parameter abspeichern) -----------------------------------------------------------
FKT_SAVE_SETTINGS() {
bool BOL_RC;
string STR_x, STR_y;
int INT_Length;
STR_x = "Informationen zu den einzelnen Parametern finden Sie in der InpaTool_Anleitung.PDF";
WritePrivateProfileString("DEFAULT", "INFO", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "INI_ACTIVE", "FALSE", STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "INI_ACTIVE", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "PATH", STR_Pfad, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "PATH", STR_x, STR_IniFile, BOL_RC);
STR_y = "FALSE";
if (BOL_AutoFile == TRUE) STR_y = "TRUE";
GetPrivateProfileString("DEFAULT", "AUTO_FILENAME", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "AUTO_FILENAME", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "STANDARD_OUT", STR_STD_OUT, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "STANDARD_OUT", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "PRE_INFO_FILE", STR_InfoPre, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "PRE_INFO_FILE", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "POST_INFO_FILE", STR_InfoPost, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "POST_INFO_FILE", STR_x, STR_IniFile, BOL_RC);
STR_y = "FALSE";
if (BOL_ErrorInfo_ID == TRUE) STR_y = "TRUE";
GetPrivateProfileString("DEFAULT", "ID_ERROR_INFOS", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "ID_ERROR_INFOS", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "ID_FILE_MODE", STR_IDFileMode, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "ID_FILE_MODE", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "ID_CONFIG_FILE", STR_STD_ID_File, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "ID_CONFIG_FILE", STR_x, STR_IniFile, BOL_RC);
inttohexstring(INT_FsMode, 2, STR_y);
STR_y = "0x" + STR_y;
GetPrivateProfileString("DEFAULT", "FS_READ_MODE", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "FS_READ_MODE", STR_x, STR_IniFile, BOL_RC);
STR_y = "FALSE";
if (BOL_ErrorInfo_FS == TRUE) STR_y = "TRUE";
GetPrivateProfileString("DEFAULT", "FS_ERROR_INFOS", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "FS_ERROR_INFOS", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "FS_FILE_MODE", STR_FsFileMode, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "FS_FILE_MODE", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "FS_RESULT_FILE", STR_STD_FS_File, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "FS_RESULT_FILE", STR_x, STR_IniFile, BOL_RC);
inttohexstring(INT_IsMode, 2, STR_y);
STR_y = "0x" + STR_y;
GetPrivateProfileString("DEFAULT", "IS_READ_MODE", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "IS_READ_MODE", STR_x, STR_IniFile, BOL_RC);
STR_y = "FALSE";
if (BOL_ErrorInfo_IS == TRUE) STR_y = "TRUE";
GetPrivateProfileString("DEFAULT", "IS_ERROR_INFOS", STR_y, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "IS_ERROR_INFOS", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "IS_FILE_MODE", STR_IsFileMode, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "IS_FILE_MODE", STR_x, STR_IniFile, BOL_RC);
GetPrivateProfileString("DEFAULT", "IS_RESULT_FILE", STR_STD_IS_File, STR_x, 255, STR_IniFile, INT_Length);
WritePrivateProfileString("DEFAULT", "IS_RESULT_FILE", STR_x, STR_IniFile, BOL_RC); }
// Textverbinder f<>r Ausgabestring -----------------------------------------------------------------------------------
SCHREIBE(inout: string STR_Puffer, in: string STR_Erg) {
string STR_x;
bool BOL_RC;
INP1apiResultText(BOL_RC, STR_x, STR_Erg, 1, "");
if (BOL_RC == TRUE)
STR_Puffer = STR_Puffer +HT+ STR_x;
else
STR_Puffer = STR_Puffer +HT+ "<k.A.>"; }
// Fehlerort auslesen (f<>r FS/IS_LESEN) ------------------------------------------------------------------------------
FKT_FehlerOrt(in: int INT_Satz) {
bool BOL_RC;
int INT_OrtNr;
string STR_a, STR_b;
filewrite("Ort:");
INP1apiResultInt(BOL_RC, INT_OrtNr, "F_ORT_NR", INT_Satz);
if (BOL_RC == TRUE)
inttohexstring(INT_OrtNr, 4, STR_a);
else
STR_a = ">>> FEHLT <<<";
INP1apiResultText(BOL_RC, STR_b, "F_ORT_TEXT", INT_Satz, "");
if (BOL_RC == TRUE)
filewrite(" " + STR_a + " " + STR_b);
else
filewrite(" " + STR_a + " >>> FEHLT <<<"); }
// H<>ufigkeitsz<73>hler auslesen (f<>r FS/IS_LESEN_DETAIL) ---------------------------------------------------------------
FKT_FehlerHFK(in: int INT_Satz) {
bool BOL_RC;
string STR_a;
filewrite("");
filewrite("H<>ufigkeit:");
INP1apiResultText(BOL_RC, STR_a, "F_HFK", INT_Satz, "");
if (BOL_RC == TRUE) {
if (STR_a == "-1")
filewrite(" Fehlerh<72>ufigkeit: >>> Z<>hler nicht implementiert <<<");
else
filewrite(" Fehlerh<72>ufigkeit: " + STR_a); }
else
filewrite(" Fehler beim Auslesen des H<>ufigkeitsz<73>hlers");
INP1apiResultText(BOL_RC, STR_a, "F_LZ", INT_Satz, "");
if (BOL_RC == TRUE) {
if (STR_a == "-1")
filewrite(" Logistikz<6B>hler: >>> Z<>hler nicht implementiert <<<");
else
filewrite(" Logistikz<6B>hler: " + STR_a); }
else
filewrite(" Fehler beim Auslesen des Logistikz<6B>hlers"); }
// Umweltbedingungen auslesen (f<>r FS/IS_LESEN_DETAIL) ---------------------------------------------------------------
FKT_FehlerUWB(in: int INT_Satz) {
string STR_a, STR_NrUWB, STR_UwEinh, STR_UwText, STR_UwWert;
bool BOL_RC, BOL_RC2, BOL_RC3, BOL_RC4;
int INT_AnzUwBed, INT_y;
INP1apiResultText(BOL_RC, STR_a, "F_UW_KM", INT_Satz, "6L");
if (BOL_RC == TRUE) {
if (STR_a == "524280")
STR_a = " Kilometerstand: >>> Wert unplausibel <<<";
else
STR_a = " Kilometerstand: " + STR_a + " km"; }
else
STR_a = " Fehler: Kilometerstand im Ergebnissatz nicht enthalten!";
filewrite(STR_a);
INP1apiResultInt(BOL_RC, INT_AnzUwBed, "F_UW_ANZ", INT_Satz);
if (BOL_RC == TRUE) {
if (INT_AnzUwBed > 0) {
INT_y = 0;
while (INT_y < INT_AnzUwBed) {
INT_y = INT_y + 1;
inttostring(INT_y, STR_NrUWB);
INP1apiResultText(BOL_RC2, STR_UwEinh, "F_UW" + STR_NrUWB + "_EINH", INT_Satz, "");
AnsiUpper(STR_UwEinh, STR_UwEinh);
STR_a = STR_UwEinh;
if (BOL_RC2 == FALSE) STR_UwEinh = ">>> fehlt <<<";
if ((STR_a == "0-N") || (STR_a == "HEX")) {
INP1apiResultText(BOL_RC3, STR_UwText, "F_UW" + STR_NrUWB + "_TEXT", INT_Satz, "-20T");
if ((INT_FsIsMode & 0x08) != 0) {
INP1apiResultText(BOL_RC4, STR_UwWert, "F_UW" + STR_NrUWB + "_WERT", INT_Satz, "28T");
if (BOL_RC4 == FALSE) STR_UwWert = ">>> fehlt <<<"; }
else {
STR_UwWert = "";
STR_UwEinh = ""; } }
else {
INP1apiResultText(BOL_RC3, STR_UwText, "F_UW" + STR_NrUWB + "_TEXT", INT_Satz, "-40T");
if ((INT_FsIsMode & 0x08) != 0) {
INP1apiResultText(BOL_RC4, STR_UwWert, "F_UW" + STR_NrUWB + "_WERT", INT_Satz, "8.2R");
if (BOL_RC4 == FALSE) STR_UwWert = ">>> fehlt <<<"; }
else {
STR_UwWert = "";
STR_UwEinh = ""; } }
if ((BOL_RC3 == FALSE) || (STR_UwText == "--")) STR_UwText = ">>> Bezeichnung fehlt <<<";
if ((INT_FsIsMode & 0x10) == 0) STR_UwEinh = "";
filewrite(" UWB " + STR_NrUWB + ": " + STR_UwText + " " + STR_UwWert + " " + STR_UwEinh); } }
else
filewrite(" Keine Umweltbedingungen im Ergebnissatz enthalten."); }
else
filewrite(" Fehler: Anzahl der Umweltbedingungen im Ergebnissatz nicht enthalten!"); }
// Fehlerarten auslesen (f<>r FS/IS_LESEN) ----------------------------------------------------------------------------
FKT_FehlerArt(in: int INT_Satz) {
bool BOL_RC, BOL_RC2, BOL_NoInfo;
string STR_a, STR_Text;
int INT_AnzZusFehler, INT_x;
BOL_NoInfo = TRUE;
filewrite("");
filewrite("Art:");
INP1apiResultText(BOL_RC, STR_a, "F_SYMPTOM_TEXT", INT_Satz, "");
if (BOL_RC == TRUE) {
filewrite(" " + STR_a);
BOL_NoInfo = FALSE; }
INP1apiResultText(BOL_RC, STR_a, "F_READY_TEXT", INT_Satz, "");
if (BOL_RC == TRUE) {
filewrite(" " + STR_a);
BOL_NoInfo = FALSE; }
INP1apiResultText(BOL_RC, STR_a, "F_VORHANDEN_TEXT", INT_Satz, "");
if (BOL_RC == TRUE) {
filewrite(" " + STR_a);
BOL_NoInfo = FALSE; }
INP1apiResultText(BOL_RC, STR_a, "F_WARNUNG_TEXT", INT_Satz, "");
if (BOL_RC == TRUE) {
filewrite(" " + STR_a);
BOL_NoInfo = FALSE; }
INP1apiResultInt(BOL_RC, INT_AnzZusFehler, "F_ART_ANZ", INT_Satz);
if ((BOL_RC == TRUE) && (INT_AnzZusFehler > 0)) {
INT_x = 0;
while (INT_x < INT_AnzZusFehler) {
INT_x = INT_x + 1;
inttostring(INT_x, STR_a);
INP1apiResultText(BOL_RC2, STR_Text, "F_ART" + STR_a + "_TEXT", INT_Satz, "");
if (BOL_RC2 == TRUE) {
if (STR_Text == "--") {
filewrite(" Zus<75>tzlicher Fehler " + STR_a + ": >>> Angabe fehlt <<<");
BOL_NoInfo = FALSE; }
else {
filewrite(" Zus<75>tzlicher Fehler " + STR_a + ": " + STR_Text);
BOL_NoInfo = FALSE; } }
else {
filewrite (" Zus<75>tzlicher Fehler " + STR_a + ": >>> Datensatz unvollst<73>ndig <<<");
BOL_NoInfo = FALSE; } } }
if (BOL_NoInfo == TRUE) filewrite(" Fehler: Informationen zur Fehlerart im Ergebnissatz nicht enthalten!"); }
// Fehlercode auslesen (f<>r FS/IS_LESEN) -----------------------------------------------------------------------------
FKT_FehlerHexCode(in: int INT_Satz) {
string STR_NewLine, STR_New, STR_Old, STR_a;
int INT_x, INT_y, INT_Len;
bool BOL_RC;
chr(10, STR_NewLine);
INT_x = 0;
INT_y = 0;
filewrite("");
filewrite("Code:");
INP1apiResultBinary(BOL_RC, "F_HEX_CODE", INT_Satz);
if (BOL_RC == TRUE) {
// Zeichenkette auslesen und formatieren (Leerzeichen einf<6E>gen)
GetBinaryDataString(STR_Old, INT_Len);
STR_New = " ";
while (INT_x < INT_Len) {
midstr(STR_a, STR_Old, INT_x, 2);
STR_New = STR_New + STR_a;
INT_x = INT_x + 2;
INT_y = INT_y + 1;
if (INT_x < INT_Len) {
if (INT_y < 16)
STR_New = STR_New + " ";
else {
INT_y = 0;
STR_New = STR_New + STR_NewLine + " "; } } } }
else STR_New = " Fehler: Fehlercode im Ergebnissatz nicht enthalten!";
filewrite(STR_New); }
// Fehler- bzw. Infospeicher auslesen (Ersatz f<>r INPAapiFsLesen_neu) ------------------------------------------------
FKT_READ(in: string STR_SGBD, in: string STR_FileName, in: bool BOL_FS) {
bool BOL_RC, BOL_RC2;
int INT_Version, INT_AnzSaetze, INT_x, INT_y, INT_AnzUwSaetze;
string STR_JobName, STR_a, STR_b, STR_Variante, STR_JobStatus, STR_ErrCode, STR_SaveErrOrte;
// Fehler- bzw. Infospeicher lesen
if (BOL_FS == TRUE) {
STR_JobName = "FS_LESEN";
STR_a = " F E H L E R S P E I C H E R L E S E N";
STR_b = " ---------------------------------------"; }
else {
STR_JobName = "IS_LESEN";
STR_a = " I N F O S P E I C H E R L E S E N";
STR_b = " -----------------------------------"; }
INPAapiJob(STR_SGBD, STR_JobName, "", "");
// Pr<50>fung auf KWP-2000
INP1apiResultInt(BOL_RC, INT_Version, "F_VERSION", 1);
if ((BOL_RC == TRUE) && (INT_Version == 2)) {
// Allgemeine Informationen (Header pro SG)
INP1apiResultSets(BOL_RC2, INT_AnzSaetze);
if (BOL_RC2 == TRUE)
INPAapiResultText(STR_JobStatus, "JOB_STATUS", INT_AnzSaetze, "");
else
STR_JobStatus = ">>> FEHLER <<<";
INPAapiResultText(STR_Variante, "VARIANTE", 0, "");
fileopen (STR_FileName, "a");
filewrite("");
filewrite(STR_a);
filewrite(STR_b);
filewrite("");
getdate(STR_a);
gettime(STR_b);
filewrite("SGBD: " + STR_SGBD);
filewrite("Variante: " + STR_Variante);
filewrite("JobStatus: " + STR_JobStatus);
filewrite("Datum: " + STR_a + " - " + STR_b);
if ((STR_JobStatus == "OKAY") && (INT_AnzSaetze > 0)) {
if (INT_AnzSaetze == 1)
filewrite("Ergebnis: >>>>> Kein Fehler vorhanden <<<<<");
else {
inttostring(INT_AnzSaetze-1, STR_a);
filewrite("Ergebnis: " + STR_a + " Fehler im Fehlerspeicher!");
// Informationen je Fehler ohne Details ausgeben
if ((INT_FsIsMode & 0x100) == 0) {
INT_x = 1;
while (INT_x < INT_AnzSaetze) {
if ((INT_FsIsMode & 0x45) != 0) {
filewrite("----------------------------------------------------------------------");
if ((INT_FsIsMode & 0x01) != 0) FKT_FehlerOrt(INT_x);
if ((INT_FsIsMode & 0x04) != 0) FKT_FehlerArt(INT_x);
if ((INT_FsIsMode & 0x40) != 0) FKT_FehlerHexCode(INT_x); }
INT_x = INT_x + 1; } }
// Informationen je Fehler inklusive Details ausgeben
else {
// Fehlerorte f<>r Detail-Lesen sichern
INT_x = 1;
STR_SaveErrOrte = "";
while (INT_x < INT_AnzSaetze) {
INP1apiResultInt(BOL_RC, INT_y, "F_ORT_NR", INT_x);
inttohexstring(INT_y, 4, STR_a);
STR_SaveErrOrte = STR_SaveErrOrte + "0x" + STR_a;
INT_x = INT_x + 1; }
// Details f<>r jeden Fehler auslesen
STR_JobName = STR_JobName + "_DETAIL";
INT_x = 1;
while (INT_x < INT_AnzSaetze) {
if ((INT_FsIsMode & 0x67) != 0) {
filewrite("----------------------------------------------------------------------");
midstr(STR_ErrCode, STR_SaveErrOrte, (INT_x - 1)*6, 6);
INPAapiJob(STR_SGBD, STR_JobName, STR_ErrCode, "");
// Detail-Datensatz pr<70>fen
INP1apiResultSets(BOL_RC2, INT_AnzUwSaetze);
if (BOL_RC2 == TRUE) {
INPAapiResultText(STR_JobStatus, "JOB_STATUS", INT_AnzUwSaetze, "");
if (INT_AnzUwSaetze < 2) {
inttostring(INT_AnzUwSaetze, STR_a);
STR_a = "Anzahl S<>tze fehlerhaft (" + STR_a + ")";
STR_JobStatus = ">>> FEHLER <<<"; }
else {
STR_a = ""; } }
else {
STR_JobStatus = ">>> FEHLER <<<";
INP1apiErrorText(STR_a); }
// Detail-Informationen abspeichern
if (STR_JobStatus == "OKAY") {
if ((INT_FsIsMode & 0x01) != 0) FKT_FehlerOrt(1);
if ((INT_FsIsMode & 0x20) != 0) FKT_FehlerHFK(1);
if ((INT_FsIsMode & 0x02) != 0) {
filewrite("");
filewrite("Umweltbedingungen:");
INT_y = 1;
while (INT_y < INT_AnzUwSaetze) {
if (INT_AnzUwSaetze > 2) {
inttostring(INT_y, STR_b);
filewrite(" " + STR_b + ". Umweltsatz"); }
FKT_FehlerUWB(INT_y);
INT_y = INT_y + 1; } }
if ((INT_FsIsMode & 0x04) != 0) FKT_FehlerArt(1);
if ((INT_FsIsMode & 0x40) != 0) FKT_FehlerHexCode(1); }
// Info bei Auslesefehler
else {
filewrite(STR_JobName + "(" + STR_ErrCode + "): " + STR_a);
filewrite("JobStatus: " + STR_JobStatus); } }
INT_x = INT_x + 1; } } } }
else
filewrite("Ergebnis: >>>>> Fehler beim Auslesen <<<<<");
filewrite(""); // Trennlinie einf<6E>gen, Datei schlie<69>en
filewrite("================================================================================");
fileclose(); }
else
// kein KWP-2000
INPAapiFsLesen(STR_SGBD, STR_FileName); }
// IDENT_LESEN (Einzelbefehl) ----------------------------------------------------------------------------------------
FKT_READ_SINGLE_ID(inout: bool BOL_FuncRC,
in: string STR_SGBD,
in: string STR_KN,
in: string STR_N,
in: string STR_Kat,
in: string STR_LFD) {
bool BOL_RC;
int INT_TxtLen, INT_n;
string STR_x, STR_Temp1, STR_Temp2, STR_Temp3;
BOL_FuncRC = FALSE;
userboxclose(0);
userboxopen(0,8,35,5,50, STR_Kat + ": Identifikation lesen " + STR_LFD + " von 48", "");
userboxsetcolor(0, 1, 2);
userboxftextout(0, STR_N + " wird gelesen! ", 1,3,0,16);
// Ident-Daten lesen
INP1apiJob(STR_SGBD, "IDENT", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE)
if (STR_x == "OKAY") {
INP1apiResultBinary(BOL_RC, "_TEL_ANTWORT", 1);
GetBinaryDataString(STR_x, INT_TxtLen); // Antwort-Telegramm einlesen
midstr(STR_Temp1, STR_x, 4, 2); // Diagnose-ID extrahieren
STR_Temp1 = STR_SGBD +HT+ STR_Temp1;
SCHREIBE(STR_Temp1, "ID_VAR_INDEX");
STR_Temp2 = "";
SCHREIBE(STR_Temp2, "ID_BMW_NR");
STR_Temp3 = "";
SCHREIBE(STR_Temp3, "ID_HW_NR");
SCHREIBE(STR_Temp3, "ID_SW_NR_FSV");
SCHREIBE(STR_Temp3, "ID_SW_NR_OSV");
SCHREIBE(STR_Temp3, "ID_SW_NR_MCV");
SCHREIBE(STR_Temp3, "ID_SW_NR_RES");
SCHREIBE(STR_Temp3, "ID_COD_INDEX");
SCHREIBE(STR_Temp3, "ID_DIAG_INDEX");
// Physikalische HW-Nummer lesen
INP1apiJob(STR_SGBD, "PHYSIKALISCHE_HW_NR_LESEN", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE)
SCHREIBE(STR_Temp1, "PHYSIKALISCHE_HW_NR");
else
STR_Temp1 = STR_Temp1 +HT+ "<n.v.>";
// ZB-Nummer lesen
INP1apiJob(STR_SGBD, "AIF_LESEN", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE)
SCHREIBE(STR_Temp2, "AIF_ZB_NR");
else
STR_Temp2 = STR_Temp2 +HT+ "<n.v.>";
// Programm-Referenz lesen
INP1apiJob(STR_SGBD, "ZIF_LESEN", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE)
SCHREIBE(STR_Temp3, "ZIF_PROGRAMM_REFERENZ");
else
STR_Temp3 = STR_Temp3 +HT+ "<n.v.>";
STR_Temp1 = STR_Temp1 + STR_Temp2 + STR_Temp3;
filewrite(STR_Temp1);
BOL_FuncRC = TRUE; }
else {
if (BOL_ErrorInfo_ID == TRUE) filewrite(STR_SGBD +HT+ "Error Jobstatus = " + STR_x); }
else {
INP1apiErrorText(STR_x);
if (BOL_ErrorInfo_ID == TRUE) filewrite(STR_SGBD +HT+ "Error " + STR_x); }
if (BOL_FuncRC == FALSE) {
userboxsetcolor(0,1,4);
userboxftextout(0, "FEHLER! " + STR_KN, 3,3,1,16);
delay(100); }
userboxsetcolor(0,1,2);
userboxclose(0);
viewclose(); }
// Ident lesen (alle Steuerger<65>te) -----------------------------------------------------------------------------------
FKT_IDENT_LESEN() {
string STR_x, STR_Puffer;
int INT_x, INT_y;
bool BOL_RC, BOL_RC2, BOL_RC3, BOL_RC4;
// Dateinamen automatisch aus Fahrgestellnummer generieren
STR_ID_File = STR_Pfad + STR_ID_File + ".cfg";
STR_x = "";
INP1apiJob("CAS", "STATUS_FAHRGESTELLNUMMER", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE) {
INP1apiResultText(BOL_RC, STR_x, "FGNUMMER", 1, "");
if ((BOL_RC == TRUE) && (BOL_AutoFile == TRUE)) {
midstr(STR_Puffer, STR_x, 10, 7);
trimstr(STR_Puffer);
strlen(INT_x, STR_Puffer);
INT_y = 0;
instr(INT_y, 0, STR_Puffer, "<22>");
if ((INT_x > 0) && (INT_y == -1))
STR_ID_File = STR_Pfad + STR_Puffer + ".cfg"; } }
// Dateiheader erzeugen
fileopen(STR_ID_File, STR_IDFileMode);
STR_Puffer = "Fahrgestell-Nummer: " +HT+HT+HT+ STR_x;
getdate(STR_x);
STR_Puffer = STR_Puffer +HT+HT+HT + "Ausgelesen am " + STR_x;
gettime(STR_x);
STR_Puffer = STR_Puffer + " um " + STR_x;
STR_Puffer = STR_Puffer +HT+HT+HT+HT+ "CFGFileVersion:" +HT+ STR_CfgFileVers;
filewrite(STR_Puffer);
STR_Puffer = "Fahrzeugauftrag:" +HT+HT+HT;
STR_x = "";
INP1apiJob("CAS", "C_FA_LESEN", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE) {
INP1apiResultText(BOL_RC2, STR_x, "FAHRZEUGAUFTRAG", 1, "");
if (BOL_RC2 == TRUE) {
INP1apiJob("FA", "FA_STREAM2STRUCT", "1;"+STR_x, "");
INP1apiResultText(BOL_RC3, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC3 == TRUE) {
INP1apiResultText(BOL_RC4, STR_x, "STANDARD_FA", 1, "");
if (BOL_RC4 == TRUE)
STR_Puffer = STR_Puffer + STR_x;
else
STR_Puffer = STR_Puffer + "Decodierung nicht verf<72>gbar"; }
else
STR_Puffer = STR_Puffer + "Fehler beim Decodieren"; }
else
STR_Puffer = STR_Puffer + "nicht verf<72>gbar"; }
else
STR_Puffer = STR_Puffer + "Fehler beim Auslesen";
filewrite(STR_Puffer);
filewrite("");
STR_Puffer = "SGBD" +HT+ "Diag-ID" +HT+ "Var-IDX" +HT;
STR_Puffer = STR_Puffer + "HW-NR" +HT+ "HW*NR" +HT+ "ZB-NR" +HT;
STR_Puffer = STR_Puffer + "HW-IDX" +HT+ "FSV" +HT+ "OSV" +HT;
STR_Puffer = STR_Puffer + "MCV" +HT+ "RES" +HT+ "Codier-IDX" +HT;
STR_Puffer = STR_Puffer + "Diag-IDX" +HT+ "Progr.Ref.";
filewrite(STR_Puffer);
filewrite("");
// Bereitschaft ZGM / SGM-ZGM pr<70>fen
BOL_RC = FALSE;
BOL_RC2 = FALSE;
INP1apiJob("ZGM_E65", "IDENT", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
// ACHTUNG: Tabelle enthielt keine Angaben <20>ber SGM
// IDENT_LESEN bei jedem Steuerger<65>t
if ((BOL_RC == TRUE) || (BOL_RC2 == TRUE) || (STR_STD_OUT == "CAN")) {
FKT_READ_SINGLE_ID(BOL_RC, "AHM_E65", "AHM", "Anh<6E>ngermodul", "", "1"); //Diag-ID: 71;
FKT_READ_SINGLE_ID(BOL_RC, "AMP_60", "AMP", "Top HIFI Verst<73>rker", "Fahrwerk", "2"); //Diag-ID: 37;
FKT_READ_SINGLE_ID(BOL_RC, "BFS_87", "BFS", "Beifahrersitz", "", "3"); //Diag-ID: 6E;
FKT_READ_SINGLE_ID(BOL_RC, "CAS", "CAS", "Car Access System", "Karosserie", "4"); //Diag-ID: 40;
// FKT_READ_SINGLE_ID(BOL_RC, "CCCA60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_ID(BOL_RC, "CCCG60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_ID(BOL_RC, "CCC_60", "CCC", "Car Comunikation Computer", "", "0"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "CDC_E65", "CDC", "Audio CD-Changer", "Karosserie", "5"); //Diag-ID: 3C;
FKT_READ_SINGLE_ID(BOL_RC, "CID_87", "Cid", "Central Information Display ", "", "6"); //Diag-ID: 73;
FKT_READ_SINGLE_ID(BOL_RC, "CID_60", "CID FLAP", "Central Information Display ", "Karosserie", "7"); //Diag-ID: 73;
FKT_READ_SINGLE_ID(BOL_RC, "MS450DS0", "DME1-6", "Digitale Motorelektronik 1, 6-Zylinder", "", "8"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "ME9E65_6", "DME1-8", "Digitale Motorelektronik 1, 4-8-Zylinder", "", "9"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "Me9N45", "DME 1.6", "Motorelektronik 1,6 Liter", "", "10"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "MEV9N46", "DME 2.0", "Motorelektronik 2.0 Liter", "", "11"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "D50VR14a", "DDE1", "Digitale Diesel Elektronik 1", "", "12"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "D50M47A0", "DDE1", "Digitale Diesel Elektronik 1", "", "13"); //Diag-ID: 12;
FKT_READ_SINGLE_ID(BOL_RC, "DSC_87", "DSC", "Dynamic Stability Control", "", "14"); //Diag-ID: 29;
FKT_READ_SINGLE_ID(BOL_RC, "DWA_E65", "DWA", "Diebstahl-Warnanlage", "", "15"); //Diag-ID: 41;
FKT_READ_SINGLE_ID(BOL_RC, "EKP_60", "EKP", "Elektronische Kraftstoffpumpe", "", "16"); //Diag-ID: 17;
FKT_READ_SINGLE_ID(BOL_RC, "FAS_87", "FAS", "Fahrersitz", "", "17"); //Diag-ID: 6D;
FKT_READ_SINGLE_ID(BOL_RC, "FRM_87", "FRMFA", "Fu<46>raummodul Fahrer", "", "18"); //Diag-ID: 72;
FKT_READ_SINGLE_ID(BOL_RC, "FZD_87", "FZD", "Funktion Zentrum Dach", "", "19"); //Diag-ID: 56;
// FKT_READ_SINGLE_ID(BOL_RC, "FBI_E65", "FBI", "Flexible Bus Interface", "Karosserie", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-MMID", "Car Communication Computer: MMI-Descr", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-MMIFW", "Car Communication Computer: MMI-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-ONLINE", "Car Communication Computer: Online Pack", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-PFS", "Car Communication Computer: PFS-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-POS", "Car Communication Computer: Pos. Mod.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-RSG", "Car Communication Computer: Rear Seat G.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_ID(BOL_RC, "", "CCC-TVID", "Car Communication Computer: TV-VID-SW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
FKT_READ_SINGLE_ID(BOL_RC, "GS19", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "20"); //Diag-ID: 18;
FKT_READ_SINGLE_ID(BOL_RC, "GS19A", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "21"); //Diag-ID: 18;
FKT_READ_SINGLE_ID(BOL_RC, "IHKA87", "IHKA87", "Integr. Heiz-/Klima-Automatik ", "Karosserie", "22"); //Diag-ID: 78;
FKT_READ_SINGLE_ID(BOL_RC, "IHR_87", "IHKA87", "Integr. Heiz-/Klima-Regelung (Low)", "Karosserie", "23"); //Diag-ID: 78;
FKT_READ_SINGLE_ID(BOL_RC, "JNAV60", "JNAV", "Japan Navigation", "Karosserie", "24"); //Diag-ID: 3B;
FKT_READ_SINGLE_ID(BOL_RC, "JBBF87", "JBBF", "Junction Box Beifahrer", "", "25"); //Diag-ID: 00;
// FKT_READ_SINGLE_ID(BOL_RC, "KHI_E65", "KHI", "Kopfh<66>rermodul", "Karosserie", "0"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "KOMB87", "KOMB L2", "Instrumenten-Kombinationselektronik", "", "26"); //Diag-ID: 60;
// FKT_READ_SINGLE_ID(BOL_RC, "", "MASK-Sahara", "MASK Sahara", "", "0"); //Diag-ID: 90;
FKT_READ_SINGLE_ID(BOL_RC, "MASK60", "MASK_SH3", "MMI Audio System Controller", "Karosserie", "27"); //Diag-ID: 63;
FKT_READ_SINGLE_ID(BOL_RC, "MCGW60", "MCGW", "MASK Most-Can-Gateway", "Karosserie", "28"); //Diag-ID: 62;
FKT_READ_SINGLE_ID(BOL_RC, "MRS5", "MRS5", "Multiples R<>ckhalte System", "", "29"); //Diag-ID: 01;
FKT_READ_SINGLE_ID(BOL_RC, "NAVI60", "NAV", "Navigation", "", "30"); //Diag-ID: 3B;
FKT_READ_SINGLE_ID(BOL_RC, "PDC_87", "PDC_87", "Park Distance Control", "Karosserie", "31"); //Diag-ID: 64;
FKT_READ_SINGLE_ID(BOL_RC, "PGS_E65", "PGS", "Passive-Go System", "Karosserie", "32"); //Diag-ID: 27;
FKT_READ_SINGLE_ID(BOL_RC, "RAD1", "Radio", "Radio", "", "33"); //Diag-ID: 63;
FKT_READ_SINGLE_ID(BOL_RC, "RAD2", "Radio2", "Radio2", "", "34"); //Diag-ID: 63;
FKT_READ_SINGLE_ID(BOL_RC, "RAD2_GW", "RAD2_GW", "Radio 2 Gateway", "", "35"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "RDC_60", "RDC", "Reifen Druck System", "Karosserie", "36"); //Diag-ID: 20;
FKT_READ_SINGLE_ID(BOL_RC, "SAT_60", "SAT", "Satellitenradio Tuner", "Karosserie", "37"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "SHZH_E65", "SHZH", "Stand-/Zuheizung", "Fahrwerk", "38"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "SINE_65", "SINE", "Sirene mit Neigungsgeber", "Fahrwerk", "39"); //Diag-ID: 50;
FKT_READ_SINGLE_ID(BOL_RC, "TELE60", "TELE", "Telefon", "Karosserie", "40"); //Diag-ID: 36;
FKT_READ_SINGLE_ID(BOL_RC, "TELE60_2", "TELE", "Telefon", "Karosserie", "41"); //Diag-ID: 36;
FKT_READ_SINGLE_ID(BOL_RC, "TELJ60", "TELJ", "Telefon Japan", "Karosserie", "42"); //Diag-ID: 36;
FKT_READ_SINGLE_ID(BOL_RC, "TELU60", "TELU", "Telefon USA", "Karosserie", "43"); //Diag-ID: 36;
FKT_READ_SINGLE_ID(BOL_RC, "ULF_60", "ULF", "Univ. Lase-Freisprecheinrichtung Elektronik", "", "44"); //Diag-ID: 36;
FKT_READ_SINGLE_ID(BOL_RC, "VID_E65", "VID", "Videomodul", "", "45"); //Diag-ID: 4B; E60-SGBD: GS19A
FKT_READ_SINGLE_ID(BOL_RC, "VVT_B1_0", "VVT", "Variable Ventiltechnik", "", "46"); //Diag-ID: ;
FKT_READ_SINGLE_ID(BOL_RC, "ZBEH87", "ZBEH", "Zentral Bedienelement", "", "47"); //Diag-ID: 67;
FKT_READ_SINGLE_ID(BOL_RC, "ZBEL87", "ZBEL", "Zentral Bedienelement", "", "48"); //Diag-ID: 67;
// FKT_READ_SINGLE_ID(BOL_RC, "ZGM_E65", "ZGM", "Gatewaymodul (gleich mit JBBF)", "Karosserie", "0"); //Diag-ID: 00;
// FKT_READ_SINGLE_ID(BOL_RC, "sgm_60", "SGM", "Sicherheits- Gatewaymodul (gleich mit MRS5)", "", "0"); //Diag-ID: 00;
}
else {
userboxopen(0,8,35,5,50, "Identifikation lesen: 1 von 48", "");
userboxsetcolor(0,1,4);
userboxftextout(0, "SGM / ZGM antwortet nicht!", 1,3,0,16);
userboxftextout(0, "FEHLER!", 3,3,1,16); }
filewrite("");
filewrite("");
fileclose(); }
// Fehler- oder Infospeicher lesen (Einzelbefehl) --------------------------------------------------------------------
FKT_READ_SINGLE_FSIS(inout: bool BOL_RC,
in: bool BOL_FS,
in: string STR_Header,
in: string STR_SGBD,
in: string STR_KN,
in: string STR_N,
in: string STR_Kat,
in: string STR_LFD) {
string STR_x;
string STR_Puffer;
string STR_File;
bool BOL_ErrorInfo;
if (BOL_FS == TRUE) {
STR_File = STR_FS_File;
if (STR_FsFileMode == "s") {
STR_File = STR_Pfad + STR_KN + ".FS";
// Dateiheader generieren (Single-Mode 's')
fileopen(STR_File, "w");
filewrite("");
filewrite(STR_Header);
filewrite("================================================================================");
fileclose(); }
BOL_ErrorInfo = BOL_ErrorInfo_FS;
userboxopen(0,8,35,5,50, STR_Kat + ": Fehlerspeicher lesen " + STR_LFD + " von 48", ""); }
else {
STR_File = STR_IS_File;
if (STR_IsFileMode == "s") {
STR_File = STR_Pfad + STR_KN + ".IS";
// Dateiheader generieren (Single-Mode 's')
fileopen(STR_File, "w");
filewrite("");
filewrite(STR_Header);
filewrite("================================================================================");
fileclose(); }
BOL_ErrorInfo = BOL_ErrorInfo_IS;
userboxopen(0,8,35,5,50, STR_Kat + ": Infospeicher lesen " + STR_LFD + " von 48", ""); }
userboxsetcolor(0,1,2);
userboxftextout(0, STR_N + " wird gelesen! ", 1,3,0,16);
INP1apiJob(STR_SGBD, "IDENT", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE)
FKT_READ(STR_SGBD, STR_File, BOL_FS);
else {
if (BOL_ErrorInfo == TRUE) {
fileopen(STR_File, "a");
INP1apiErrorText(STR_x);
filewrite("");
filewrite(STR_SGBD +HT+ "Error: " + STR_x);
filewrite("");
filewrite("================================================================================");
fileclose(); }
userboxsetcolor(0,1,4);
userboxftextout(0, "FEHLER! " + STR_KN, 3,3,1,16);
delay(100); }
userboxsetcolor(0,1,2);
userboxclose(0);
viewclose(); }
// Fehler- oder Infospeicher lesen (alle Steuerger<65>te) ---------------------------------------------------------------
FKT_FSIS_LESEN(in: bool BOL_FS) {
string STR_File, STR_x, STR_Puffer, STR_Header, STR_FsIsFileMode;
int INT_x, INT_y;
bool BOL_RC, BOL_RC2;
// Dateinamen automatisch aus Fahrgestellnummer generieren
if (BOL_FS == TRUE) {
STR_FS_File = STR_Pfad + STR_FS_File + ".txt";
STR_File = STR_FS_File;
STR_FsIsFileMode = STR_FsFileMode;
INPAapiFsMode(INT_FsIsMode, "a", STR_InfoPre, STR_InfoPost, "FS_LESEN"); }
else {
STR_IS_File = STR_Pfad + STR_IS_File + ".txt";
STR_File = STR_IS_File;
STR_FsIsFileMode = STR_IsFileMode;
INPAapiFsMode(INT_FsIsMode, "a", STR_InfoPre, STR_InfoPost, "IS_LESEN"); }
STR_x = "";
INP1apiJob("CAS", "STATUS_FAHRGESTELLNUMMER", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC == TRUE) {
INP1apiResultText(BOL_RC, STR_x, "FGNUMMER", 1, "");
if ((BOL_RC == TRUE) && (BOL_AutoFile == TRUE)) {
midstr(STR_Puffer, STR_x, 10, 7);
trimstr(STR_Puffer);
strlen(INT_x, STR_Puffer);
INT_y = 0;
instr(INT_y, 0, STR_Puffer, "<22>");
if ((INT_x > 0) && (INT_y == -1)) {
STR_File = STR_Pfad + STR_Puffer + ".txt";
if (BOL_FS == TRUE)
STR_FS_File = STR_File;
else
STR_IS_File = STR_File; } } }
// Dateiheader generieren (Append-Mode 'a' und Overwrite-Mode 'w' sowie Info-File bei Single-Mode 's')
STR_Header = "Fahrgestell-Nr: " + STR_x;
getdate(STR_x);
STR_Header = STR_Header + " Datum: " + STR_x;
gettime(STR_x);
STR_Header = STR_Header + " Uhrzeit: " + STR_x;
STR_x = "================================================================================";
if (STR_FsIsFileMode == "a")
fileopen(STR_File, "a");
else
fileopen(STR_File, "w");
filewrite("");
filewrite(STR_Header);
filewrite(STR_x);
if (STR_FsIsFileMode == "s") {
filewrite("");
filewrite("Sie haben f<>r die Ablage der Daten den Single-Mode gew<65>hlt. Die Daten des jeweiligen");
filewrite("Steuerger<65>ts finden Sie in den entsprechenden Dateien (SG-Kurzname + *.FS)."); }
fileclose();
// Bereitschaft ZGM / SGM-ZGM pr<70>fen
BOL_RC = FALSE;
BOL_RC2 = FALSE;
INP1apiJob("ZGM_E65", "IDENT", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
// ACHTUNG: Tabelle enthielt keine Angaben <20>ber SGM
// FS_LESEN oder IS_LESEN bei jedem Steuerger<65>t
if ((BOL_RC == TRUE) || (BOL_RC2 == TRUE) || (STR_STD_OUT == "CAN")) {
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "AHM_E65", "AHM", "Anh<6E>ngermodul", "", "1"); //Diag-ID: 71;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "AMP_60", "AMP", "Top HIFI Verst<73>rker", "Fahrwerk", "2"); //Diag-ID: 37;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "BFS_87", "BFS", "Beifahrersitz", "", "3"); //Diag-ID: 6E;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CAS", "CAS", "Car Access System", "Karosserie", "4"); //Diag-ID: 40;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CCCA60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CCCG60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CCC_60", "CCC", "Car Comunikation Computer", "", "0"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CDC_E65", "CDC", "Audio CD-Changer", "Karosserie", "5"); //Diag-ID: 3C;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CID_87", "Cid", "Central Information Display ", "", "6"); //Diag-ID: 73;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "CID_60", "CID FLAP", "Central Information Display ", "Karosserie", "7"); //Diag-ID: 73;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "MS450DS0", "DME1-6", "Digitale Motorelektronik 1, 6-Zylinder", "", "8"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "ME9E65_6", "DME1-8", "Digitale Motorelektronik 1, 4-8-Zylinder", "", "9"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "Me9N45", "DME 1.6", "Motorelektronik 1,6 Liter", "", "10"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "MEV9N46", "DME 2.0", "Motorelektronik 2.0 Liter", "", "11"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "D50VR14a", "DDE1", "Digitale Diesel Elektronik 1", "", "12"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "D50M47A0", "DDE1", "Digitale Diesel Elektronik 1", "", "13"); //Diag-ID: 12;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "DSC_87", "DSC", "Dynamic Stability Control", "", "14"); //Diag-ID: 29;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "DWA_E65", "DWA", "Diebstahl-Warnanlage", "", "15"); //Diag-ID: 41;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "EKP_60", "EKP", "Elektronische Kraftstoffpumpe", "", "16"); //Diag-ID: 17;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "FAS_87", "FAS", "Fahrersitz", "", "17"); //Diag-ID: 6D;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "FRM_87", "FRMFA", "Fu<46>raummodul Fahrer", "", "18"); //Diag-ID: 72;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "FZD_87", "FZD", "Funktion Zentrum Dach", "", "19"); //Diag-ID: 56;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "FBI_E65", "FBI", "Flexible Bus Interface", "Karosserie", "0"); //Diag-ID: ;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-MMID", "Car Communication Computer: MMI-Descr", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-MMIFW", "Car Communication Computer: MMI-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-ONLINE", "Car Communication Computer: Online Pack", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-PFS", "Car Communication Computer: PFS-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-POS", "Car Communication Computer: Pos. Mod.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-RSG", "Car Communication Computer: Rear Seat G.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "CCC-TVID", "Car Communication Computer: TV-VID-SW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "GS19", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "20"); //Diag-ID: 18;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "GS19A", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "21"); //Diag-ID: 18;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "IHKA87", "IHKA87", "Integr. Heiz-/Klima-Automatik ", "Karosserie", "22"); //Diag-ID: 78;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "IHR_87", "IHKA87", "Integr. Heiz-/Klima-Regelung (Low)", "Karosserie", "23"); //Diag-ID: 78;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "JNAV60", "JNAV", "Japan Navigation", "Karosserie", "24"); //Diag-ID: 3B;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "JBBF87", "JBBF", "Junction Box Beifahrer", "", "25"); //Diag-ID: 00;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "KHI_E65", "KHI", "Kopfh<66>rermodul", "Karosserie", "0"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "KOMB87", "KOMB L2", "Instrumenten-Kombinationselektronik", "", "26"); //Diag-ID: 60;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "", "MASK-Sahara", "MASK Sahara", "", "0"); //Diag-ID: 90;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "MASK60", "MASK_SH3", "MMI Audio System Controller", "Karosserie", "27"); //Diag-ID: 63;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "MCGW60", "MCGW", "MASK Most-Can-Gateway", "Karosserie", "28"); //Diag-ID: 62;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "MRS5", "MRS5", "Multiples R<>ckhalte System", "", "29"); //Diag-ID: 01;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "NAVI60", "NAV", "Navigation", "", "30"); //Diag-ID: 3B;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "PDC_87", "PDC_87", "Park Distance Control", "Karosserie", "31"); //Diag-ID: 64;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "PGS_E65", "PGS", "Passive-Go System", "Karosserie", "32"); //Diag-ID: 27;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "RAD1", "Radio", "Radio", "", "33"); //Diag-ID: 63;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "RAD2", "Radio2", "Radio2", "", "34"); //Diag-ID: 63;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "RAD2_GW", "RAD2_GW", "Radio 2 Gateway", "", "35"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "RDC_60", "RDC", "Reifen Druck System", "Karosserie", "36"); //Diag-ID: 20;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "SAT_60", "SAT", "Satellitenradio Tuner", "Karosserie", "37"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "SHZH_E65", "SHZH", "Stand-/Zuheizung", "Fahrwerk", "38"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "SINE_65", "SINE", "Sirene mit Neigungsgeber", "Fahrwerk", "39"); //Diag-ID: 50;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "TELE60", "TELE", "Telefon", "Karosserie", "40"); //Diag-ID: 36;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "TELE60_2", "TELE", "Telefon", "Karosserie", "41"); //Diag-ID: 36;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "TELJ60", "TELJ", "Telefon Japan", "Karosserie", "42"); //Diag-ID: 36;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "TELU60", "TELU", "Telefon USA", "Karosserie", "43"); //Diag-ID: 36;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "ULF_60", "ULF", "Univ. Lase-Freisprecheinrichtung Elektronik", "", "44"); //Diag-ID: 36;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "VID_E65", "VID", "Videomodul", "", "45"); //Diag-ID: 4B; E60-SGBD: GS19A
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "VVT_B1_0", "VVT", "Variable Ventiltechnik", "", "46"); //Diag-ID: ;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "ZBEH87", "ZBEH", "Zentral Bedienelement", "", "47"); //Diag-ID: 67;
FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "ZBEL87", "ZBEL", "Zentral Bedienelement", "", "48"); //Diag-ID: 67;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "ZGM_E65", "ZGM", "Gatewaymodul (gleich mit JBBF)", "Karosserie", "0"); //Diag-ID: 00;
// FKT_READ_SINGLE_FSIS(BOL_RC, BOL_FS, STR_Header, "sgm_60", "SGM", "Sicherheits- Gatewaymodul (gleich mit MRS5)", "", "0"); //Diag-ID: 00;
}
else {
userboxopen(0,8,35,5,50, "Fehlerspeicher lesen: 1 von 48", "");
userboxsetcolor(0,1,4);
userboxftextout(0, "SGM / ZGM antwortet nicht!", 1,3,0,16);
userboxftextout(0, "FEHLER!", 3,3,1,16); } }
// Fehler- oder Infospeicher l<>schen (Einzelbefehl) ------------------------------------------------------------------
FKT_DEL_SINGLE_FSIS(inout: bool BOL_RC,
in: bool BOL_FS,
in: string STR_SGBD,
in: string STR_KN,
in: string STR_N,
in: string STR_Kat,
in: string STR_LFD) {
string STR_x;
if (BOL_FS == TRUE)
userboxopen(0,8,35,5,50, STR_Kat + ": Fehlerspeicher l<>schen " + STR_LFD + " von 48", "");
else
userboxopen(0,8,35,5,50, STR_Kat + ": Infospeicher l<>schen " + STR_LFD + " von 48", "");
userboxsetcolor(0,1,2);
userboxftextout(0, STR_N + " wird gel<65>scht! ", 1,3,0,16);
BOL_RC = FALSE;
if (BOL_FS == TRUE)
INP1apiJob(STR_SGBD, "FS_LOESCHEN", "", "");
else
INP1apiJob(STR_SGBD, "IS_LOESCHEN", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
if (BOL_RC!=TRUE) {
userboxsetcolor(0,1,4);
userboxftextout(0, "FEHLER! " + STR_KN, 3,3,1,16);
delay(100); }
userboxsetcolor(0,1,2);
userboxclose(0);
viewclose(); }
// Fehler- oder Infospeicher l<>schen (alle Steuerger<65>te) -------------------------------------------------------------
FKT_FSIS_LOESCHEN(in: bool BOL_FS) {
string STR_x;
bool BOL_RC, BOL_RC2;
// Bereitschaft ZGM / SGM-ZGM pr<70>fen
BOL_RC = FALSE;
BOL_RC2 = FALSE;
INP1apiJob("ZGM_E65", "IDENT", "", "");
INP1apiResultText(BOL_RC, STR_x, "JOB_STATUS", 1, "");
// ACHTUNG: Tabelle enthielt keine Angaben <20>ber SGM
// FS_LOESCHEN bei jedem Steuerger<65>t
if ((BOL_RC == TRUE) || (BOL_RC2 == TRUE) || (STR_STD_OUT == "CAN")) {
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "AHM_E65", "AHM", "Anh<6E>ngermodul", "", "1"); //Diag-ID: 71;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "AMP_60", "AMP", "Top HIFI Verst<73>rker", "Fahrwerk", "2"); //Diag-ID: 37;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "BFS_87", "BFS", "Beifahrersitz", "", "3"); //Diag-ID: 6E;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CAS", "CAS", "Car Access System", "Karosserie", "4"); //Diag-ID: 40;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CCCA60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CCCG60", "CCC", "", "", "0"); //Diag-ID: ;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CCC_60", "CCC", "Car Comunikation Computer", "", "0"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CDC_E65", "CDC", "Audio CD-Changer", "Karosserie", "5"); //Diag-ID: 3C;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CID_87", "Cid", "Central Information Display ", "", "6"); //Diag-ID: 73;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "CID_60", "CID FLAP", "Central Information Display ", "Karosserie", "7"); //Diag-ID: 73;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "MS450DS0", "DME1-6", "Digitale Motorelektronik 1, 6-Zylinder", "", "8"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "ME9E65_6", "DME1-8", "Digitale Motorelektronik 1, 4-8-Zylinder", "", "9"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "Me9N45", "DME 1.6", "Motorelektronik 1,6 Liter", "", "10"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "MEV9N46", "DME 2.0", "Motorelektronik 2.0 Liter", "", "11"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "D50VR14a", "DDE1", "Digitale Diesel Elektronik 1", "", "12"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "D50M47A0", "DDE1", "Digitale Diesel Elektronik 1", "", "13"); //Diag-ID: 12;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "DSC_87", "DSC", "Dynamic Stability Control", "", "14"); //Diag-ID: 29;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "DWA_E65", "DWA", "Diebstahl-Warnanlage", "", "15"); //Diag-ID: 41;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "EKP_60", "EKP", "Elektronische Kraftstoffpumpe", "", "16"); //Diag-ID: 17;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "FAS_87", "FAS", "Fahrersitz", "", "17"); //Diag-ID: 6D;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "FRM_87", "FRMFA", "Fu<46>raummodul Fahrer", "", "18"); //Diag-ID: 72;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "FZD_87", "FZD", "Funktion Zentrum Dach", "", "19"); //Diag-ID: 56;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "FBI_E65", "FBI", "Flexible Bus Interface", "Karosserie", "0"); //Diag-ID: ;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-MMID", "Car Communication Computer: MMI-Descr", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-MMIFW", "Car Communication Computer: MMI-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-ONLINE", "Car Communication Computer: Online Pack", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-PFS", "Car Communication Computer: PFS-FW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-POS", "Car Communication Computer: Pos. Mod.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-RSG", "Car Communication Computer: Rear Seat G.", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "CCC-TVID", "Car Communication Computer: TV-VID-SW", "Karosserie", "0"); //Diag-ID: ; bislang nicht relevant
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "GS19", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "20"); //Diag-ID: 18;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "GS19A", "EGS", "Elektronische Getriebesteuerger<65>t", "Karosserie", "21"); //Diag-ID: 18;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "IHKA87", "IHKA87", "Integr. Heiz-/Klima-Automatik ", "Karosserie", "22"); //Diag-ID: 78;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "IHR_87", "IHKA87", "Integr. Heiz-/Klima-Regelung (Low)", "Karosserie", "23"); //Diag-ID: 78;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "JNAV60", "JNAV", "Japan Navigation", "Karosserie", "24"); //Diag-ID: 3B;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "JBBF87", "JBBF", "Junction Box Beifahrer", "", "25"); //Diag-ID: 00;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "KHI_E65", "KHI", "Kopfh<66>rermodul", "Karosserie", "0"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "KOMB87", "KOMB L2", "Instrumenten-Kombinationselektronik", "", "26"); //Diag-ID: 60;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "", "MASK-Sahara", "MASK Sahara", "", "0"); //Diag-ID: 90;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "MASK60", "MASK_SH3", "MMI Audio System Controller", "Karosserie", "27"); //Diag-ID: 63;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "MCGW60", "MCGW", "MASK Most-Can-Gateway", "Karosserie", "28"); //Diag-ID: 62;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "MRS5", "MRS5", "Multiples R<>ckhalte System", "", "29"); //Diag-ID: 01;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "NAVI60", "NAV", "Navigation", "", "30"); //Diag-ID: 3B;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "PDC_87", "PDC_87", "Park Distance Control", "Karosserie", "31"); //Diag-ID: 64;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "PGS_E65", "PGS", "Passive-Go System", "Karosserie", "32"); //Diag-ID: 27;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "RAD1", "Radio", "Radio", "", "33"); //Diag-ID: 63;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "RAD2", "Radio2", "Radio2", "", "34"); //Diag-ID: 63;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "RAD2_GW", "RAD2_GW", "Radio 2 Gateway", "", "35"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "RDC_60", "RDC", "Reifen Druck System", "Karosserie", "36"); //Diag-ID: 20;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "SAT_60", "SAT", "Satellitenradio Tuner", "Karosserie", "37"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "SHZH_E65", "SHZH", "Stand-/Zuheizung", "Fahrwerk", "38"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "SINE_65", "SINE", "Sirene mit Neigungsgeber", "Fahrwerk", "39"); //Diag-ID: 50;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "TELE60", "TELE", "Telefon", "Karosserie", "40"); //Diag-ID: 36;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "TELE60_2", "TELE", "Telefon", "Karosserie", "41"); //Diag-ID: 36;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "TELJ60", "TELJ", "Telefon Japan", "Karosserie", "42"); //Diag-ID: 36;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "TELU60", "TELU", "Telefon USA", "Karosserie", "43"); //Diag-ID: 36;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "ULF_60", "ULF", "Univ. Lase-Freisprecheinrichtung Elektronik", "", "44"); //Diag-ID: 36;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "VID_E65", "VID", "Videomodul", "", "45"); //Diag-ID: 4B; E60-SGBD: GS19A
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "VVT_B1_0", "VVT", "Variable Ventiltechnik", "", "46"); //Diag-ID: ;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "ZBEH87", "ZBEH", "Zentral Bedienelement", "", "47"); //Diag-ID: 67;
FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "ZBEL87", "ZBEL", "Zentral Bedienelement", "", "48"); //Diag-ID: 67;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "ZGM_E65", "ZGM", "Gatewaymodul (gleich mit JBBF)", "Karosserie", "0"); //Diag-ID: 00;
// FKT_DEL_SINGLE_FSIS(BOL_RC, BOL_FS, "sgm_60", "SGM", "Sicherheits- Gatewaymodul (gleich mit MRS5)", "", "0"); //Diag-ID: 00;
}
else {
userboxopen(0,8,35,5,50, "Fehlerspeicher l<>schen: 1 von 48", "");
userboxsetcolor(0,1,4);
userboxftextout(0, "SGM / ZGM antwortet nicht!", 1,3,0,16);
userboxftextout(0, "FEHLER!", 3,3,1,16); } }
//**********************************************************************************************************************
//** **
//** M E N <20> - D E F I N I T I O N E N **
//** **
//**********************************************************************************************************************
// Hauptmen<65> ---------------------------------------------------------------------------------------------------------
MENU MNU_Main() {
INIT {
setmenutitle("Hauptmen<65>"); }
ITEM(1, "Info") {
setscreen(SCR_Info, TRUE);
userboxclose(0);
viewclose(); }
ITEM(2, "Ident-Daten") {
setmenu(MNU_Ident);
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(3, "Fehler") {
setmenu(MNU_FS);
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(4, "Infospeicher") {
setmenu(MNU_IS);
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(5, "") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(6, "") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(7, "Protokoll") {
INP1apiJob("MS450DS0", "DIAGNOSEPROTOKOLL_SETZEN", "BMW-FAST", "");
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(8, "") {
setscreen(SCR_Main,TRUE);
userboxclose(0);
viewclose(); }
ITEM(9, "") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(10, "Ende") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose();
FKT_SAVE_SETTINGS();
exit(); } }
// IDENT-Men<65> --------------------------------------------------------------------------------------------------------
MENU MNU_Ident() {
int INT_ErrCode;
INIT {
setmenutitle("Ident-Daten");
setitem(2, "Anzeigen",FALSE);
setitem(3, "Drucken",FALSE); }
ITEM(1, "Lesen") {
setscreen(SCR_Ident,TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50,"Identifikation lesen "+STR_ID_File,"");
userboxftextout(0,"Die Identifikation wird gelesen ... bitte warten.",1,3,0,0);
delay(100);
userboxclose(0);
FKT_READ_INI_FILE(); // INI-File auslesen (inzwischen evtl. ge<67>ndert)
FKT_IDENT_LESEN();
setitem(2, "Anzeigen", TRUE);
setitem(3, "Drucken", TRUE); }
ITEM(2, "Anzeigen") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose();
viewopen(STR_ID_File,"Identifikation anzeigen "+STR_ID_File); }
ITEM(3, "Drucken") {
setscreen(SCR_Ident,TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Identifikation drucken " + STR_ID_File, "");
userboxftextout(0, "Die Identifikation wird gedruckt ... bitte warten.", 1,3,0,0);
printfile(INT_ErrCode, STR_ID_File, "", "", TRUE);
userboxclose(0); }
ITEM(4, "") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(5, "") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(6, "") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(7, "") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(8, "") {
setscreen(SCR_Ident, TRUE);
userboxclose(0);
viewclose(); }
ITEM(9, "Zur<75>ck") {
setmenu(MNU_Main);
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(10, "Ende") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose();
FKT_SAVE_SETTINGS();
exit(); } }
// Fehlerspeicher-Men<65> -----------------------------------------------------------------------------------------------
MENU MNU_FS() {
int INT_ErrCode;
INIT {
setmenutitle("Fehlerspeicher");
setitem(3, "Anzeigen", FALSE);
setitem(4, "Drucken", FALSE); }
ITEM(1, "Lesen") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Fehlerspeicher lesen " + STR_FS_File,"");
userboxftextout(0, "Die Fehlerspeicher werden gelesen ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_READ_INI_FILE(); // INI-File auslesen (inzwischen evtl. ge<67>ndert)
INT_FsIsMode = INT_FsMode; // Detail-Lesen ausschalten
FKT_FSIS_LESEN(TRUE);
setitem(3, "Anzeigen", TRUE);
setitem(4, "Drucken", TRUE); }
ITEM(2, "Lesen Detail") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Fehlerspeicher lesen " + STR_FS_File,"");
userboxftextout(0, "Die Fehlerspeicher werden gelesen ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_READ_INI_FILE(); // INI-File auslesen (inzwischen evtl. ge<67>ndert)
INT_FsIsMode = INT_FsMode + 0x100; // Detail-Lesen einschalten
FKT_FSIS_LESEN(TRUE);
setitem(3, "Anzeigen", TRUE);
setitem(4, "Drucken", TRUE); }
ITEM(3, "Anzeigen") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose();
viewopen(STR_FS_File, "Fehlerspeicher anzeigen " + STR_FS_File); }
ITEM(4, "Drucken") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Fehlerspeicher drucken " + STR_FS_File,"");
userboxftextout(0, "Die Fehlerspeicher werden gedruckt ... bitte warten.", 1,3,0,0);
printfile(INT_ErrCode, STR_FS_File, "", "", TRUE);
userboxclose(0); }
ITEM(5, "L<>schen") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Fehlerspeicher l<>schen ", "");
userboxftextout(0, "Die Fehlerspeicher werden gel<65>scht ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_FSIS_LOESCHEN(TRUE);
setitem(3, "Anzeigen", FALSE);
setitem(4, "Drucken", FALSE); }
ITEM(6, "") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(7, "") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(8, "") {
setscreen(SCR_FS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(9, "Zur<75>ck") {
setmenu(MNU_Main);
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(10, "Ende") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose();
FKT_SAVE_SETTINGS();
exit(); } }
// Infospeicher-Men<65> -------------------------------------------------------------------------------------------------
MENU MNU_IS() {
int INT_ErrCode;
INIT {
setmenutitle("Infospeicher");
setitem(3, "Anzeigen", FALSE);
setitem(4, "Drucken", FALSE); }
ITEM(1, "Lesen") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Infospeicher lesen " + STR_IS_File,"");
userboxftextout(0, "Die Infospeicher werden gelesen ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_READ_INI_FILE(); // INI-File auslesen (inzwischen evtl. ge<67>ndert)
INT_FsIsMode = INT_IsMode; // Detail-Lesen ausschalten
FKT_FSIS_LESEN(FALSE);
setitem(3, "Anzeigen", TRUE);
setitem(4, "Drucken", TRUE); }
ITEM(2, "Lesen Detail") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Infospeicher lesen " + STR_IS_File,"");
userboxftextout(0, "Die Infospeicher werden gelesen ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_READ_INI_FILE(); // INI-File auslesen (inzwischen evtl. ge<67>ndert)
INT_FsIsMode = INT_IsMode + 0x100; // Detail-Lesen einschalten
FKT_FSIS_LESEN(FALSE);
setitem(3, "Anzeigen", TRUE);
setitem(4, "Drucken", TRUE); }
ITEM(3, "Anzeigen") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose();
viewopen(STR_IS_File, "Infospeicher anzeigen " + STR_IS_File); }
ITEM(4, "Drucken") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Infospeicher drucken " + STR_IS_File,"");
userboxftextout(0, "Die Infospeicher werden gedruckt ... bitte warten.", 1,3,0,0);
printfile(INT_ErrCode, STR_IS_File, "", "", TRUE);
userboxclose(0); }
ITEM(5, "L<>schen") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose();
userboxopen(0,8,35,5,50, "Infospeicher l<>schen ", "");
userboxftextout(0, "Die Infospeicher werden gel<65>scht ... bitte warten.", 1,3,0,0);
delay(100);
userboxclose(0);
FKT_FSIS_LOESCHEN(FALSE);
setitem(3, "Anzeigen", FALSE);
setitem(4, "Drucken", FALSE); }
ITEM(6, "") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(7, "") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(8, "") {
setscreen(SCR_IS, TRUE);
userboxclose(0);
viewclose(); }
ITEM(9, "Zur<75>ck") {
setmenu(MNU_Main);
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose(); }
ITEM(10, "Ende") {
setscreen(SCR_Main, TRUE);
userboxclose(0);
viewclose();
FKT_SAVE_SETTINGS();
exit(); } }
//**********************************************************************************************************************
//**