//********************************************************************** //* //* Nacharbeitssource für INPA //* //* Sourcedatei DDE73KWP.SRC //* //********************************************************************** //* History : //* 03.07.2007 asc V0.10 Erstellung auf Basis von DDE72N57 //* allgemeine STEUERN_SELECTIV Funktion eingefügt //* 31.07.2007 asc V0.11 Anpassung an akutelle SGBD //* 14.08.2007 asc V0.20 SCR Umfänge hinzu //* 12.11.2007 asc V0.30 EWS Menü hinzu //* 23.11.2007 asc V0.40 DDLI Block hinzu //* 10.12.2007 asc V0.50 SCR Umfänge erweitert, allgemeine STEUERN_SELECTIV Funktion um Anzeige zusätzlicher Messwerte erweitert //* 13.12.2007 au V0.60 SCR-Labels korrigiert //* 19.12.2007 au V0.70 SCR-Labels hinzugefügt //* 11.01.2008 ib V0.80 SCR-Messdatenaufzeichnung hinzu gefügt //* 17.01.2008 au V0.90 SCR-Messwerte hinzugenommen //* 28.01.2008 au V1.00 IMA-Daten Menü angepasst wegen DDE7 //********************************************************************** #include "inpa.h" #include "BMW_STD.H" // Titel, Version, Verantwortung, Steuergerät string titel ="Nacharbeitsscript DDE7 N57 E60, E65, E70, E9x KWP2000"; // Titel Nacharbeitsprogramm string version="1.00"; // Version Nacharbeitsprogramm string origin ="BMW TI-431 Majerus/Unverdorben"; // Verantwortung Nacharbeitsprogramm string sgbd ="D73N57B0,D73N57C0"; // Steuergerät string gruppe ="D_MOTOR"; //D_MOTOR // Gruppendatei string speicher_lesen_parameter="LAR;FLASH;UIFM;-ROMI;-ROMX;-RAMIS;-RAMIL;-RAMXX;-NVRAM"; // Moegliche Speicher-Parameter: "LAR;FLASH;UIFM;ROMI;ROMX;RAMIS;RAMIL;RAMXX;NVRAM"; // Bei Leerstring erfolgt kein Menüpunkt Speicher Lesen // allgemeine globale Variable string text_var; real zahlen_var; int ganz_zahl, ende = 0; bool logik_var; string job_state; // JOB_STATUS Variable int input_state; // Eingabestatus int input_ok=0; // Eingabe mit OK beendet int ll_wert; int inputstate=0; // Variable fuer Abbruchbedingung bei Dialogbox string Diag_Index; int val1; // Variable 1 int taste; string blank=" "; string glf; // Gesteuerte Luftführung int i = 0; long longval; long vergleich_var = 1; long stelle; string steller; //Enthält Label aus Tabelle "Steller" string st_name; //Voller Name int st_ein; //Wert für Ansteuerung "EIN" int st_aus; //Wert für Ansteuerung "AUS" string st_dim; //Einheit ("-" => digital) string st_add_label; //Zusätzlich anzuzeigende Messwerte string datei_ddli = ""; // Filename zum Abspeichern der DDLI-Liste string datei_rec = ""; // Filename zum Abspeichern der Messwerte // start of :#include "BMW_STD.SRC" //********************************************************************** //* //* INPA Library-Funktionen BMW_STD.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 05.05.2000 rd V0.01 Ersterstellung //* 23.06.2000 rd V0.02 Überarbeitung für E65 und E85 //* 04.07.2000 rd V0.03 Überarbeitung der Funktionen //* 08.11.2000 rd V0.04 AIF Lesen Results überarbeitet //* 01.03.2001 rd V0.05 m_status_flag neu hinzu //* 02.03.2001 rd V0.06 m_steuern_flag neu hinzu //* 18.05.2001 rd V0.07 AIF-Ausgabe verbessert //* 25.04.2002 rd V0.08 Erweiterung HS_LESEN //* 25.04.2002 rd V1.00 Freigabe //* 24.09.2002 rd V1.01 Erweiterung Ident für DS2 //* 19.11.2002 rd V1.02 FS_MODE erweitert um PCODEs //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* rd V2.00 Entfernung EldiAuftragLesen, EldiAuftragEingeben //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //* GA V3.00 Hinweis im Hauptfenster, wenn Simulationsmodus aktiv ist. //* 05.04.2007 GA V3.01 Abfrage auf IS_ und HS_LOESCHEN implementiert //********************************************************************** string package="3.01"; //********************************************************************** //* //* Globale Variablen //* //********************************************************************** // Umrechnungsfaktoren deutsch / englisch real m_c = 1.0; // Grad Celsius -> Fahrenheit z = x * m_c + a_c real a_c = 0.0; real m_km = 1.0; // km -> miles z = x * m_km real m_l = 1.0; // Liter -> Gallon US z = x * m_l // für Info string sgbd_ecu; string sgbd_origin; string sgbd_revision; string sgbd_package; string sgbd_sprache; string sgbd_comment; string gruppe_ecu; string gruppe_origin; string gruppe_revision; string gruppe_comment; // für Status-Menü bool m_status_flag=TRUE; // True Status-Menü wird angezeigt // für Steuern-Menü bool m_steuern_flag=TRUE; // True Steuern-Menü wird angezeigt // für FS_LESEN speichern bool fs_lesen_save_as_flag; // für IS_LESEN speichern bool is_lesen_save_as_flag; // für HS_LESEN speichern bool hs_lesen_save_as_flag; // für FS_LESEN bool fs_lesen_flag; // True wenn JOB vorhanden // für IS_LESEN bool is_lesen_flag; // True wenn JOB vorhanden // für HS_LESEN bool hs_lesen_flag; // True wenn JOB vorhanden // für IS_LOESCHEN bool is_loeschen_flag; // True wenn JOB vorhanden // für HS_LOESCHEN bool hs_loeschen_flag; // True wenn JOB vorhanden // Handle für FS_LESEN int f_ort_nr_buffer = 0; int f_ort_text_buffer = 0; // In INPA.INI wird festgelegt ob // nach FS- IS-, HS-Löschen automatisch wieder gelesen wird. bool deleteread_flag; // Wenn Ediabas im Simulationsmode läuft, dies im Hauptfenster anzeigen bool simulation_flag; // für Ident Screen, bzw. SVK Screen bei UDS (ISO 14229) int ident_typ; // 1= DS2 // 2= BMW Fast // 3= UDS (ISO 14229) // für SPEICHER_LESEN bool speicher_lesen_flag; // True wenn JOB vorhanden bool speicher_lesen_lar_flag; bool speicher_lesen_uifm_flag; bool speicher_lesen_romi_flag; bool speicher_lesen_romx_flag; bool speicher_lesen_nvram_flag; bool speicher_lesen_ramis_flag; bool speicher_lesen_ramxx_flag; bool speicher_lesen_flash_flag; bool speicher_lesen_ramil_flag; // für Speicher lesen Ausgabe string speicher_lesen_text = ""; string speicher_lesen_seg_adr_anz = ""; string speicher_lesen_adresse = "0x000000"; int speicher_lesen_anzahl = 64; //********************************************************************** //* //* Deklaration der Funktionen //* //********************************************************************** extern ScriptInit(); // befindet sich im Hauptprogramm // start of :#include "BATTERIE.SRC" //********************************************************************** //* //* INPA Library-Funktionen BATTERIE.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 04.07.2000 rd V0.03 Ersterstellung //* 25.04.2002 rd V1.00 Freigabe //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 01.04.2004 rd V2.01 Im Fehlerfalle delay eingebaut //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //********************************************************************** //********************************************************************** //* //* ShowBatteryIgnition //* //* Anzeige des Batterie- und Zündungs-Status //* //********************************************************************** ShowBatteryIgnition() { bool fehlerflag; // Fehler aufgetreten bool fehlerflag2; // Fehler aufgetreten bool zuendung; // Zündung ein/aus bool batterie; // Batterie ein/aus int wert; // allgemeine Variable ftextout("Batterie :", 0,5,1,0); ftextout("Zündung :", 0,45,1,0); INPAapiJob("UTILITY","STATUS_UBATT","",""); INP1apiResultInt(fehlerflag,wert,"STAT_UBATT",1); if ((fehlerflag!=TRUE) || (wert==0)) { batterie=FALSE; zuendung=FALSE; } else { batterie=TRUE; INPAapiJob("UTILITY","STATUS_ZUENDUNG","",""); INP1apiResultInt(fehlerflag2,wert,"STAT_ZUENDUNG",1); if ((fehlerflag2!=TRUE) || (wert==0)) zuendung=FALSE; else zuendung=TRUE; } digitalout(batterie, 0,20,"",""); if (batterie==TRUE) ftextout("ein ", 0,25,1,0); else { if (fehlerflag==TRUE) { ftextout("aus ", 0,25,1,0); } else { ftextout("--- ", 0,25,1,0); } } digitalout(zuendung, 0,62,"",""); if (zuendung==TRUE) ftextout("ein ", 0,67,1,0); else { if (fehlerflag2==TRUE) { ftextout("aus ", 0,67,1,0); } else { ftextout("--- ", 0,67,1,0); } } if ((fehlerflag!=TRUE) || (fehlerflag2!=TRUE)) { delay(2000); } } // -- EOF -- // end of :#include "BATTERIE.SRC" // start of :#include "GRP_INFO.SRC" //********************************************************************** //* //* INPA Library-Funktionen GRP_INFO.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 04.07.2000 rd V0.03 Ersterstellung //* 25.04.2002 rd V1.00 Freigabe //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 EDIABAS.INI-Abfrage ob Simulationsmode aktiv ist //* 18.10.2006 GA V3.01 Abfrage ob EDIABAS im Simulationsmodus läuft ist jetzt nicht mehr auf Pfad c:\windows\ediabas.ini beschränkt //********************************************************************** //********************************************************************** //* //* GruppenDateiInfo //* //* Versionsinformationen über Gruppendatei //* //********************************************************************** import32 "C" lib "api32.DLL::__apiGetConfig" ApiGetConfig(in:long Handle,in: string Name,out: string Buffer, returns: int ReturnedValue); GruppenDateiInfo( in: string grp, inout: string grp_ecu, inout: string grp_origin, inout: string grp_revision, inout: string grp_comment) { string CurDir; string Temp; string Puffer; int Size; long PufferSize; int ret_int; string BS; string CR; int pos1; int pos2; int simulation; int input; long Handle; int Returned; string ini_path= "??????????????????????";//Variable muß ausreichend lang vorbelegt sein! // C:\ec-apps\ediabas\bin chr( 92, BS ); // '\' chr( 13, CR ); // Pfad für EDIBAS.INI ermitteln // WERT 2 wurde durch Tests ermittelt Handle=2; ApiGetConfig(Handle,"EDIABASINIPATH",ini_path,Returned); //Abfrage, ob EDIABAS im Simulationsmodus betrieben wird. Hinweisfenster erfolgt im Hauptfenster s_main GetPrivateProfileInt("Configuration","Simulation",2,ini_path+BS+"ediabas.ini",simulation); if (simulation == 1) simulation_flag= TRUE; else simulation_flag= FALSE; Size=256; space(CurDir,Size); GetCurrentDirectory(256, CurDir, ret_int); SetCurrentDirectory("\EDIABAS\BIN", ret_int); Size=1024; space(Puffer,Size); inttolong(Size, PufferSize); XTRACT("\ediabas\ecu"+ BS + grp + ".grp", 1, Puffer, PufferSize, ret_int); grp_ecu=""; instr(pos1, 0, Puffer, "ECU:"); if (pos1 >= 0) { pos1 = pos1 + 4; instr(pos2, pos1, Puffer, CR ); if (pos2 > pos1) midstr(grp_ecu, Puffer, pos1, pos2 - pos1); } grp_origin=""; instr(pos1, 0, Puffer, "ORIGIN:"); if (pos1 >= 0) { pos1 = pos1 + 7; instr(pos2, pos1, Puffer, CR ); if (pos2 > pos1) midstr(grp_origin, Puffer, pos1, pos2 - pos1); } grp_revision=""; instr(pos1, 0, Puffer, "REVISION:"); if (pos1 >= 0) { pos1 = pos1 + 9; instr(pos2, pos1, Puffer, CR ); if (pos2 > pos1) midstr(grp_revision, Puffer, pos1, pos2 - pos1); } grp_comment=""; pos1=0; pos2=0; while ((pos1 >= 0) && (pos2 >= 0)) { instr(pos1, pos2, Puffer, "ECUCOMMENT:"); if (pos1 >= 0) { pos1 = pos1 + 11; instr(pos2, pos1, Puffer, CR ); if (pos2 > pos1) { midstr(Temp, Puffer, pos1, pos2 - pos1); grp_comment=grp_comment+Temp+","; } } } SetCurrentDirectory(CurDir, ret_int); } // -- EOF -- // end of :#include "GRP_INFO.SRC" // start of :#include "SGBDINFO.SRC" //********************************************************************** //* //* INPA Library-Funktionen SGBDINFO.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 04.07.2000 rd V0.03 Ersterstellung //* 25.04.2002 rd V1.00 Freigabe //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //********************************************************************** //********************************************************************** //* //* Deklaration der Funktionen //* //********************************************************************** extern SgbdInfo(in: string sg, inout: string sg_ecu, inout: string sg_origin, inout: string sg_revision, inout: string sg_package, inout: string sg_comment, inout: string sg_sprache); //********************************************************************** //* //* SgbdInfo //* //* Versionsinformationen über SGBD //* //********************************************************************** SgbdInfo( in: string sg, inout: string sg_ecu, inout: string sg_origin, inout: string sg_revision, inout: string sg_package, inout: string sg_comment, inout: string sg_sprache) { INPAapiJob(sg,"INFO","",""); INPAapiResultText(sg_ecu,"ECU",1,""); INPAapiResultText(sg_revision,"REVISION",1,""); INPAapiResultText(sg_package,"PACKAGE",1,""); INPAapiResultText(sg_origin,"ORIGIN",1,""); INPAapiResultText(sg_comment,"COMMENT",1,""); INPAapiResultText(sg_sprache,"SPRACHE",1,""); } // -- EOF -- // end of :#include "SGBDINFO.SRC" // start of :#include "SGBDINPA.SRC" //********************************************************************** //* //* INPA Library-Funktionen SgbdInpa.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* 12.03.2003 iS V1.05 Aufteilung der Funktionen(SgbdInpaCheck,GroupCheck) //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //* GA V3.00 Gezielte Ausgabe, wenn Gruppendatei oder SGBD nicht existiert //* GA V3.00 INPA.INI, [EXTRA], SRIPTS auslesen, ob "deleteread" gesetzt, //* GA V3.00 um nach FS- IS-, HS-Löschen automatisch wieder zu lesen. //* 18.10.2006 GA V3.01 Check bezüglich auf Gruppen-Simulationsdatei, sowie "Identification error" erweitert //* 24.10.2006 GA V3.02 Überprüfung ob T_GRTB.PRG vorhanden eingebaut //********************************************************************** //********************************************************************** //* //* SgbdInpaCheck //* //* Überprüfung ob SGBD zu INPA passt //* //********************************************************************** SgbdInpaCheck() { string sgbd_version; // für Versionskontrolle string inpa_version; // für Versionskontrolle string inpa_sprache="deutsch"; // für Sprachvariante string variante="???"; // für Variantenkontrolle string err_text; // Fehlertext int errorcode; // Errorcode bool fehlerflag; // Fehlerflag string temp; string temp1; string temp2; int i; int k; int kk; // für neue VersionsnummernKontrolle int ii; int a; int aa; int i1; int i2; int i3; // für neue VersionsnummernKontrolle string sgbd_String_Lang; string sgbd_von_inpa_version; string ver_temp; string ver_temp1; string ver_temp2; string ver_temp3="--"; real Version_SGBD; real Version_INPA; string CurDir; // Zur Prüfung ob Gruppendatei exisiert int ret_int; int Size; int filecheck; string hinweis_text; settitle(titel+" Version "+version); a=0; ii=0; i3=0; kk=0; aa=0; i=0; k=0; fehlerflag=FALSE; temp1=""; temp2=""; instr(i,k,","+gruppe+",",","); while ((i >= 0) && (fehlerflag == FALSE)) { k=i+1; instr(i,k,","+gruppe+",",","); if (i >= 0) { midstr(temp,","+gruppe+",",k,i-k); INPAapiJob(temp,"INITIALISIERUNG","",""); INP1apiResultText(fehlerflag,variante,"VARIANTE",0,""); if (fehlerflag == TRUE) gruppe=temp; else { INP1apiErrorCode(errorcode); if (errorcode == 36)//Fehlende oder fehlerhafte Simulationsdatei { Size=256; space(CurDir,Size); GetCurrentDirectory(256, CurDir, ret_int); SetCurrentDirectory("\EDIABAS\SIM", ret_int); fileexist(temp+".SIM",filecheck); SetCurrentDirectory(CurDir, ret_int); if (filecheck == 0) { temp1= temp1+", "+temp+".SIM";//Fehlerhafte Simulationsdatei } else { temp2= temp2+", "+temp+".SIM";//Fehlende Simulationsdatei } } } } } instr(i,0,gruppe,"d");//erstes Zeichen ein 'd'? instr(k,0,gruppe,"D");//erstes Zeichen ein 'D'? if ((i == 0) || (k == 0)) hinweis_text= "das Steuergerät liefert einen falschen Varianten- und / oder Diagnose-Index.";// bis F01: Gruppendateien fangen mit D_... an else hinweis_text= "das Steuergerät liefert einen falschen SGBD-Index.";//gilt ab F01, Gruppendateien fangen mit G_... an if (fehlerflag == FALSE) { //Fehlende oder fehlerhafte Gruppen-Simulationsdatei if (errorcode == 36) { //Fehlerhafte Simulationsdatei if (temp1 != "") { strlen(k,temp1); instr(i,k,temp1+",",",");//letztes Zeichen ein ','? if (i != -1) k= k-1; //Zeichenlänge um 1 kürzen instr(i,0,temp1+",",",");//erstes Zeichen ein ','? if (i == 0) midstr(temp1,temp1,1,k);//Kommata vor und hinter temp1 ausschneiden temp1= "Fehlerhafte Simulationsdatei: "+temp1+CRLF; } //Fehlende Simulationsdatei if (temp2 != "") { strlen(k,temp2); instr(i,k,temp2+",",",");//letztes Zeichen ein ','? if (i != -1) k= k-1; //Zeichenlänge um 1 kürzen instr(i,0,temp2+",",",");//erstes Zeichen ein ','? if (i == 0) midstr(temp2,temp2,1,k);//Kommata vor und hinter temp2 ausschneiden temp2= "Fehlende Simulationsdatei : "+temp2+CRLF; } messagebox("Variantenkontrolle", "Fehler!"+CRLF+ temp1+//Fehlerfafte Gruppen-Simulationsdateien temp2+//Fehlende -//- "Das Programm wird abgebrochen!"); exit(); } //Gruppendatei vorhanden? Size=256; space(CurDir,Size); GetCurrentDirectory(256, CurDir, ret_int); SetCurrentDirectory("\EDIABAS\ECU", ret_int); fileexist(gruppe+".GRP",filecheck); SetCurrentDirectory(CurDir, ret_int); if (filecheck == 0)//Gruppendatei vorhanden, SGBD-, Kommunikationsfehler hier ausgeben { INP1apiErrorText(err_text);//Fehler beim Aufruf der VARIANTE? if (errorcode == 92)//92=SYS-0002: SG-Variantenbeschreibungsdatei (SGBD) nicht gefunden { //T_GRTB.PRG vorhanden? Size=256; space(CurDir,Size); GetCurrentDirectory(256, CurDir, ret_int); SetCurrentDirectory("\EDIABAS\ECU", ret_int); fileexist("T_GRTB.PRG",filecheck); SetCurrentDirectory(CurDir, ret_int); if (filecheck == 0)//T_GRTB.PRG ist vorhanden, somit fehlt die SGBD. { messagebox("Variantenkontrolle", "Fehler!"+CRLF+ err_text+". "+CRLF+ " "+CRLF+ "Das Steuergerät läßt sich zwar über die Gruppendatei: "+gruppe+".GRP"+" ansprechen,"+CRLF+ "aber zur Diagnose fehlt eine entsprechende SGBD (*.PRG) im Verzeichnis ..\EDIABAS\ECU"+CRLF+ " "+CRLF+ "Aktualisieren Sie SGBDen, Gruppendateien und INPA Scripte regelmäßig!"+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); } else//T_GRT.PRG fehlt { messagebox("Variantenkontrolle", "Fehler!"+CRLF+ err_text+". "+CRLF+ " "+CRLF+ "Die Datei T_GRTB.PRG fehlt im Verzeichnis ..\EDIABAS\ECU"+CRLF+ " "+CRLF+ "Aktualisieren Sie SGBDen, Gruppendateien und INPA Scripte regelmäßig!"+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); } } else if (errorcode == 102)//102= Identification error { instr(i,0,gruppe,"d");//erstes Zeichen ein 'd'? instr(k,0,gruppe,"D");//erstes Zeichen ein 'D'? if ((i == 0) || (k == 0)) temp1= "das Steuergerät liefert einen falschen Varianten- und / oder Diagnose-Index.";// bis F01: Gruppendateien fangen mit D_... an else temp1= "das Steuergerät liefert einen falschen SGBD-Index.";//gilt ab F01, Gruppendateien fangen mit G_... an messagebox("Variantenkontrolle", "Fehler! Aufruf über Gruppendatei : "+gruppe+".GRP"+CRLF+ err_text+". "+CRLF+ " "+CRLF+ "Sie besitzen entweder eine veraltete ..\EDIABAS\ECU\T_GRTB.PRG Datei, und / oder"+CRLF+ hinweis_text+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); } else //alle anderen Fehler { messagebox("Variantenkontrolle", "Fehler! Aufruf über Gruppendatei : "+gruppe+".GRP"+CRLF+ " "+CRLF+ err_text+". "+CRLF+ " "+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); } } else//Gruppendatei nicht vorhanden { messagebox("Variantenkontrolle", "Fehler! Gruppendatei : "+gruppe+".GRP "+CRLF+ "existiert nicht im Verzeichnis ..\EDIABAS\ECU"+CRLF+ " "+CRLF+ "Aktualisieren Sie SGBDen, Gruppendateien und INPA Scripte regelmäßig!"+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); } exit(); } i1=0; i2=0; instr(i1,0,","+sgbd+",",","+variante+","); if (i1 < 0) { instr(i2,0,","+sgbd+",",","+variante+"/"); if (i2 < 0) { messagebox("Variantenkontrolle", "Gesuchtes Steuergerät: '"+sgbd+"' nicht gefunden. "+CRLF+ "Gefundenes Steuergerät: '"+variante+"'. "+CRLF+ " "+CRLF+ "Sie besitzen entweder eine veraltete ..\EDIABAS\ECU\T_GRTB.PRG Datei, und / oder"+CRLF+ hinweis_text+CRLF+ " "+CRLF+ "Das Programm wird abgebrochen!"); exit(); } ver_temp3 = "--"; instr(ii,i2,sgbd+",",","); if (ii >= 0) { midstr(ver_temp3,sgbd+",",i2,ii); instr(i3,0,ver_temp3,"/"); if (i3 >= 0) { a = i2+i3+1; aa = ii-i2+i3-1; midstr(ver_temp3,sgbd+",",a,aa); } } } sgbd_String_Lang = sgbd; sgbd=variante; // // Info: Informatinon bei aufruf ohne BMW_STD.SRC // // #################################################### // # //für Info # // # string sgbd_ecu; # // # string sgbd_origin; # // # string sgbd_revision; # // # string sgbd_package; # // # string sgbd_sprache; # // # string sgbd_comment; # // # string gruppe_ecu; # // # string gruppe_origin; # // # string gruppe_revision; # // # string gruppe_comment; # // # # // # #include "SgbdInfo.src" # // #################################################### // // SgbdInfo(sgbd, sgbd_ecu, sgbd_origin, sgbd_revision, sgbd_package, sgbd_comment, sgbd_sprache); // Bitte VARIABLEN als Globale variable aktivieren und Include (siehe Block //INFO) // // //Versionskontrolle Auf 3 stellen vor / hinter dem "." instr(i3,0,ver_temp3,"V"); if(i3>=0) { instr(i2,0,ver_temp3,","); midstr(ver_temp3,ver_temp3,i3+1,i2-1); stringtoreal(ver_temp3,Version_INPA); realtostring(Version_INPA,"3.3",ver_temp3); midstr(sgbd_von_inpa_version,ver_temp3,0,2); } stringtoreal(version,Version_INPA); realtostring(Version_INPA,"3.3",version); midstr(inpa_version,version,0,2); stringtoreal(sgbd_revision,Version_SGBD); realtostring(Version_SGBD,"3.3",sgbd_revision); midstr(sgbd_version,sgbd_revision,0,2); temp=inpa_version; temp1=sgbd_version; if (ver_temp3 == "--") { // Vergleichen mit Versionsnummer INPA & SGBD if (inpa_version != sgbd_version) { messagebox("Versionskontrolle", "Nicht zusammenpassende Versionen. "+CRLF+ "Fehlfunktion ist möglich!"); } else { if (temp == "0.") { if (temp1 == "0.") { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "SGBD Version: "+sgbd_revision+CRLF+ "INPA Version: "+version); } else { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "INPA Version: "+version); } } else { if (temp1 == "0.") { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "SGBD Version: "+sgbd_revision); } } } } else { // Vergleichen mit Versionsnummer INPA(SGBD Vorwahl) & SGBD if (sgbd_von_inpa_version != sgbd_version) { messagebox("Versionskontrolle", "Nicht zusammenpassende Versionen. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "SGBD Version: "+ ver_temp3 +" (in INPA) "+CRLF+ "SGBD Version: "+ sgbd_revision +CRLF+ "INPA Version: "+ version); } else { if (temp == "0.") { if (temp1 == "0.") { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "SGBD Version: "+sgbd_revision+CRLF+ "INPA Version: "+version); } else { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "INPA Version: "+version); } } else { if (temp1 == "0.") { messagebox("Versionskontrolle", "Programm noch in der Entwicklungsphase. "+CRLF+ "Fehlfunktion ist möglich!"+CRLF+CRLF+ "SGBD Version: "+sgbd_revision); } } } } if (inpa_sprache != sgbd_sprache) { messagebox("Sprachvariantenkontrolle", "Nicht zusammenpassende Sprachvariante. "+CRLF+ "Fehlfunktion ist möglich!"); } } // -- EOF -- // end of :#include "SGBDINPA.SRC" // start of :#include "GRPCHECK.SRC" //********************************************************************** //* //* INPA Library-Funktionen GrpCheck.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 12.03.2003 iS V1.05 Aufteilung der Funktionen(SgbdInpaCheck,GroupCheck) //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //* 05.04.2007 GA V3.01 Abfrage auf IS_ und HS_LOESCHEN implementiert //* 20.04.2007 GA V3.02 FS-, IS-, HS_LESEN werden in einzelnen Tempdateien in ..\EDIABAS\BIN abgelegt //********************************************************************** //********************************************************************** //* //* GroupCheck //* //* Überprüfung der Gruppen-Info //* //********************************************************************** GroupCheck() { string err_text; // Fehlertext bool fehlerflag; // Fehlerflag string temp; int sgbd_saetze; // für Funktionen-Suche in SGBD string job_name; // JOBNMAE in SGBD int i; fehlerflag=FALSE; i=0; GruppenDateiInfo(gruppe, gruppe_ecu, gruppe_origin, gruppe_revision, gruppe_comment); // Vorbelegung der Flags fs_lesen_flag = FALSE; is_lesen_flag = FALSE; speicher_lesen_flag = FALSE; is_loeschen_flag = FALSE; hs_loeschen_flag = FALSE; INPAapiJob(sgbd,"_JOBS","",""); INP1apiResultSets(fehlerflag, sgbd_saetze); if (fehlerflag == FALSE) { INP1apiErrorText(err_text); messagebox("Unerwarteter Fehler", // sollte nie kommen err_text+". "+CRLF+ "Das Programm wird abgebrochen!"); exit(); } i = 1; while ( i <= sgbd_saetze) { INPAapiResultText(job_name,"JOBNAME",i,""); if (job_name == "FS_LESEN" ) fs_lesen_flag=TRUE; if (job_name == "IS_LESEN" ) is_lesen_flag=TRUE; if (job_name == "HS_LESEN" ) hs_lesen_flag=TRUE; if (job_name == "IS_LOESCHEN" ) is_loeschen_flag=TRUE; if (job_name == "HS_LOESCHEN" ) hs_loeschen_flag=TRUE; if (job_name == "SPEICHER_LESEN" ) speicher_lesen_flag=TRUE; if ((fs_lesen_flag == TRUE) && (is_lesen_flag == TRUE) && (hs_lesen_flag == TRUE) && (is_loeschen_flag == TRUE) && (hs_loeschen_flag == TRUE) && (speicher_lesen_flag) == TRUE) i = sgbd_saetze; i = i + 1; } if (speicher_lesen_parameter == "") speicher_lesen_flag = FALSE; if (speicher_lesen_flag == TRUE) { instr(i, 0, ";"+speicher_lesen_parameter+";", ";LAR;"); if ( i == -1 ) speicher_lesen_lar_flag = FALSE; else speicher_lesen_lar_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";FLASH;"); if ( i == -1 ) speicher_lesen_flash_flag = FALSE; else speicher_lesen_flash_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";UIFM;"); if ( i == -1 ) speicher_lesen_uifm_flag = FALSE; else speicher_lesen_uifm_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";ROMI;"); if ( i == -1 ) speicher_lesen_romi_flag = FALSE; else speicher_lesen_romi_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";RAMIS;"); if ( i == -1 ) speicher_lesen_ramis_flag = FALSE; else speicher_lesen_ramis_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";RAMIL;"); if ( i == -1 ) speicher_lesen_ramil_flag = FALSE; else speicher_lesen_ramil_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";NVRAM;"); if ( i == -1 ) speicher_lesen_nvram_flag = FALSE; else speicher_lesen_nvram_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";ROMX;"); if ( i == -1 ) speicher_lesen_romx_flag = FALSE; else speicher_lesen_romx_flag = TRUE; instr(i, 0, ";"+speicher_lesen_parameter+";", ";RAMXX;"); if ( i == -1 ) speicher_lesen_ramxx_flag = FALSE; else speicher_lesen_ramxx_flag = TRUE; } //IDENT-Typ ermitteln: DS2, BMW Fast oder UDS? INP1apiJob(sgbd,"IDENT","",""); INP1apiResultText(fehlerflag,temp,"ID_DATUM_KW",1,"");//Hat nur DS2 if ((fehlerflag == TRUE) && (temp != "")) { ident_typ= 1;//DS2 } else//UDS, BMW Fast { INP1apiResultText(fehlerflag,temp,"ID_SGBD_INDEX",1,""); if ((fehlerflag == TRUE) && (temp != "")) ident_typ= 3; //Hat nur UDS (ISO 14229) else ident_typ= 2; //sonst BMW Fast } } // -- EOF -- // end of :#include "GRPCHECK.SRC" // start of :#include "FS_LESEN.SRC" //********************************************************************** //* //* INPA Library-Funktionen FS_LESEN.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 04.07.2000 rd V0.03 Ersterstellung //* 21.11.2000 rd V0.10 Umweltbedingungen als Zahl oder Text ( 0-n, Hex ) //* 02.03.2001 rd V0.11 Shadowspeicher umbenannt in Infospeicher //* 25.04.2002 rd V1.00 Erweiterung HS_LESEN //* 22.10.2002 rd V1.01 Erweiterung FS_LESEN //* V1.01 PCODE und PCODE7 Ausgabe neu //* V1.01 Fehlerbehandlung verbessert //* 19.11.2002 iS V1.02 Fehlerbehandlung F_ORT_TEXT, F_UW_ANZ, F_PCODE //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //* GA V3.00 Fehlerausgaben korrigiert und erweitert //* 28.06.2006 GA V3.01 Bei UDS: Ausgabe "F_UW_DATUM_ZEIT" durch "F_UW_ZEIT" ersetzt, da Result entfällt //* 19.10.2006 GA V3.02 Bei DS2: wurde nicht angezogen da if-Bedingung nicht korrekt gewesen ist. //* GA V3.02 Result: F_UW_ZEIT von Unterprg.: fs_protokoll_uwb in fs_protokoll_uwb_uds verschoben //* GA V3.02 Result: F_EREIGNIS_DTC: Text wurde inverse ausgegeben //* 07.02.2007 GA V3.03 Result: F_EREIGNIS_DTC: Erklärender Text, was ein Ereinis DTC ist, war falsch //********************************************************************** //********************************************************************** //* //* Globale Variablen //* //********************************************************************** int _FsMode = 0x7FF; // alles ein string _FsFileMode = "w"; string _PreInfoFile = ""; string _PostInfoFile = ""; string _ApiFsJobName = "FS_LESEN"; //********************************************************************** //* //* Deklaration der Funktionen //* //********************************************************************** extern INPAapiFsMode_neu ( in: int FsMode, in: string FsFileMode, in: string PreInfoFile, in: string PostInfoFile, in: string ApiFsJobName); extern INPAapiFsLesen_neu( in: string ecu, in: string FileName); extern fs_protokoll_ort(in: int nr); extern fs_protokoll_ort_uds(in: int nr); extern fs_protokoll_PCode(in: int nr); extern fs_protokoll_PCode7(in: int nr); extern fs_protokoll_SAECode(in: int nr); extern fs_protokoll_hfk(in: int nr); extern fs_protokoll_hfk_uds(in: int nr); extern fs_protokoll_art(in: int nr); extern fs_protokoll_art_uds(in: int nr); extern fs_protokoll_art_e(in: int nr); extern fs_protokoll_uwb(in: int nr); extern fs_protokoll_uwb_uds(in: int nr); extern fs_protokoll_hex(in: int nr); extern fs_protokoll_telantwort(in: int nr); //********************************************************************** //* //* INPAapiFsMode_neu kompatibel mit INPAapiFsMode //* //********************************************************************** INPAapiFsMode_neu( in: int FsMode, in: string FsFileMode, in: string PreInfoFile, in: string PostInfoFile, in: string ApiFsJobName) { _FsMode = FsMode; _FsFileMode = FsFileMode; _PreInfoFile = PreInfoFile; _PostInfoFile = PostInfoFile; _ApiFsJobName = ApiFsJobName; INPAapiFsMode(_FsMode, _FsFileMode, _PreInfoFile, _PostInfoFile, _ApiFsJobName); if (_ApiFsJobName=="") _ApiFsJobName="FS_LESEN"; } //********************************************************************** //* //* INPAapiFsLesen_neu kompatibel mit INPAapiFsLesen //* //********************************************************************** INPAapiFsLesen_neu( in: string ecu, in: string FileName) { string _ecu; string _FileName; bool rc; int i; int k; int len; int x1; long xL; string temp1; string temp2; string temp3; string temp11; string temp12; string temp21; string temp22; int F_VERSION; string JOB_STATUS; string JOB_MESSAGE; string VARIANTE; int SETS; int UW_SETS; string FS_CODE; string F_PCODE; string F_PCODE7; string F1_VERSION; int errorcode; // EDIABAS Fehlernummer string error_text; // EDIABAS Fehlertext string errorcode_text; // EDIABAS Fehlernummer als Text string sgbd_version; // aus INFO auslesen, um bei Fehlern die Version angeben zu können _ecu = ecu; _FileName = FileName; //SGBD-Version auslesen sgbd_version= "???"; INPAapiJob(_ecu,"INFO","",""); INP1apiResultText(rc, sgbd_version, "REVISION", 1, ""); INPAapiJob(_ecu, _ApiFsJobName,"",""); INP1apiResultInt(rc, F_VERSION, "F_VERSION",1 ); INP1apiErrorCode(errorcode); //UDS: if ((rc == TRUE) && ( F_VERSION == 3 )) { getdate(temp1); gettime(temp2); INPAapiResultSets(SETS); INPAapiResultText(VARIANTE, "VARIANTE", 0, ""); INPAapiResultText(JOB_STATUS, "JOB_STATUS", SETS, ""); fileopen ( _FileName, _FsFileMode); if (_ApiFsJobName == "IS_LESEN") { filewrite( " I N F O S P E I C H E R L E S E N"); filewrite( " -----------------------------------"); } else if (_ApiFsJobName == "HS_LESEN") { filewrite( " H I S T O R I E N S P E I C H E R L E S E N"); filewrite( " ---------------------------------------------"); } else { filewrite( " F E H L E R S P E I C H E R L E S E N"); filewrite( " ---------------------------------------"); } filewrite(""); filewrite("Datum : "+temp1+" "+temp2); if (_ecu != VARIANTE) filewrite("ECU : "+_ecu); filewrite("JobStatus: "+JOB_STATUS); filewrite("Variante : "+VARIANTE+".PRG"); filewrite("Version : "+sgbd_version); filewrite( "-------------------------------------------------------------------------------"); if ( JOB_STATUS == "OKAY") { filewrite( ""); if (SETS == 1) filewrite( " >>>>>>>>>> Kein Fehler gefunden <<<<<<<<<<<"); else { inttostring(SETS-1,temp1); if ((SETS-1) < 10) temp1= " "+temp1;//Formatierung der Fehleranzahl, wenn sie kleiner 10 ist filewrite( "ERGEBNIS : "+temp1+" Fehler im Fehlerspeicher!"); if ((_FsMode & 0x100) == 0) { i=1; while ( i < SETS ) { if (_FsMode != 0) filewrite( "-------------------------------------------------------------------------------"); if ((_FsMode & 0x01) != 0) fs_protokoll_ort_uds(i); if ((_FsMode & 0x04) != 0) fs_protokoll_art_uds(i); if ((_FsMode & 0x40) != 0) fs_protokoll_hex(i); i=i+1; } } else { // Detail lesen i=1; StrArrayDelete(f_ort_nr_buffer); StrArrayDelete(f_ort_text_buffer); while ( i < SETS ) { INP1apiResultText(rc,temp1, "F_ORT_TEXT", i, ""); if (rc != TRUE) temp1="??????"; StrArrayWrite(f_ort_text_buffer,i,temp1); INP1apiResultBinary(rc,"F_HEX_CODE",i);//Fehlerort Nr. bei UDS: 3 Bytes, daher mit long arbeiten. (kein INPAapiResultText(temp1, "F_ORT_NR", i, "");....!) ...ergibt diese Lösung if (rc == TRUE) { GetBinaryDataString (temp1,len); midstr(temp1,temp1,0,6); } else { temp1= "??????"; filewrite(""); filewrite("### Fehler beim Lesen des Results: F_HEX_CODE ###"); filewrite(""); INP1apiErrorCode(errorcode); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; ftextout(error_text ,2,0,0,0); } } StrArrayWrite(f_ort_nr_buffer,i,temp1); i=i+1; } i=1; while ( i < SETS ) { if (_FsMode != 0) filewrite( "-------------------------------------------------------------------------------"); StrArrayRead(f_ort_nr_buffer,i,FS_CODE); INPAapiJob(_ecu, _ApiFsJobName+"_DETAIL", "0x"+FS_CODE, ""); INP1apiResultSets(rc, UW_SETS); if (rc == TRUE) { INPAapiResultText(JOB_STATUS, "JOB_STATUS", UW_SETS, ""); if ( JOB_STATUS == "OKAY") { if ((_FsMode & 0x01) != 0) fs_protokoll_ort_uds(1); if ((_FsMode & 0x200) != 0) fs_protokoll_SAECode(1);//0x200 von BMW Fast für PCode genommen if ((_FsMode & 0x20) != 0) fs_protokoll_hfk_uds(1); k=1; while ( k < UW_SETS ) { filewrite( ""); if ( UW_SETS > 2 ) { inttostring(k,temp1); filewrite( temp1 + ". Umweltsatz"); } if ((_FsMode & 0x02) != 0) fs_protokoll_uwb_uds(k); k=k+1; } if ((_FsMode & 0x04) != 0) fs_protokoll_art_uds(1); if ((_FsMode & 0x04) != 0) fs_protokoll_art_e(1); if ((_FsMode & 0x40) != 0) fs_protokoll_hex(1); } else { if ((_FsMode & 0x01) != 0) { filewrite( ""); StrArrayRead(f_ort_text_buffer,i,temp2); filewrite("0x"+FS_CODE+" "+temp2); } INP1apiResultText(rc,JOB_MESSAGE, "JOB_MESSAGE", UW_SETS, ""); if (rc == TRUE) filewrite( _ApiFsJobName+"_DETAIL: JobStatus: "+JOB_STATUS+" --> "+JOB_MESSAGE) ; else filewrite( _ApiFsJobName+"_DETAIL: JobStatus: "+JOB_STATUS); fs_protokoll_telantwort(UW_SETS);//Telegrammantwort zur Fehleranalyse mit ausgeben } } else { if ((_FsMode & 0x01) != 0) { filewrite( ""); StrArrayRead(f_ort_text_buffer,i,temp2); filewrite("0x"+FS_CODE+" "+temp2); } INP1apiErrorText(temp1); filewrite( _ApiFsJobName+"_DETAIL: "+temp1); } i=i+1; } } } } filewrite( "==============================================================================="); fileclose(); } //BMW FAST: else if ((rc == TRUE) && ( F_VERSION == 2 )) { getdate(temp1); gettime(temp2); INPAapiResultSets(SETS); INPAapiResultText(VARIANTE, "VARIANTE", 0, ""); INPAapiResultText(JOB_STATUS, "JOB_STATUS", SETS, ""); fileopen ( _FileName, _FsFileMode); if (_ApiFsJobName == "IS_LESEN") { filewrite( " I N F O S P E I C H E R L E S E N"); filewrite( " -----------------------------------"); } else if (_ApiFsJobName == "HS_LESEN") { filewrite( " H I S T O R I E N S P E I C H E R L E S E N"); filewrite( " ---------------------------------------------"); } else { filewrite( " F E H L E R S P E I C H E R L E S E N"); filewrite( " ---------------------------------------"); } filewrite(""); filewrite("Datum : "+temp1+" "+temp2); if (_ecu != VARIANTE) filewrite("ECU : "+_ecu); filewrite("JobStatus: "+JOB_STATUS); filewrite("Variante : "+VARIANTE+".PRG"); filewrite("Version : "+sgbd_version); filewrite( "-------------------------------------------------------------------------------"); if ( JOB_STATUS == "OKAY") { filewrite( ""); if (SETS == 1) filewrite( " >>>>>>>>>> Kein Fehler gefunden <<<<<<<<<<<"); else { inttostring(SETS-1,temp1); if ((SETS-1) < 10) temp1= " "+temp1;//Formatierung der Fehleranzahl, wenn sie kleiner 10 ist filewrite( "ERGEBNIS : "+temp1+" Fehler im Fehlerspeicher!"); if ((_FsMode & 0x100) == 0) { i=1; while ( i < SETS ) { if (_FsMode != 0) filewrite( "-------------------------------------------------------------------------------"); if ((_FsMode & 0x01) != 0) fs_protokoll_ort(i); if ((_FsMode & 0x04) != 0) fs_protokoll_art(i); if ((_FsMode & 0x40) != 0) fs_protokoll_hex(i); i=i+1; } } else { // Detail lesen i=1; StrArrayDelete(f_ort_nr_buffer); StrArrayDelete(f_ort_text_buffer); while ( i < SETS ) { INP1apiResultText(rc,temp1, "F_ORT_TEXT", i, ""); if (rc != TRUE) temp1="????"; StrArrayWrite(f_ort_text_buffer,i,temp1); INPAapiResultInt(x1, "F_ORT_NR", i); inttohexstring(x1, 4, temp1); StrArrayWrite(f_ort_nr_buffer,i,temp1); i=i+1; } i=1; while ( i < SETS ) { if (_FsMode != 0) filewrite( "-------------------------------------------------------------------------------"); StrArrayRead(f_ort_nr_buffer,i,FS_CODE); INPAapiJob(_ecu, _ApiFsJobName+"_DETAIL", "0x"+FS_CODE, ""); INP1apiResultSets(rc, UW_SETS); if (rc == TRUE) { INPAapiResultText(JOB_STATUS, "JOB_STATUS", UW_SETS, ""); if ( JOB_STATUS == "OKAY") { if ((_FsMode & 0x01) != 0) fs_protokoll_ort(1); if ((_FsMode & 0x200) != 0) fs_protokoll_PCode(1); if ((_FsMode & 0x400) != 0) fs_protokoll_PCode7(1); if ((_FsMode & 0x20) != 0) fs_protokoll_hfk(1); k=1; while ( k < UW_SETS ) { filewrite( ""); if ( UW_SETS > 2 ) { inttostring(k,temp1); filewrite( temp1 + ". Umweltsatz"); } if ((_FsMode & 0x02) != 0) fs_protokoll_uwb(k); k=k+1; } if ((_FsMode & 0x04) != 0) fs_protokoll_art(1); if ((_FsMode & 0x04) != 0) fs_protokoll_art_e(1); if ((_FsMode & 0x40) != 0) fs_protokoll_hex(1); } else { if ((_FsMode & 0x01) != 0) { filewrite( ""); StrArrayRead(f_ort_text_buffer,i,temp2); filewrite( "0x"+FS_CODE+" "+temp2); } INP1apiResultText(rc,JOB_MESSAGE, "JOB_MESSAGE", UW_SETS, ""); if (rc == TRUE) { filewrite( _ApiFsJobName+"_DETAIL: JobStatus: "+JOB_STATUS+" --> "+JOB_MESSAGE) ; } else filewrite( _ApiFsJobName+"_DETAIL: JobStatus: "+JOB_STATUS); fs_protokoll_telantwort(UW_SETS);//Telegrammantwort zur Fehleranalyse mit ausgeben } } else { if ((_FsMode & 0x01) != 0) { filewrite( ""); StrArrayRead(f_ort_text_buffer,i,temp2); filewrite( "0x"+FS_CODE+" "+temp2); } INP1apiErrorText(temp1); filewrite( _ApiFsJobName+"_DETAIL: "+temp1); } i=i+1; } } } } filewrite( "==============================================================================="); fileclose(); } //DS2 else if (errorcode == 134)//134=SYS-0014: Result nicht gefunden: 'F_VERSION' { INPAapiFsLesen( _ecu, _FileName); } //Fehlerhafter Aufruf else { INPAapiCheckJobStatus("OKAY");//Damit der Bediener die Fehlermeldung bestätigen muß getdate(temp1); gettime(temp2); INP1apiErrorText(temp3); fileopen ( _FileName, _FsFileMode); if (_ApiFsJobName == "IS_LESEN") { filewrite( " I N F O S P E I C H E R L E S E N"); filewrite( " -----------------------------------"); } else if (_ApiFsJobName == "HS_LESEN") { filewrite( " H I S T O R I E N S P E I C H E R L E S E N"); filewrite( " ---------------------------------------------"); } else { filewrite( " F E H L E R S P E I C H E R L E S E N"); filewrite( " ---------------------------------------"); } filewrite( ""); filewrite( "Datum : "+temp1+" "+temp2); filewrite( "ECU : "+_ecu); filewrite( "JobStatus: "+JOB_STATUS+"-->"+temp3) ; filewrite( "-------------------------------------------------------------------------------"); fileclose(); } } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerort für DS2 und BMW Fast //* //********************************************************************** fs_protokoll_ort(in: int nr) { int i; int x1; bool rc; string temp1; string temp2; i=nr; filewrite( ""); INP1apiResultInt(rc,x1, "F_ORT_NR", i); if (rc == TRUE) { inttohexstring(x1, 4, temp1); } else { temp1="????"; } INP1apiResultText(rc,temp2, "F_ORT_TEXT", i, ""); if (rc == TRUE) { filewrite( "0x"+temp1+" "+temp2); } else { filewrite( "0x"+temp1+" "+"????"); } } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerort für UDS (ISO 14229) //* //********************************************************************** fs_protokoll_ort_uds(in: int nr) { int i; int len; bool rc; string temp1; string temp2; i=nr; filewrite( ""); INP1apiResultBinary(rc,"F_HEX_CODE",i);//Fehlerort Nr. bei UDS: 3 Bytes, daher mit long arbeiten. (kein INPAapiResultText(temp1, "F_ORT_NR", i, "");....!) ...ergibt diese Lösung if (rc == TRUE) { if (_ApiFsJobName == "FS_LESEN") { GetBinaryDataString (temp1,len); midstr(temp1,temp1,0,6); } else//IS_LESEN { GetBinaryDataString (temp1,len); midstr(temp1,temp1,2,6);//Byte 0, Zeichen 0 und 1 sind das severity Byte! } } else { temp1= "??????"; } INP1apiResultText(rc,temp2, "F_ORT_TEXT", i, ""); if (rc == TRUE) { filewrite( "0x"+temp1+" "+temp2); } else { filewrite( "0x"+temp1+" "+"??????"); } } //********************************************************************** //* //* Fehlerprotokollausgabe PCODE //* //********************************************************************** fs_protokoll_PCode(in: int nr) { int i; int x1; bool rc; string tempPcodeText; string tempPcodeString; string tempPcodeHex; i=nr; INP1apiResultText(rc,tempPcodeString, "F_PCODE_STRING", i,""); if (rc == TRUE) { INP1apiResultText(rc,tempPcodeText, "F_PCODE_TEXT", i, ""); if (rc == TRUE) { INP1apiResultInt(rc,x1, "F_PCODE", i); if (rc == TRUE) { inttohexstring(x1, 4, tempPcodeHex); tempPcodeHex= "0x"+tempPcodeHex; } else { tempPcodeHex = "????"; } } else { tempPcodeText = "????"; } if (tempPcodeString == "??") { filewrite( ""); filewrite( tempPcodeHex+" "+tempPcodeText); } else { if (tempPcodeString != "--") { filewrite( ""); filewrite( tempPcodeText); } } } } //********************************************************************** //* //* Fehlerprotokollausgabe PCODE7 //* //********************************************************************** fs_protokoll_PCode7(in: int nr) { int i; int x1; bool rc; string tempPcode7Text; string tempPcode7String; string tempPcode7Hex; i=nr; INP1apiResultText(rc,tempPcode7String, "F_PCODE7_STRING", i,""); if (rc == TRUE) { INP1apiResultText(rc,tempPcode7Text, "F_PCODE7_TEXT", i, ""); if (rc == TRUE) { INP1apiResultInt(rc,x1, "F_PCODE7", i); if (rc == TRUE) { inttohexstring(x1, 4, tempPcode7Hex); tempPcode7Hex= "0x"+tempPcode7Hex; } else { tempPcode7Hex = "????"; } } else { tempPcode7Text = "????"; } if (tempPcode7String == "??") { filewrite( ""); filewrite( tempPcode7Hex+" "+tempPcode7Text); } else { if (tempPcode7String != "--") { filewrite( ""); filewrite( tempPcode7Text); } } } } //********************************************************************** //* //* Fehlerprotokollausgabe SAE Code für UDS //* //********************************************************************** fs_protokoll_SAECode(in: int nr) { int i; int x1; bool rc; string tempSAECodeText; string tempSAECodeString; string tempSAECodeHex; i=nr; INP1apiResultText(rc,tempSAECodeString, "F_SAE_CODE_STRING", i,""); if (rc == TRUE) { INP1apiResultText(rc,tempSAECodeText, "F_SAE_CODE_TEXT", i, ""); if (rc == TRUE) { INP1apiResultInt(rc,x1, "F_SAE_CODE", i); if (rc == TRUE) { inttohexstring(x1, 4, tempSAECodeHex); tempSAECodeHex= "0x"+tempSAECodeHex; } else { tempSAECodeHex = "????"; } } else { tempSAECodeText = "????"; } if (tempSAECodeString == "??") { filewrite( ""); filewrite( tempSAECodeHex+" "+tempSAECodeText); } else { if (tempSAECodeString != "--") { filewrite( ""); filewrite( tempSAECodeText); } } } } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerhäufigkeit //* //********************************************************************** fs_protokoll_hfk(in: int nr) { int i; bool rc; string temp1; int f_hfk; int f_lz; i=nr; filewrite( ""); INP1apiResultInt(rc,f_hfk,"F_HFK",i); if (rc == FALSE) temp1 ="????"; if (temp1 !="-1") { inttostring(f_hfk,temp1); if (f_hfk < 10) temp1= " "+temp1;//Formatierung der Nr der Fehlerhäufigkeit, wenn sie kleiner 10 ist filewrite( "Fehlerhäufigkeit: "+ temp1); } INP1apiResultInt(rc,f_lz,"F_LZ",i); if (rc == FALSE) temp1 ="????"; if (temp1 !="-1") { inttostring(f_lz,temp1); if (f_lz < 10) temp1= " "+temp1;//Formatierung der Nr des Logistikzählers, wenn sie kleiner 10 ist filewrite( "Logistikzähler : "+ temp1); } } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerhäufigkeit für UDS //* //********************************************************************** fs_protokoll_hfk_uds(in: int nr) { int i; int x1; bool rc; string temp1; string temp2; i=nr; filewrite( ""); //FS Überlauf INP1apiResultInt(rc,x1, "F_UEBERLAUF", i); if ((rc == TRUE) && (x1==1)) { filewrite( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); if (_ApiFsJobName == "IS_LESEN") filewrite("++++++++++++++++++++++++ Infospeicher ist übergelaufen! +++++++++++++++++++++++"); else filewrite("+++++++++++++++++++++++ Fehlerspeicher ist übergelaufen! ++++++++++++++++++++++"); filewrite( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); filewrite( ""); } //Fehlerhäufigkeit INP1apiResultInt(rc,x1, "F_HFK", i); if (rc == FALSE) { temp1 ="????"; } else { if (x1 == -1) { temp1= "wird nicht unterstützt"; } else { inttostring(x1,temp1); if (x1 < 10) temp1= " "+temp1;//Formatierung der Nr der Fehlerhäufigkeit, wenn sie kleiner 10 ist } } filewrite( "Fehlerhäufigkeit: "+ temp1); //Heilungszähler INP1apiResultInt(rc,x1, "F_HLZ", i); if (rc == FALSE) { temp1 ="????"; } else { if (x1 == -1) { temp1= "wird nicht unterstützt"; } else { inttostring(x1,temp1); if (x1 < 10) temp1= " "+temp1;//Formatierung des Heilungszählers, wenn er kleiner 10 ist } } filewrite( "Heilungszähler : "+ temp1); } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerarten //* //********************************************************************** fs_protokoll_art(in: int nr) { int i; bool rc; string temp1; i=nr; filewrite( ""); INP1apiResultText(rc,temp1, "F_SYMPTOM_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); INP1apiResultText(rc,temp1, "F_READY_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); INP1apiResultText(rc,temp1, "F_VORHANDEN_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); INP1apiResultText(rc,temp1, "F_WARNUNG_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); } //********************************************************************** //* //* Fehlerprotokollausgabe erweiterte Fehlerarten //* //********************************************************************** fs_protokoll_art_e(in: int nr) { int i; int k; int F_ART_ANZ; bool rc; string temp1; string temp2; i=nr; INP1apiResultInt(rc,F_ART_ANZ, "F_ART_ANZ", i); if (rc == TRUE) { if ( F_ART_ANZ > 0 ) { k=0; while ( k < F_ART_ANZ ) { k = k + 1; inttostring(k,temp2); INP1apiResultText(rc,temp1, "F_ART"+temp2+"_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); } } } } //********************************************************************** //* //* Fehlerprotokollausgabe Fehlerarten für UDS //* //********************************************************************** fs_protokoll_art_uds(in: int nr) {//Symptome entfallen bei UDS! int i; int x1; bool rc; string temp1; i=nr; filewrite( ""); INP1apiResultText(rc,temp1, "F_READY_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); INP1apiResultText(rc,temp1, "F_VORHANDEN_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); INP1apiResultText(rc,temp1, "F_WARNUNG_TEXT", i, ""); if (rc == FALSE) temp1 ="????"; if (temp1 !="--") filewrite( " "+ temp1); //Neu bei UDS: INP1apiResultInt(rc,x1, "F_EREIGNIS_DTC", i); if (rc == TRUE) { if (x1==0) { filewrite(" Dies ist kein Ereignis DTC. Das SG ist für den Fehlerspeicheintrag (DTC) verantwortlich."); } else if (x1==1) { filewrite(" Dies ein Ereignis DTC. Das SG ist somit nicht für den Fehlereintrag (DTC) verantwortlich."); filewrite(" Z.B. falsche oder fehlende Netzwerkinformationen."); } else { filewrite(" Fehler in SGBD! In Tabelle FOrtTexte, Spalte EREIGNIS_DTC muß 0 oder 1 stehen!"); } } } //********************************************************************** //* //* Fehlerprotokollausgabe Umweltbedingungen //* //********************************************************************** fs_protokoll_uwb(in: int nr) { int i; int k; int len; int F_UW_ANZ; bool rc; string temp1; string temp2; string temp3; real realval; int pos; i=nr; /* INP1apiResultText(rc,temp1, "F_UW_ZEIT", i, "10T"); if (rc == FALSE) { temp1=" ????"; } filewrite( " Absolute Zeit " + temp1+ " s"); */ INP1apiResultText(rc,temp1, "F_UW_KM", i, "8L"); if (rc == FALSE) temp1=" ????"; if ((temp1 == "524280") && (ident_typ != 3)) temp1 = "-1";//Fehlerüberlauf für DS2 und BMW FAST, UDS liefert es von alleine temp2 = "Kilometerstand "; filewrite( " " + temp2 + temp1 + " km"); INP1apiResultInt(rc,F_UW_ANZ, "F_UW_ANZ", i); if (rc == TRUE) { if ( F_UW_ANZ > 0 ) { k=0; while ( k < F_UW_ANZ ) { k = k + 1; inttostring(k,temp2); INP1apiResultText(rc,temp3, "F_UW"+temp2+"_EINH", i, ""); if (rc == TRUE) { AnsiUpper(temp3,temp3); } else { temp3 = "????"; } if ((temp3 == "0-N") || (temp3 == "HEX")) { INP1apiResultText(rc,temp1, "F_UW"+temp2+"_TEXT", i, "-20T"); if (rc == FALSE) temp1="???? "; if (temp1 !="-- ") //"--" + 18 Zeichen { if ((_FsMode & 0x08) != 0) { INP1apiResultText(rc,temp3, "F_UW"+temp2+"_WERT", i, "28T"); if (rc == FALSE) temp3="???? "; temp1 = temp1 + " " + temp3; } if ((_FsMode & 0x10) != 0) { INP1apiResultText(rc,temp3, "F_UW"+temp2+"_EINH", i, ""); if (rc == FALSE) temp3="????"; temp1 = temp1 + " " + temp3; } filewrite( " "+ temp1); } } else { INP1apiResultText(rc,temp1, "F_UW"+temp2+"_TEXT", i, "-40T"); if (rc == FALSE) temp1="???? "; if (temp1 !="-- ") { if ((_FsMode & 0x08) != 0) { INP1apiResultText(rc,temp3, "F_UW"+temp2+"_WERT", i, "8.2R"); if (rc == FALSE) temp3=" ???? "; temp1 = temp1 + " " + temp3; } if ((_FsMode & 0x10) != 0) { INP1apiResultText(rc,temp3, "F_UW"+temp2+"_EINH", i, ""); if (rc == FALSE) temp3="????"; temp1 = temp1 + " " + temp3; } filewrite( " "+ temp1); } } } } } } //********************************************************************** //* //* Fehlerprotokollausgabe Umweltbedingungen //* //********************************************************************** fs_protokoll_uwb_uds(in: int nr) { int i; // int k; // int len; // int F_UW_ANZ; bool rc; string temp1; // string temp2; // string temp3; // real realval; // int pos; i=nr; INP1apiResultText(rc,temp1, "F_UW_ZEIT", i, "10T"); if (rc == FALSE) { temp1=" ????"; } filewrite( " Absolute Zeit " + temp1+ " s"); fs_protokoll_uwb(i); } //********************************************************************** //* //* Fehlerprotokollausgabe Hexcode //* //********************************************************************** fs_protokoll_hex(in: int nr) { string nl; int i; int x1; int x2; int x3; bool rc; string temp1; string temp2; string temp3; chr(10,nl); i=nr; filewrite( ""); INP1apiResultBinary(rc,"F_HEX_CODE", i); if (rc == TRUE) { GetBinaryDataString (temp1, x1); x2 = 0; x3 = 0; temp2=""; while ( x2 < x1 ) { midstr(temp3, temp1, x2, 2); temp2 = temp2 + temp3; x2 = x2 + 2; x3 = x3 + 1; if ( x2 < x1 ) { if ( x3 < 16 )//Leerzeichen zwischen den Bytes { if ( x3 == 8 ) temp2 = temp2 + " ";//Nach 8 Bytes zwei Leerz. dann wieder 8 Bytes schreiben else temp2 = temp2 + " "; } else { x3 = 0; temp2 = temp2 + nl + " "; } } } } else { temp2 = "????"; } filewrite( "Fehlercode: "+temp2); } //********************************************************************** //* //* Fehlerprotokollausgabe Telegrammantwort(en) //* Wird nur bei Fehlerhaften FS_LESEN_DETAIL ausgegeben //* //********************************************************************** fs_protokoll_telantwort(in: int nr) { string nl; int i; int x1; int x2; int x3; bool rc; string temp1; string temp2; string temp3; string temp4; string temp5; chr(10,nl); i=nr; filewrite( ""); if (ident_typ == 3)//3=UDS (ISO 14229) { if (_ApiFsJobName == "FS_LESEN") INP1apiResultBinary(rc,"_RESPONSE_SNAPSHOT", i); else INP1apiResultBinary(rc,"_RESPONSE_2000", i);//IS_LESEN } else//1=DS2, 2=BMW Fast { INP1apiResultBinary(rc,"_TEL_ANTWORT", i); } if (rc == TRUE) { GetBinaryDataString (temp1, x1); x2 = 0; x3 = 0; temp2=""; while ( x2 < x1 ) { midstr(temp3, temp1, x2, 2); temp2 = temp2 + temp3; x2 = x2 + 2; x3 = x3 + 1; if ( x2 < x1 ) { if ( x3 < 16 )//Leerzeichen zwischen den Bytes { if ( x3 == 8 ) temp2 = temp2 + " ";//Nach 8 Bytes zwei Leerz. dann wieder 8 Bytes schreiben else temp2 = temp2 + " "; } else { x3 = 0; temp2 = temp2 + nl + " "; } } } } else { temp2 = "????--> Zur Analyse IFH-Trace benutzen!"; } //2. Telegramm nur für UDS ausgeben if (ident_typ == 3)//3=UDS (ISO 14229) { if (_ApiFsJobName == "FS_LESEN") INP1apiResultBinary(rc,"_RESPONSE_EXTENDED_DATA", i); else INP1apiResultBinary(rc,"_RESPONSE_200X", i);//IS_LESEN if (rc == TRUE) { GetBinaryDataString (temp1, x1); x2 = 0; x3 = 0; temp4=""; while ( x2 < x1 ) { midstr(temp3, temp1, x2, 2); temp4 = temp4 + temp3; x2 = x2 + 2; x3 = x3 + 1; if ( x2 < x1 ) { if ( x3 < 16 )//Leerzeichen zwischen den Bytes { if ( x3 == 8 ) temp4 = temp4 + " ";//Nach 8 Bytes zwei Leerz. dann wieder 8 Bytes schreiben else temp4 = temp4 + " "; } else { x3 = 0; temp4 = temp4 + nl + " "; } } } } else { temp4 = "????--> Zur Analyse IFH-Trace benutzen!"; } filewrite("Telegramm-Antwort ab Service Identifier zur Analyse"); if (_ApiFsJobName == "FS_LESEN") { filewrite("Data : "+temp2); filewrite("Snapshot : "+temp4); } else//IS_LESEN { filewrite("2000 : "+temp2); filewrite("200X : "+temp4); } } else//DS2, BMW Fast { filewrite("Telegramm-"); filewrite("Antwort : "+temp2); } } // -- EOF -- // end of :#include "FS_LESEN.SRC" // start of :#include "INITEXIT.SRC" //********************************************************************** //* //* INPA Library-Funktionen INITEXIT.SRC //* //* mindestens INPA 5.0.1 //* //********************************************************************** //* Gall TI-430 //********************************************************************** //* History: //* 04.07.2000 rd V0.03 Ersterstellung //* 25.04.2002 rd V1.00 Freigabe //* 24.09.2002 rd V1.01 Scriptinit verlagert //* 12.03.2003 iS V1.01 Anpassung SgbdInpaCheck()GroupCheck(); //* 16.02.2004 rd V2.00 Umstellung auf 32-Bit Version //* 30.03.2006 GA V3.00 Erweiterung auf UDS (ISO 14229) //* GA V3.00 INPA.INI, [EXTRA], SRIPTS auslesen, ob "deleteread" gesetzt, //* GA V3.00 um nach FS- IS-, HS-Löschen automatisch wieder zu lesen. //********************************************************************** // ************************** // *** inpainit, inpaexit *** // ************************** inpainit() { bool rc; string temp; int i; INPAapiInit(); chrinit(); // Handle für FS_LESEN StrArrayCreate(rc,f_ort_nr_buffer); if (rc == FALSE) { messagebox("Unerwarteter Fehler", // sollte nie kommen "StrArrayCreate(rc,f_ort_nr_buffer). "+CRLF+ "Das Programm wird abgebrochen!"); exit(); } StrArrayCreate(rc,f_ort_text_buffer); if (rc == FALSE) { messagebox("Unerwarteter Fehler", // sollte nie kommen "StrArrayCreate(rc,f_ort_text_buffer). "+CRLF+ "Das Programm wird abgebrochen!"); exit(); } SgbdInpaCheck(); GroupCheck(); setmenu(m_main); setscreen(s_main,TRUE); //INPA.INI einlesen, //um nach FS- IS-, HS-Löschen automatisch wieder zu lesen. //hinter "SCRIPTS" muß DeleteRead stehen, um die Funktion freizuschalten ExtraScript("DeleteRead", deleteread_flag); //m FS,IS,HS zu speichern ExtraScript("SaveAs", fs_lesen_save_as_flag); is_lesen_save_as_flag=fs_lesen_save_as_flag; hs_lesen_save_as_flag=fs_lesen_save_as_flag; //INPA.INI-Einstellung, falls Funktionen gewünscht: //[EXTRA] //SCRIPTS = DeleteRead,SaveAs //Wichtig: Nach dem Komma kein Leerzeichen benutzen! ScriptInit(); } inpaexit() { INPAapiEnd(); // Handle für FS_LESEN StrArrayDestroy(f_ort_nr_buffer); StrArrayDestroy(f_ort_text_buffer); } // -- EOF -- // end of :#include "INITEXIT.SRC" // ************************** // *** Hauptmenü *** // ************************** MENU m_main() { INIT { setmenutitle("Hauptmenü"); if ((ident_typ == 1)||(ident_typ == 2)) //DS2 oder BMW FAST { setitem(2, "Ident", TRUE); } else { setitem(2, "SVK", TRUE);//ISO 14229 } if ((fs_lesen_flag == TRUE) || (is_lesen_flag == TRUE) || (hs_lesen_flag == TRUE)) { setitem( 4 , "Fehler" , TRUE); } if (m_status_flag == TRUE) { setitem( 5 , "Status" , TRUE); } if (m_steuern_flag == TRUE) { setitem( 6 , "Steuern" , TRUE); } if (speicher_lesen_flag == TRUE) { setitem( 7 , "Speicher" , TRUE); } } ITEM( 1 ,"Info") { userboxclose(1); setscreen(s_info,TRUE); } ITEM( 2 ,"Ident") { userboxclose(1); if (ident_typ == 1) setscreen(s_ident_ds2,TRUE); else if (ident_typ == 2) setscreen(s_ident,TRUE); else setscreen(s_svk_lesen,TRUE); } ITEM( 3 ,"") { userboxclose(1); setscreen(s_main,TRUE); } ITEM( 4 ,"") { userboxclose(1); if ((fs_lesen_flag == TRUE) || (is_lesen_flag == TRUE) || (hs_lesen_flag == TRUE)) { setscreen( s_fehler ,TRUE); setmenu(m_fehler); } else setscreen( s_main ,TRUE); } ITEM( 5 ,"") { userboxclose(1); if (m_status_flag == TRUE) { setscreen(s_status,TRUE); setmenu(m_status); } else setscreen( s_main ,TRUE); } ITEM( 6 ,"") { userboxclose(1); if (m_steuern_flag == TRUE) { setscreen(s_steuern,TRUE); setmenu(m_steuern); } else setscreen( s_main ,TRUE); } ITEM( 7 ,"") { userboxclose(1); if (speicher_lesen_flag == TRUE) { setscreen(s_speicher,TRUE); setmenu(m_speicher); } else setscreen( s_main ,TRUE); } ITEM( 8 ,"Auswahl") { start(); select(TRUE); } ITEM(18 ,"Gesamt") { start(); deselect(); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Ende") { exit(); } ITEM( 11, "KVP") { setscreen(s_info,TRUE); callwin( "kvp_edit "+titel+";"+version+";"+sgbd+": "+sgbd_ecu+";"+sgbd_revision); } ITEM( 12 ,"") { setscreen( s_main ,TRUE); } ITEM( 13 ,"") { setscreen( s_main ,TRUE); } ITEM( 14 ,"") { setscreen( s_main ,TRUE); } ITEM( 15 ,"") { setscreen( s_main ,TRUE); } ITEM( 16 ,"") { setscreen( s_main ,TRUE); } ITEM( 17 ,"") { setscreen( s_main ,TRUE); } ITEM( 19 ,"") { setscreen( s_main ,TRUE); } ITEM( 20 ,"Exit") { exit(); } } // ************************** // *** Fehlermenü *** // ************************** MENU m_fehler() { int ErrorCode; int SpeicherUnterDateiNameLaenge=0; int ReturnedValue; string CurrentDirectory; string SpeichernKommentar1=""; string SpeichernKommentar2=""; string SpeicherUnterDateiName=""; string DateiLesenZeile=""; string DateiLesenPuffer=""; bool DateiLesenEOF; string DateiName=""; int aufrufIO; string JOB_STATUS; bool fehlerflag; INIT { setmenutitle("Fehlerspeicher"); if (fs_lesen_flag == TRUE) { setitem( 1 , "FS lesen" , TRUE); setitem( 2 , "FS löschen" , TRUE); setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 3 , "IS lesen" , TRUE); if (is_loeschen_flag == TRUE) setitem( 4 , "IS löschen" , TRUE); else setitem( 4 , "" , FALSE);//Nicht alle SGs haben IS_LOESCHEN. Z.B. EPS_90.PRG setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 5 , "HS lesen" , TRUE); if (hs_loeschen_flag == TRUE) setitem( 6 , "HS löschen" , TRUE); else setitem( 6 , "" , FALSE);//Nicht alle SGs haben HS_LOESCHEN. Z.B. EPS_90.PRG setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } } ITEM( 1 ,"") { userboxclose(0); viewclose(); if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } if (fs_lesen_flag == TRUE) { userboxopen(0,8,35,5,50,"Fehlerspeicher lesen",""); userboxftextout(0,"Der Fehlerspeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","",""); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Fehlerspeicher lesen"); setitem( 9 , "FS drucken" , TRUE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", TRUE); } } ITEM( 2 ,"") { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } if (fs_lesen_flag == TRUE) { INPAapiJob(sgbd,"FS_LOESCHEN","",""); INP1apiResultText(fehlerflag,JOB_STATUS, "JOB_STATUS", 1, ""); if (JOB_STATUS != "OKAY") { userboxopen(0,8,35,5,50,"Fehlerspeicher löschen",""); userboxftextout(0,"Der Fehlerspeicher konnte nicht gelöscht werden!",1,3,0,0); userboxsetcolor(0,1,4); INPAapiCheckJobStatus("OKAY"); } else { userboxopen(0,8,35,5,50,"Fehlerspeicher löschen",""); userboxftextout(0,"Der Fehlerspeicher wurde gelöscht!",1,3,0,0); if (deleteread_flag == TRUE) // Aktivierung über INPA.INI, SCRIPTS = DeleteRead { delay(2000); userboxclose(0); userboxopen(0,8,35,5,50,"Fehlerspeicher lesen",""); userboxftextout(0,"Der Fehlerspeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","",""); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Fehlerspeicher lesen"); setitem( 9 , "FS drucken" , TRUE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", TRUE); } } } } ITEM( 3 ,"") { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } if (is_lesen_flag == TRUE) { userboxopen(0,8,35,5,50,"Infospeicher lesen",""); userboxftextout(0,"Der Infospeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","","IS_LESEN"); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Infospeicher lesen"); setitem( 8 , "IS drucken" , TRUE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", TRUE); } } ITEM( 4 ,"") { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } if (is_loeschen_flag == TRUE) { INPAapiJob(sgbd,"IS_LOESCHEN","",""); INP1apiResultText(fehlerflag,JOB_STATUS, "JOB_STATUS", 1, ""); if (JOB_STATUS != "OKAY") { userboxopen(0,8,35,5,50,"Infospeicher löschen",""); userboxftextout(0,"Der Infospeicher konnte nicht gelöscht werden!",1,3,0,0); userboxsetcolor(0,1,4); INPAapiCheckJobStatus("OKAY"); } else { userboxopen(0,8,35,5,50,"Infospeicher löschen",""); userboxftextout(0,"Der Infospeicher wurde gelöscht!",1,3,0,0); if (deleteread_flag == TRUE) // Aktivierung über INPA.INI, SCRIPT = deleteread { delay(2000); userboxclose(0); userboxopen(0,8,35,5,50,"Infospeicher lesen",""); userboxftextout(0,"Der Infospeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","","IS_LESEN"); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Infospeicher lesen"); setitem( 8 , "IS drucken" , TRUE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", TRUE); } } } } ITEM( 5 ,"") { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { userboxopen(0,8,35,5,50,"Historienspeicher lesen",""); userboxftextout(0,"Der Historienspeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","","HS_LESEN"); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Historienspeicher lesen"); setitem( 7 , "HS drucken" , TRUE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", TRUE); } } ITEM( 6 ,"") { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } if (hs_loeschen_flag == TRUE) { INPAapiJob(sgbd,"HS_LOESCHEN","",""); INP1apiResultText(fehlerflag,JOB_STATUS, "JOB_STATUS", 1, ""); if (JOB_STATUS != "OKAY") { userboxopen(0,8,35,5,50,"Historienspeicher löschen",""); userboxftextout(0,"Der Historienspeicher konnte nicht gelöscht werden!",1,3,0,0); userboxsetcolor(0,1,4); INPAapiCheckJobStatus("OKAY"); } else { userboxopen(0,8,35,5,50,"Historienspeicher löschen",""); userboxftextout(0,"Der Historienspeicher wurde gelöscht!",1,3,0,0); if (deleteread_flag == TRUE) // Aktivierung über INPA.INI, SCRIPT = deleteread { delay(2000); userboxclose(0); userboxopen(0,8,35,5,50,"Historienspeicher lesen",""); userboxftextout(0,"Der Historienspeicher wird gelesen! ... bitte warten",1,3,0,0); INPAapiFsMode_neu(0x7FF,"w","","","HS_LESEN"); // alles Anzeigen INPAapiFsLesen_neu(sgbd,"na_fs.tmp"); userboxclose(0); DateiName="na_fs.tmp"; viewopen(DateiName,"Historienspeicher lesen"); setitem( 7 , "HS drucken" , TRUE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", TRUE); } } } } ITEM( 7 ,"") { if (hs_lesen_flag == TRUE) { printfile(ErrorCode, DateiName, "", "",TRUE); } else { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } } } ITEM( 8 ,"") { if (is_lesen_flag == TRUE) { printfile(ErrorCode, DateiName, "", "",TRUE); } else { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } } } ITEM( 9 ,"") { if (fs_lesen_flag == TRUE) { printfile(ErrorCode, DateiName, "", "",TRUE); } else { userboxclose(0); viewclose(); if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } } } ITEM(17 ,"") { if ((hs_lesen_flag == TRUE) && (hs_lesen_save_as_flag == TRUE)) { input2text(SpeichernKommentar1,SpeichernKommentar2, "Kommentar", "Geben Sie den zu speichernden Kommentar ein", "",""); getinputstate(input_state); if (input_state==input_ok) { space(SpeicherUnterDateiName,256); strlen(SpeicherUnterDateiNameLaenge,SpeicherUnterDateiName); GetCurrentDirectory(256,CurrentDirectory,ReturnedValue); SaveAsDialogBox("",SpeicherUnterDateiName,SpeicherUnterDateiNameLaenge,SpeicherUnterDateiNameLaenge); SetCurrentDirectory(CurrentDirectory,ReturnedValue); if (SpeicherUnterDateiNameLaenge > 0) { DateiLesenPuffer=""; fileopen("na_fs.tmp","r"); fileread(DateiLesenZeile, DateiLesenEOF ); while (DateiLesenEOF == FALSE) { DateiLesenPuffer=DateiLesenPuffer+DateiLesenZeile; fileread(DateiLesenZeile, DateiLesenEOF ); if (DateiLesenEOF == FALSE) DateiLesenPuffer=DateiLesenPuffer+LF; } fileclose(); DateiName=SpeicherUnterDateiName; fileopen(DateiName,"w"); if (SpeichernKommentar1 + SpeichernKommentar2 != "") { filewrite( " K O M M E N T A R"); filewrite( " -----------------"); filewrite( ""); if (SpeichernKommentar1 != "") filewrite(SpeichernKommentar1); if (SpeichernKommentar2 != "") filewrite(SpeichernKommentar2); filewrite( "-------------------------------------------------------------"); filewrite(""); } filewrite(DateiLesenPuffer); fileclose(); viewclose(); viewopen(DateiName,"Historienspeicher speichern: "+DateiName); } } } else { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); } } } ITEM(18 ,"") { if ((is_lesen_flag == TRUE) && (is_lesen_save_as_flag == TRUE)) { input2text(SpeichernKommentar1,SpeichernKommentar2, "Kommentar", "Geben Sie den zu speichernden Kommentar ein", "",""); getinputstate(input_state); if (input_state==input_ok) { space(SpeicherUnterDateiName,256); strlen(SpeicherUnterDateiNameLaenge,SpeicherUnterDateiName); GetCurrentDirectory(256,CurrentDirectory,ReturnedValue); SaveAsDialogBox("",SpeicherUnterDateiName,SpeicherUnterDateiNameLaenge,SpeicherUnterDateiNameLaenge); SetCurrentDirectory(CurrentDirectory,ReturnedValue); if (SpeicherUnterDateiNameLaenge > 0) { DateiLesenPuffer=""; fileopen("na_fs.tmp","r"); fileread(DateiLesenZeile, DateiLesenEOF ); while (DateiLesenEOF == FALSE) { DateiLesenPuffer=DateiLesenPuffer+DateiLesenZeile; fileread(DateiLesenZeile, DateiLesenEOF ); if (DateiLesenEOF == FALSE) DateiLesenPuffer=DateiLesenPuffer+LF; } fileclose(); DateiName=SpeicherUnterDateiName; fileopen(DateiName,"w"); if (SpeichernKommentar1 + SpeichernKommentar2 != "") { filewrite( " K O M M E N T A R"); filewrite( " -----------------"); filewrite( ""); if (SpeichernKommentar1 != "") filewrite(SpeichernKommentar1); if (SpeichernKommentar2 != "") filewrite(SpeichernKommentar2); filewrite( "-------------------------------------------------------------"); filewrite(""); } filewrite(DateiLesenPuffer); fileclose(); viewclose(); viewopen(DateiName,"Infospeicher speichern: "+DateiName); } } } else { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); if (fs_lesen_save_as_flag == TRUE) setitem(19 , "FS speichern", FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } } } ITEM(19 ,"") { if ((fs_lesen_flag == TRUE) && (fs_lesen_save_as_flag == TRUE)) { input2text(SpeichernKommentar1,SpeichernKommentar2, "Kommentar", "Geben Sie den zu speichernden Kommentar ein", "",""); getinputstate(input_state); if (input_state==input_ok) { space(SpeicherUnterDateiName,256); strlen(SpeicherUnterDateiNameLaenge,SpeicherUnterDateiName); GetCurrentDirectory(256,CurrentDirectory,ReturnedValue); SaveAsDialogBox("",SpeicherUnterDateiName,SpeicherUnterDateiNameLaenge,SpeicherUnterDateiNameLaenge); SetCurrentDirectory(CurrentDirectory,ReturnedValue); if (SpeicherUnterDateiNameLaenge > 0) { DateiLesenPuffer=""; fileopen("na_fs.tmp","r"); fileread(DateiLesenZeile, DateiLesenEOF ); while (DateiLesenEOF == FALSE) { DateiLesenPuffer=DateiLesenPuffer+DateiLesenZeile; fileread(DateiLesenZeile, DateiLesenEOF ); if (DateiLesenEOF == FALSE) DateiLesenPuffer=DateiLesenPuffer+LF; } fileclose(); DateiName=SpeicherUnterDateiName; fileopen(DateiName,"w"); if (SpeichernKommentar1 + SpeichernKommentar2 != "") { filewrite( " K O M M E N T A R"); filewrite( " -----------------"); filewrite( ""); if (SpeichernKommentar1 != "") filewrite(SpeichernKommentar1); if (SpeichernKommentar2 != "") filewrite(SpeichernKommentar2); filewrite( "-------------------------------------------------------------"); filewrite(""); } filewrite(DateiLesenPuffer); fileclose(); viewclose(); viewopen(DateiName,"Fehlerspeicher speichern: "+DateiName); } } } else { userboxclose(0); viewclose(); if (fs_lesen_flag == TRUE) { setitem( 9 , "FS drucken" , FALSE); } if (is_lesen_flag == TRUE) { setitem( 8 , "IS drucken" , FALSE); if (is_lesen_save_as_flag == TRUE) setitem(18 , "IS speichern", FALSE); } if (hs_lesen_flag == TRUE) { setitem( 7 , "HS drucken" , FALSE); if (hs_lesen_save_as_flag == TRUE) setitem(17 , "HS speichern", FALSE); } } } ITEM( 10 ,"Zurück") { userboxclose(0); viewclose(); setscreen( s_main ,TRUE); setmenu( m_main ); } ITEM( 20 ,"Exit") { userboxclose(0); viewclose(); exit(); } } // ************************** // *** Speichermenü *** // ************************** MENU m_speicher() { int input_ok=0; int input_state; string text_var; INIT { setmenutitle("Speicher lesen"); if (speicher_lesen_lar_flag==TRUE) setitem( 1 , "LAR" , TRUE); if (speicher_lesen_flash_flag==TRUE) setitem( 2 , "FLASH", TRUE); if (speicher_lesen_uifm_flag==TRUE) setitem( 3 , "UIFM" , TRUE); if (speicher_lesen_romi_flag==TRUE) setitem( 4 , "ROMI" , TRUE); if (speicher_lesen_ramis_flag==TRUE) setitem( 5 , "RAMIS", TRUE); if (speicher_lesen_ramil_flag==TRUE) setitem( 6 , "RAMIL", TRUE); if (speicher_lesen_nvram_flag==TRUE) setitem( 7 , "NVRAM", TRUE); if (speicher_lesen_romx_flag==TRUE) setitem(14 , "ROMX" , TRUE); if (speicher_lesen_ramxx_flag==TRUE) setitem(15 , "RAMXX", TRUE); } ITEM( 1 ,"") { if (speicher_lesen_lar_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"LAR lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="LAR lesen"; speicher_lesen_seg_adr_anz="LAR;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 2 ,"") { if (speicher_lesen_flash_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"FLASH lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="FLASH lesen"; speicher_lesen_seg_adr_anz="FLASH;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 3 ,"") { if (speicher_lesen_uifm_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"UIFM lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="UIFM lesen"; speicher_lesen_seg_adr_anz="UIFM;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 4 ,"") { if (speicher_lesen_romi_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"ROMI lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="ROMI lesen"; speicher_lesen_seg_adr_anz="ROMI;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 5 ,"") { if (speicher_lesen_ramis_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"RAMIS lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="RAMIS lesen"; speicher_lesen_seg_adr_anz="RAMIS;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 6 ,"") { if (speicher_lesen_ramil_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"RAMIL lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="RAMIL lesen"; speicher_lesen_seg_adr_anz="RAMIL;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 7 ,"") { if (speicher_lesen_nvram_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"NVRAM lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="NVRAM lesen"; speicher_lesen_seg_adr_anz="NVRAM;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 8 ,"") { setscreen( s_speicher,TRUE); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_main ,TRUE); setmenu( m_main ); } ITEM( 11 ,"") { setscreen( s_speicher,TRUE); } ITEM( 12 ,"") { setscreen( s_speicher,TRUE); } ITEM( 13 ,"") { setscreen( s_speicher,TRUE); } ITEM( 14 ,"") { if (speicher_lesen_romx_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"ROMX lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="ROMX lesen"; speicher_lesen_seg_adr_anz="ROMX;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 15 ,"") { if (speicher_lesen_ramxx_flag==TRUE) { input2hexnum(speicher_lesen_adresse,speicher_lesen_anzahl,"RAMXX lesen", "Es ist darauf zu achten, "+ "daß die angegebene Adresse + Anzahl "+ "der zu lesenden Bytes die Obergrenze "+ "(FFFFFF) nicht überschreitet.", "Adresse 000000-FFFFFF","Anzahl der Bytes 1-200","000000","FFFFFF",1,200); getinputstate(input_state); if (input_state==input_ok) { speicher_lesen_text="RAMXX lesen"; speicher_lesen_seg_adr_anz="RAMXX;"+speicher_lesen_adresse; inttostring(speicher_lesen_anzahl,text_var); speicher_lesen_seg_adr_anz=speicher_lesen_seg_adr_anz+";"+text_var; setscreen(s_speicher_ausgabe,TRUE); } } else setscreen(s_speicher,TRUE); } ITEM( 16 ,"") { setscreen( s_speicher,TRUE); } ITEM( 17 ,"") { setscreen( s_speicher,TRUE); } ITEM( 18 ,"") { setscreen( s_speicher,TRUE); } ITEM( 19 ,"") { setscreen( s_speicher,TRUE); } ITEM( 20 ,"Exit") { exit(); } } // ************************** // *** Hauptscreen *** // ************************** SCREEN s_main() { string text_var; userboxclose(0); ftextout("Hauptmenü",1,0,1,0); ftextout("",3,0,0,0); if (simulation_flag == TRUE) { userboxopen(1,14,30,5,48,"Hinweis",""); userboxftextout(1,"INPA bzw. EDIABAS läuft im Simulationsmodus!",1,3,0,24); userboxsetcolor(1,0,4); } if (ident_typ != 3) { INPAapiJob(sgbd,"IDENT","",""); INPAapiCheckJobStatus("OKAY"); } LINE("","") { if (ident_typ != 3)//Nur bei DS2 und BMW Fast vorhanden { ftextout("BMW Teilenummer",1,0,0,0); ftextout(":",1,19,0,0); INPAapiResultText(text_var,"ID_BMW_NR",1,""); ftextout(text_var,1,20,0,1); ftextout("Herstelldatum",1,43,0,0); ftextout(":",1,59,0,0); if (ident_typ == 1)//DS2 { ftextout("KW / Jahr",1,68,0,0); ftextout("/",1,63,0,1); INPAapiResultText(text_var,"ID_DATUM_KW",1,""); ftextout(text_var,1,60,0,1); INPAapiResultText(text_var,"ID_DATUM_JAHR",1,""); ftextout(text_var,1,65,0,1); } else if (ident_typ == 2)//BMW FAST { INPAapiResultText(text_var,"ID_DATUM",1,""); ftextout(text_var,1,60,0,1); } } ftextout("< F1 > Information" , 4,5,0,1); if ((ident_typ == 1)||(ident_typ == 2)) //DS2 oder BMW FAST { ftextout("< F2 > Identifikation" , 6,5,0,1); } else { ftextout("< F2 > Steuergeräteverbaukennung" , 6,5,0,1);//UDS (ISO 14229) } if ((fs_lesen_flag == TRUE) || (is_lesen_flag == TRUE) || (hs_lesen_flag == TRUE)) ftextout("< F4 > Fehlerspeicher" ,10,5,0,1); if (m_status_flag == TRUE) ftextout("< F5 > Status lesen" ,12,5,0,1); if (m_steuern_flag == TRUE) ftextout("< F6 > Ansteuern" ,14,5,0,1); if (speicher_lesen_flag == TRUE) ftextout("< F7 > Speicher lesen" ,16,5,0,1); ftextout("< F8 > Auswahl" ,18,5,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Ende" ,22,5,0,1); ftextout(" + < F1 > KVP-Editor" , 4,45,0,1); ftextout(" + < F8 > Gesamt" ,18,45,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } // ************************** // *** Infoscreen *** // ************************** SCREEN s_info () { int i; int slen; int pos; int pos2; int anzahl; string temp; ftextout("Information",1,0,1,0); ftextout("Nacharbeitsprogramm",4,0,0,0); ftextout(":", 4,33,0,1); ftextout(titel,4,35,0,1); ftextout("Version",5,1,0,0); ftextout(":", 5,33,0,1); ftextout(version,5,35,0,1); ftextout("Package",6,1,0,0); ftextout(":", 6,33,0,1); ftextout(package,6,35,0,1); ftextout("Verantwortung",7,1,0,0); ftextout(":", 7,33,0,1); ftextout(origin,7,35,0,1); ftextout("Gruppendatei",10,0,0,0); ftextout(":",10,33,0,1); ftextout(gruppe,10,35,0,1); ftextout("Bezeichnung",11,1,0,0); ftextout(":",11,33,0,1); ftextout(gruppe_ecu,11,35,0,1); ftextout("Version",12,1,0,0); ftextout(":",12,33,0,1); ftextout(gruppe_revision,12,35,0,1); ftextout("Verantwortung",13,1,0,0); ftextout(":",13,33,0,1); ftextout(gruppe_origin,13,35,0,1); ftextout("Identifizierbare SGBD'en",14,1,0,0); strlen(slen, gruppe_comment); anzahl=44; pos=0; if ( slen <= anzahl ) { ftextout(":",14,33,0,1); ftextout(gruppe_comment,14,35,0,1); } else { instr(pos2, anzahl, gruppe_comment, ","); if (pos2 > 0) anzahl=pos2+1; midstr(temp, gruppe_comment, pos, anzahl); ftextout(":",14,33,0,1); ftextout(temp,14,35,0,1); i=14; pos=pos+anzahl; while ( pos < slen ) { i=i+1; anzahl=75; instr(pos2, pos + anzahl, gruppe_comment, ","); if (pos2 > 0) anzahl=pos2+1-pos; midstr(temp, gruppe_comment, pos, anzahl); ftextout(temp,i,1,0,1); pos=pos+anzahl; if ( i >= 18 ) { if ( pos < slen ) ftextout(temp+" . . .",i,1,0,1); pos=slen; } } } ftextout("Steuergerätebeschreibungsdatei",21,0,0,0); ftextout(":",21,33,0,1); ftextout(sgbd,21,35,0,1); ftextout("Steuergerät",22,1,0,0); ftextout(":",22,33,0,1); ftextout(sgbd_ecu,22,35,0,1); ftextout("Version",23,1,0,0); ftextout(":",23,33,0,1); ftextout(sgbd_revision,23,35,0,1); ftextout("Package",24,1,0,0); ftextout(":",24,33,0,1); ftextout(sgbd_package,24,35,0,1); ftextout("Verantwortung",25,1,0,0); ftextout(":",25,33,0,1); ftextout(sgbd_origin,25,35,0,1); ftextout("Sprache",26,1,0,0); ftextout(":",26,33,0,1); ftextout(sgbd_sprache,26,35,0,1); if (sgbd_comment!="") { ftextout("Kommentar",27,1,0,0); ftextout(":",27,33,0,1); ftextout(sgbd_comment,27,35,0,1); } } // ************************** // *** Identscreen DS2 *** // ************************** SCREEN s_ident_ds2() { ftextout("Identifikation",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"IDENT","",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { ftextout("BMW Teilenummer",1,0,1,0); ftextout(":",1,33,1,0); INPAapiResultText(text_var,"ID_BMW_NR",1,""); ftextout(text_var,1,35,1,1); ftextout("Hardwarenummer",4,0,1,0); ftextout(":",4,33,1,0); INPAapiResultText(text_var,"ID_HW_NR",1,""); ftextout(text_var,4,35,1,1); ftextout("Softwarenummer",7,0,1,0); ftextout(":",7,33,1,0); INPAapiResultText(text_var,"ID_SW_NR",1,""); ftextout(text_var,7,35,1,1); ftextout("Lieferant",10,0,1,0); ftextout(":",10,33,1,0); INPAapiResultText(text_var,"ID_LIEF_TEXT",1,""); ftextout(text_var,10,35,1,1); ftextout("Codier-Index",13,0,1,0); ftextout(":",13,33,1,0); INPAapiResultText(text_var,"ID_COD_INDEX",1,""); ftextout(text_var,13,35,1,1); ftextout("Diagnose-Index",16,0,1,0); ftextout(":",16,33,1,0); INPAapiResultText(text_var,"ID_DIAG_INDEX",1,""); ftextout(text_var,16,35,1,1); ftextout("Bus-Index",19,0,1,0); ftextout(":",19,33,1,0); INPAapiResultText(text_var,"ID_BUS_INDEX",1,""); ftextout(text_var,19,35,1,1); ftextout("Herstelldatum",22,0,1,0); ftextout(":",22,33,1,0); ftextout("KW / Jahr",22,55,1,0); ftextout("/",22,41,1,1); INPAapiResultText(text_var,"ID_DATUM_KW",1,""); ftextout(text_var,22,35,1,1); INPAapiResultText(text_var,"ID_DATUM_JAHR",1,""); ftextout(text_var,22,45,1,1); } } // **************************** // *** Identscreen BMW Fast *** // **************************** SCREEN s_ident() { string text_var; int ganz_zahl; string job_status="???"; // für Job_Statuskontrolle bool fehlerflag; // Fehlerflag int errorcode; // EDIABAS Fehlernummer string errorcode_text; // EDIABAS Fehlernummer string error_text; // EDIABAS Fehlertext ftextout("Identifikation",1,0,1,0); ftextout("",3,0,0,1); LINE("Identifikation","") { INPAapiJob(sgbd,"IDENT","",""); INPAapiCheckJobStatus("OKAY"); ftextout("BMW Teilenummer",1,0,0,0); ftextout(":",1,43,0,0); INPAapiResultText(text_var,"ID_BMW_NR",1,""); ftextout(text_var,1,45,0,1); ftextout("Codier-Index",3,0,0,0); ftextout(":",3,43,0,0); INPAapiResultText(text_var,"ID_COD_INDEX",1,""); ftextout(text_var,3,45,0,1); ftextout("Varianten-Index",5,0,0,0); ftextout(":",5,43,0,0); INPAapiResultText(text_var,"ID_VAR_INDEX",1,""); ftextout(text_var,5,45,0,1); ftextout("Diagnose-Index",7,0,0,0); ftextout(":",7,43,0,0); INPAapiResultText(text_var,"ID_DIAG_INDEX",1,""); ftextout(text_var,7,45,0,1); ftextout("Hardwarenummer",9,0,0,0); ftextout(":",9,43,0,0); INPAapiResultText(text_var,"ID_HW_NR",1,""); ftextout(text_var,9,45,0,1); ftextout("Softwarenummer Funktionssoftware",11,0,0,0); ftextout(":",11,43,0,0); INPAapiResultText(text_var,"ID_SW_NR_FSV",1,""); ftextout(text_var,11,45,0,1); ftextout("Softwarenummer Betriebssystem",13,0,0,0); ftextout(":",13,43,0,0); INPAapiResultText(text_var,"ID_SW_NR_OSV",1,""); ftextout(text_var,13,45,0,1); ftextout("Softwarenummer Nachrichtenkatalog",15,0,0,0); ftextout(":",15,43,0,0); INPAapiResultText(text_var,"ID_SW_NR_MCV",1,""); ftextout(text_var,15,45,0,1); ftextout("Softwarenummer (Reserve) Zur Zeit nicht benutzt",17,0,0,0); ftextout(":",17,43,0,0); INPAapiResultText(text_var,"ID_SW_NR_RES",1,""); ftextout(text_var,17,45,0,1); ftextout("Herstelldatum",19,0,0,0); ftextout(":",19,43,0,0); INPAapiResultText(text_var,"ID_DATUM",1,""); ftextout(text_var,19,45,0,1); ftextout("Lieferant",21,0,0,0); ftextout(":",21,43,0,0); INPAapiResultText(text_var,"ID_LIEF_TEXT",1,""); ftextout(text_var,21,45,0,1); } // *** AIF, Anwender-Information // *** auf 2. Seite von IDENT LINE("Anwender-Information","") { INPAapiJob(sgbd,"AIF_LESEN","",""); INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",1,""); INP1apiErrorCode(errorcode); ftextout("",10,0,0,0); if ((fehlerflag == FALSE) && (errorcode == 98))//98=SYS-0008: Job nicht gefunden { ftextout("Kein Anwenderinfofeld (AIF_LESEN) vorhanden" ,3,0,0,0); } else if (((fehlerflag == FALSE) && (errorcode != 98)) || (job_status != "OKAY")) { ftextout("Fehler beim Lesen von Job: AIF_LESEN",1,0,0,0); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; } else { error_text= "Job-Status-Fehlermeldung: "+job_status; } ftextout(error_text ,2,0,0,0); ftextout("" ,3,0,0,0); INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben } else { INPAapiResultInt(ganz_zahl,"AIF_ANZ_DATEN",1); if (ganz_zahl > 18) // lange AIF ausgeben { ftextout("Fahrgestell Nr.",1,0,0,0); ftextout(":",1,43,0,0); INPAapiResultText(text_var,"AIF_FG_NR",1,""); ftextout(text_var,1,45,0,1); ftextout("Zusammenbau Nr.",3,0,0,0); ftextout(":",3,43,0,0); INPAapiResultText(text_var,"AIF_ZB_NR",1,""); ftextout(text_var,3,45,0,1); ftextout("Programmier-Datum",5,0,0,0); ftextout(":",5,43,0,0); INPAapiResultText(text_var,"AIF_DATUM",1,""); ftextout(text_var,5,45,0,1); ftextout("Datensatz Nr.",7,0,0,0); ftextout(":",7,43,0,0); INPAapiResultText(text_var,"AIF_SW_NR",1,""); ftextout(text_var,7,45,0,1); ftextout("Behörden Nr.",9,0,0,0); ftextout(":",9,43,0,0); INPAapiResultText(text_var,"AIF_BEHOERDEN_NR",1,""); ftextout(text_var,9,45,0,1); ftextout("Händler Nr.",11,0,0,0); ftextout(":",11,43,0,0); INPAapiResultText(text_var,"AIF_HAENDLER_NR",1,""); ftextout(text_var,11,45,0,1); ftextout("Tester Nr.",13,0,0,0); ftextout(":",13,43,0,0); INPAapiResultText(text_var,"AIF_SERIEN_NR",1,""); ftextout(text_var,13,45,0,1); ftextout("km-Stand",15,0,0,0); ftextout(":",15,43,0,0); INPAapiResultText(text_var,"AIF_KM",1,""); ftextout(text_var,15,45,0,1); ftextout("Programm-Stand",17,0,0,0); ftextout(":",17,43,0,0); INPAapiResultText(text_var,"AIF_PROG_NR",1,""); ftextout(text_var,17,45,0,1); ftextout("Adresse AIF",19,0,0,0); ftextout(":",19,43,0,0); INPAapiResultInt(ganz_zahl,"AIF_ADRESSE_LOW",1); inttohexstring(ganz_zahl,4,text_var); ftextout(text_var,19,45,0,1); ftextout("Anzahl freie AIF",21,0,0,0); ftextout(":",21,43,0,0); INPAapiResultText(text_var,"AIF_ANZ_FREI",1,""); ftextout(text_var,21,45,0,1); ftextout("Anzahl Daten AIF",23,0,0,0); ftextout(":",23,43,0,0); INPAapiResultText(text_var,"AIF_ANZ_DATEN",1,""); ftextout(text_var,23,45,0,1); } else //18 Byte -> kurze AIF ausgeben { ftextout("Fahrgestell Nr.",1,0,0,0); ftextout(":",1,43,0,0); INPAapiResultText(text_var,"AIF_FG_NR",1,""); ftextout(text_var,1,45,0,1); ftextout("Zusammenbau Nr.",3,0,0,0); ftextout(":",3,43,0,0); INPAapiResultText(text_var,"AIF_ZB_NR",1,""); ftextout(text_var,3,45,0,1); ftextout("Programmier-Datum",5,0,0,0); ftextout(":",5,43,0,0); INPAapiResultText(text_var,"AIF_DATUM",1,""); ftextout(text_var,5,45,0,1); ftextout("Adresse AIF",19,0,0,0); ftextout(":",19,43,0,0); INPAapiResultInt(ganz_zahl,"AIF_ADRESSE_LOW",1); inttohexstring(ganz_zahl,4,text_var); ftextout(text_var,19,45,0,1); ftextout("Anzahl freie AIF",21,0,0,0); ftextout(":",21,43,0,0); INPAapiResultText(text_var,"AIF_ANZ_FREI",1,""); ftextout(text_var,21,45,0,1); ftextout("Anzahl Daten AIF",23,0,0,0); ftextout(":",23,43,0,0); INPAapiResultText(text_var,"AIF_ANZ_DATEN",1,""); ftextout(text_var,23,45,0,1); } } } LINE("CFG Lesen","") { INPAapiJob(sgbd,"C_FG_LESEN","",""); INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",1,""); INP1apiErrorCode(errorcode); ftextout("Codierdaten",0,0,0,1); ftextout("",10,0,0,0);// um auf einer neuen Seite darzustellen if ((fehlerflag == FALSE) && (errorcode == 98))//98=SYS-0008: Job nicht gefunden { ftextout("Kein Fahrgestellnummer lesen (CFG_LESEN) vorhanden " ,3,0,0,0); } else if (((fehlerflag == FALSE) && (errorcode != 98)) || (job_status != "OKAY")) { ftextout("Fehler beim Lesen von Job: C_FG_LESEN",1,0,0,0); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; } else { error_text= "Job-Status-Fehlermeldung: "+job_status; } ftextout(error_text ,2,0,0,0); ftextout("" ,3,0,0,0); INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben } else { ftextout("Fahrgestell Nr.",3,0,0,0); ftextout(":",3,43,0,0); INPAapiResultText(text_var,"FG_NR",1,""); ftextout(text_var,3,45,0,1); } INPAapiJob(sgbd,"C_AEI_LESEN","",""); INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",1,""); INP1apiErrorCode(errorcode); if ((fehlerflag == FALSE) && (errorcode == 98))//98=SYS-0008: Job nicht gefunden { ftextout("Kein Codierdatenänderungsindex (C_AEI_LESEN) vorhanden" ,3,0,0,0); } else if (((fehlerflag == FALSE) && (errorcode != 98)) || (job_status != "OKAY")) { INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben } else { ftextout("Codierdatenänderungsindex",6,0,0,0); ftextout(":",6,43,0,0); INPAapiResultText(text_var,"COD_AE_INDEX",1,""); ftextout(text_var,6,45,0,1); } } } // **************************************************************************** // *** Identinformationen werden über SVK_LESEN ermittelt *** // *** SVK: SteuergeräeVerbauKennung Soft- und Hardware für UDS (ISO 14229) *** // **************************************************************************** SCREEN s_svk_lesen() { string text_var; string text_var2; int ganz_zahl; string job_status="???"; // für Job_Statuskontrolle bool fehlerflag; // Fehlerflag int sets; // Anzahl sets int errorcode; // EDIABAS Fehlernummer string errorcode_text; // EDIABAS Fehlernummer string error_text; // EDIABAS Fehlertext als Text bool eingabeWeiter; int input_state; // Eingabestatus int input_ok=1; // Eingabe mit Nein beendet int i; int offset; int einheiten_anz; int pos; real realval; real realval2; long longval; long rest_long; long multiplik_long; ftextout("Steuergeräteverbaukennung Soft- und Hardware",1,0,1,0); ftextout("",2,0,0,1); LINE("Hersteller Information","") {//HERSTELLINFO_LESEN ist kein Pflichtjob! (Stand: 03.2006) INPAapiJob(sgbd,"HERSTELLINFO_LESEN","",""); INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",1,""); INP1apiErrorCode(errorcode); if ((fehlerflag == FALSE) && (errorcode == 98))//98=SYS-0008: Job nicht gefunden { ftextout("Keine Herstellerinformationen vorhanden" ,1,0,0,0); ftextout("" ,2,0,0,0); } else if (((fehlerflag == FALSE) && (errorcode != 98)) || (job_status != "OKAY")) { ftextout("Fehler beim Lesen von Job: HERSTELLINFO_LESEN",1,0,0,0); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; } else { error_text= "Job-Status-Fehlermeldung: "+job_status; } ftextout(error_text ,2,0,0,0); ftextout("" ,3,0,0,0); INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben } else { ftextout("Herstelldatum",1,0,0,0); ftextout(":",1,41,0,0); INPAapiResultText(text_var,"ID_DATUM",1,""); ftextout(text_var,1,45,0,1); ftextout("Lieferant",2,0,0,0); ftextout(":",2,41,0,0); INPAapiResultText(text_var,"ID_LIEF_TEXT",1,""); ftextout(text_var,2,45,0,1); ftextout("--------------------------------------------------------------------------------------------------------------------------------",3,0,0,0); ftextout("",4,0,0,0); } } LINE("Ident","") { INPAapiJob(sgbd,"IDENT","",""); INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",1,""); INP1apiErrorCode(errorcode); /* if ((fehlerflag == FALSE) && (errorcode == 98))//98=SYS-0008: Job nicht gefunden { ftextout("Kein Ident vorhanden" ,1,0,0,0); ftextout("" ,2,0,0,0); } else */if (((fehlerflag == FALSE) /*&& (errorcode != 98)*/) || (job_status != "OKAY")) { ftextout("Fehler beim Lesen von Job: IDENT",1,0,0,0); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; } else { error_text= "Job-Status-Fehlermeldung: "+job_status; } ftextout(error_text ,2,0,0,0); ftextout("" ,3,0,0,0); INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben } else { ftextout("Steuergeräte-Adresse",1,0,0,0); ftextout(":",1,41,0,0); INPAapiResultInt(ganz_zahl,"ID_SG_ADR",1); inttohexstring(ganz_zahl,4,text_var); //Führende Nullen ausblenden if (ganz_zahl <= 255) midstr(text_var,text_var,2,2); ftextout("0x"+text_var,1,45,0,1); ftextout("SGBD-Index",2,0,0,0); ftextout(":",2,41,0,0); INPAapiResultBinary("_RESPONSE",1); GetBinaryDataString (text_var,i); midstr(text_var,text_var,6,11); ftextout("0x"+text_var,2,45,0,1); ftextout("--------------------------------------------------------------------------------------------------------------------------------",3,0,0,0); ftextout("",4,0,0,0); } } LINE("SVK","") { INPAapiJob(sgbd,"SVK_LESEN","",""); //INPAapiCheckJobStatus("OKAY"); //nicht anwendbar, da es mehrere Sets gibt und JOB_STATUS im letzten steht. Daher Fehlerausgabe manuell umsetzen sets=0; INP1apiResultSets(fehlerflag,sets); if ((fehlerflag == FALSE) || (sets <= 1)) { ftextout("Fehler beim Lesen von Job: SVK_LESEN",1,0,0,0); INP1apiErrorCode(errorcode); if (errorcode != 0) { inttostring(errorcode, errorcode_text); INP1apiErrorText(error_text); error_text= "Ediabas-Fehlermeldung Nr.: "+errorcode_text+": "+ error_text; ftextout(error_text ,2,0,0,0); INPAapiResultSets(sets);//um Fehler auszugeben. Bsp.: IFH-0009: NO RESPONSE FROM CONTROLUNIT } else {//Nur möglich, da bei diesem Fehler der letzte Satz=1! INP1apiResultText(fehlerflag,job_status,"JOB_STATUS",sets,""); error_text= "Job-Status-Fehlermeldung: "+job_status; ftextout(error_text,2,0,0,0); INPAapiCheckJobStatus("OKAY");//um Fehler auszugeben. Bsp.: JOB_STATUS= ERROR_ECU_INCORRECT_LEN } ftextout("" ,3,0,0,0); } else { INPAapiResultText(text_var,"PROG_DATUM",sets,""); ftextout("Programm-Datum",0,0,0,0); ftextout(":",0,41,0,0); ftextout(text_var,0,45,0,1); INPAapiResultText(text_var,"PROG_KM",sets,""); if (text_var == "-1") text_var= "- - -"; ftextout("Programm-km",1,0,0,0); ftextout(":",1,41,0,0); ftextout(text_var,1,45,0,1); INPAapiResultText(text_var,"ANZAHL_EINHEITEN",sets,""); INPAapiResultInt(einheiten_anz,"ANZAHL_EINHEITEN",sets); ftextout("Anzahl Prozeßklassen",2,0,0,0); ftextout(":",2,41,0,0); ftextout(text_var,2,45,0,1); ftextout("Prozeßklasse",5,2,0,1); ftextout("SGBM Identifier ",5,43,0,1); ftextout("Version",5,62,0,1); i=1; offset=0; while(i<=einheiten_anz) { inttostring(i,text_var2); INPAapiResultText(text_var,"PROZESSKLASSE_TEXT",i,""); ftextout(text_var2+") "+text_var,6+offset,0,0,0); //SGBM Identifier ftextout(":",6+offset,41,0,0); INPAapiResultText(text_var,"SGBM_IDENTIFIER",i,""); ftextout(text_var,6+offset,45,0,1); //Version INPAapiResultText(text_var,"VERSION",i,""); ftextout(text_var,6+offset,62,0,1); i=i+1;//um nächsten Set zu laden offset=offset+1; } } } } // ************************** // *** Speicherscreen *** // ************************** SCREEN s_speicher() { ftextout("Speicher lesen",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { if (speicher_lesen_lar_flag==TRUE) ftextout("< F1 > LAR lesen" , 4,5,0,1); if (speicher_lesen_flash_flag==TRUE) ftextout("< F2 > FLASH lesen" , 6,5,0,1); if (speicher_lesen_uifm_flag==TRUE) ftextout("< F3 > UIFM lesen" , 8,5,0,1); if (speicher_lesen_romi_flag==TRUE) ftextout("< F4 > ROMI lesen" ,10,5,0,1); if (speicher_lesen_ramis_flag==TRUE) ftextout("< F5 > RAMIS lesen" ,12,5,0,1); if (speicher_lesen_ramil_flag==TRUE) ftextout("< F6 > RAMIL lesen" ,14,5,0,1); if (speicher_lesen_nvram_flag==TRUE) ftextout("< F7 > NVRAM lesen" ,16,5,0,1); if (speicher_lesen_romx_flag==TRUE) ftextout(" + < F4 > ROMX lesen" ,10,45,0,1); if (speicher_lesen_ramxx_flag==TRUE) ftextout(" + < F5 > RAMXX lesen" ,12,45,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Zurück" ,22,5,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } // ************************** // *** Speicherscreen *** // *** Ausgabe *** // ************************** SCREEN s_speicher_ausgabe() { string text_var; string job_state; ftextout(speicher_lesen_text,1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"SPEICHER_LESEN",speicher_lesen_seg_adr_anz,""); INPAapiResultText(job_state,"JOB_STATUS",1,""); LINE("","") { ftextout("Startadresse",1,0,0,0); ftextout(":",1,18,0,1); ftextout(speicher_lesen_adresse,1,20,0,1); ftextout("Anzahl",3,0,0,0); ftextout(":",3,18,0,1); inttostring(speicher_lesen_anzahl,text_var); ftextout(text_var,3,20,0,1); ftextout("Daten",5,0,0,0); ftextout(":",5,18,0,1); if(job_state != "OKAY") ftextout(job_state,5,20,0,1); else { INPAapiResultBinary("DATEN",1); hexdump(speicher_lesen_adresse,speicher_lesen_anzahl,5,20); } } } // ************************** // *** Fehlerscreen *** // ************************** SCREEN s_fehler() { ftextout("Fehlerspeicher",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { if (fs_lesen_flag == TRUE) { ftextout("< F1 > Fehlerspeicher lesen" , 4,5,0,1); ftextout("< F2 > Fehlerspeicher löschen" , 6,5,0,1); ftextout("< F9 > Fehlerspeicher drucken" ,20,5,0,1); if (fs_lesen_save_as_flag == TRUE) ftextout(" + < F9 > Fehlerspeicher speichern" ,20,45,0,1); } if (is_lesen_flag == TRUE) { ftextout("< F3 > Infospeicher lesen" , 8,5,0,1); if (is_loeschen_flag == TRUE) ftextout("< F4 > Infospeicher löschen" ,10,5,0,1); ftextout("< F8 > Infospeicher drucken" ,18,5,0,1); if (is_lesen_save_as_flag == TRUE) ftextout(" + < F8 > Infospeicher speichern" ,18,45,0,1); } if (hs_lesen_flag == TRUE) { ftextout("< F5 > Historienspeicher lesen" ,12,5,0,1); if (hs_loeschen_flag == TRUE) ftextout("< F6 > Historienspeicher löschen" ,14,5,0,1); ftextout("< F7 > Historienspeicher drucken" ,16,5,0,1); if (hs_lesen_save_as_flag == TRUE) ftextout(" + < F7 > Historienspeicher speichern",16,45,0,1); } ftextout("< F10> Zurück" ,22,5,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } // -- EOF -- // end of :#include "BMW_STD.SRC" //Importiere GetTickCount() /* Die Funktion gibt einen systeminternen Zählerwert in Millisekunden zurück. Ist in B2RUNTIM.LIB enthalten, kann aber in INPA nicht direkt aufgerufen werden. Wird daher aus "kernel32" importiert */ import32 "C" lib "kernel32::GetTickCount" gettickcount (returns: long counter); //IMPORT Beispiel //import pascal lib "user.exe::MessageBox" MyMessageBox( in: int handle1,in: string text1, in: string kopf, in: int Art, returns: int ret ); // **************************************************** // *** Initialisierungsfunktion *** // **************************************************** ScriptInit() { settitle(titel+" Version "+version); } // **************************************************** // *** User-Funktionen *** // **************************************************** //******************************************** //** Ausgabe von Texten ***** //******************************************** ergebnisAusgabeTxt(in:string text1, in:string ResultText, in:int Zeile, in:int Spalte, in:int OffsetY1, in:int OffsetX1) { int ergSatz; string s_temp=""; textout(text1,Zeile,Spalte); ergSatz=1; INPAapiResultText(s_temp,ResultText,ergSatz,""); textout(s_temp,Zeile+OffsetY1,Spalte+OffsetX1); } //neu //******************************************* //** Ausgabe Int-Werte ***** //******************************************* ergebnisAusgabeInt(in:string text1, in:string ResultText, in:int Zeile, in:int Spalte, in:int OffsetY1, in:int OffsetX1) { int ergSatz; int i_temp; string s_temp,s; textout(text1,Zeile,Spalte); ergSatz=1; INPAapiResultInt(i_temp,ResultText,ergSatz); inttostring(i_temp,s_temp); textout(s_temp,Zeile+OffsetY1,Spalte+OffsetX1); } //neu //******************************************* //** Ausgabe Analog-Werte ***** //******************************************* ergebnisAusgabeAnalog(in:string text1, in:string ResultText, in:string format, in:int Zeile, in:int Spalte, in:int OffsetY1, in:int OffsetX1) { int ergSatz; real r_temp; string s_temp; textout(text1,Zeile,Spalte); ergSatz=1; INPAapiResultAnalog(r_temp,ResultText,ergSatz); realtostring(r_temp, format, s_temp); textout(s_temp,Zeile+OffsetY1,Spalte+OffsetX1); } // Ausgabe eines Ergebnisses als Digitalwert des 1. Satzes mit Job-Status-Ueberpruefung ergebnisDigitalAusgabe(in: string ergebnis,in: int y,in: int x,in: string trueText,in: string falseText) { bool tmpBool; INPAapiResultDigital(tmpBool,ergebnis,1); digitalout(tmpBool,y,x,trueText,falseText); } //** Neuen Sollwert berechnen für LL-Drehzahl //** Job-Status-Ueberpruefung, Grenzen werden ebenfalls abgefangen llerh(in: int wohin) { int i_help; int temp_ll; string s1; real r_help; real r1; if ((Diag_Index=="18")||(Diag_Index=="33")||(Diag_Index=="49")) { i_help = ll_wert + wohin; if (i_help >= 3000) i_help = 3000; if (i_help <= 650) i_help = 650; inttostring(i_help,s1); INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLABS;0",""); INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLABS;"+s1,""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("START ABGLEICH_VERSTELLEN",s1); stop(); } ll_wert = i_help; } else { i_help = ll_wert + wohin; if (i_help >= 1200) i_help = 1200; if (i_help <= -150) i_help = 150; inttostring(i_help,s1); INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLA;0",""); INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLA;"+s1,""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("START ABGLEICH_VERSTELLEN",s1); stop(); } ll_wert = i_help; } } INPAapiResultLong(out: long returnlong, in: string inparesult,in: int set_val) { real realval; real realval2; long rest_long; long multiplik_long; long longval; // Abholen einer LONG Variablen als REAL und Umwandlung in LONG INPAapiResultAnalog( realval,inparesult,set_val); //realval=987344.0 realval2= realval/65535; //15.0659 (real) realtostring(realval2,"8.0",text_var); //15 (string) stringtoint(text_var,ganz_zahl); //15 (integer) inttolong(ganz_zahl,multiplik_long); //15 (long) Multiplikator longval= 65535*multiplik_long; //983025= 65535*15 (long) longtoreal(longval,realval2); //983025 (real) realval2= realval-realval2; //4319.0= 987344.0-983025.0 realtoint(realval2, ganz_zahl); //4319 (integer) inttolong(ganz_zahl,rest_long); //4319 (long) Rest longval= (65535*multiplik_long)+rest_long; returnlong = longval; } exp(out: real ergebnis, in: real basis, in: int exponent) //allgemeine Exponentialfunktion { int i=1; real produkt; if (exponent == 0) ergebnis = 1; else { produkt = basis; while (i < exponent) { produkt = produkt * basis; i=i+1; } ergebnis = produkt; } } //********************************* //*** Ansteuerung *** //********************************* steller_ansteuer(in : string label,in: int Tastung) //allgemeine Funktion zur Stellgliedansteuerung über STEUERN_SELECTIV Job { string s1,s2,st_sub; real tu,to; int laenge,pos1,pos2; int z1,sp1; if (Tastung == 0xFE) INPAapiJob(sgbd,"STEUERN_WERT_LESEN",label,""); else { if (Tastung == 0xFF) {INPAapiJob(sgbd,"STEUERN_ENDE_SELECTIV",label,"");start();} else { inttostring(Tastung,s1); INPAapiJob(sgbd,"STEUERN_SELECTIV",label+";"+s1,""); start(); } } INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") {messagebox("STEUERN_"+label,s1);stop();} if (Tastung == 0xFE) { s1 = "Status ["+st_dim+"]: "; textout(blank, 23,0); textout(s1, 23,5); if (st_dim=="-") { INPAapiResultDigital(logik_var,"STEUERN_LESEN_WERT",1); digitalout(logik_var, 25, 5, "EIN ", "AUS "); } else if (st_dim=="%") { INPAapiResultAnalog(zahlen_var,"STEUERN_LESEN_WERT",1); analogout(zahlen_var, 25,5, 0.0, 100.0, 0.0, 100.0, "3.2"); } else { INPAapiResultAnalog(zahlen_var,"STEUERN_LESEN_WERT",1); inttoreal(st_aus,tu); inttoreal(st_ein,to); analogout(zahlen_var, 25,5, 0.9*tu, 1.1*to, 0.9*tu, 1.1*to, "3.2"); } strlen(laenge,st_add_label); if (laenge > 0) { pos1=0; pos2=0; z1=13; sp1=3; while(pos2!=-1) { instr(pos2,pos1,st_add_label,";"); if (pos2 != -1) midstr(st_sub,st_add_label,pos1,pos2-pos1); else midstr(st_sub,st_add_label,pos1,laenge-pos1); INPAapiJob( sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;"+st_sub,""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(s1,"STAT_"+st_sub+"_INFO",1,""); INPAapiResultText(s2,"STAT_"+st_sub+"_EINH",1,""); INPAapiResultAnalog(zahlen_var,"STAT_"+st_sub+"_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(s1+": "+text_var+" "+s2,z1,sp1,0,0); z1=z1+1; pos1=pos2+1; } } } if (Tastung == 0xFF) { textout(blank, 23,0); textout("Ansteuerung beendet",23,5); delay(1000); } } zeigebit(in: int pos1,in: long bitfolge,in: int zeile,in: int spalte) //Bitweise Ausgabe der LONG Variablen { long vergleich_var = 1; int i = 0; while(i < pos1) { i = i+1; vergleich_var= vergleich_var * 2; } stelle = bitfolge & vergleich_var; if(stelle == 0) textout("0",zeile,spalte); else textout("1",zeile,spalte); } //************************* //*** Ansteuerung GLF-1 *** //************************* glf1_ansteuer(in : int Tastung) { string s1, s2; int i_temp; if (Tastung == 0) INPAapiJob(sgbd,"STEUERN_GLF","0;2",""); if (Tastung == 1) INPAapiJob(sgbd,"STEUERN_GLF","1;2",""); if (Tastung == 0xFE) INPAapiJob(sgbd,"STATUS_GLF","",""); if (Tastung == 0xFF) INPAapiJob(sgbd,"STEUERN_ENDE_GLF","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STEUERN_GLF",s1); stop(); } if (Tastung == 0xFE) { textout(blank,22,25); textout("Status Luftklappe", 20,25); INPAapiResultText(s1,"STAT_STAT_GLF_TEXT",1,""); text(22,25,s1); } if (Tastung == 0xFF) { textout(blank, 26,0); textout("Ansteuerung Kühlerjalousie oben beendet",26,25); delay(1000); textout(blank, 26,0); } } //************************* //*** Ansteuerung GLF-2 *** //************************* glf2_ansteuer(in : int Tastung) { string s1, s2; int i_temp; if (Tastung == 0) INPAapiJob(sgbd,"STEUERN_GLF2","0",""); if (Tastung == 1) INPAapiJob(sgbd,"STEUERN_GLF2","1",""); if (Tastung == 0xFE) INPAapiJob(sgbd,"STATUS_GLF2","",""); if (Tastung == 0xFF) INPAapiJob(sgbd,"STEUERN_ENDE_GLF2","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STEUERN_GLF2",s1); stop(); } if (Tastung == 0xFE) { textout(blank,22,25); textout("Status Luftklappe", 20,25); INPAapiResultText(s1,"STAT_STAT_GLF2_TEXT",1,""); text(22,25,s1); } if (Tastung == 0xFF) { textout(blank, 26,0); textout("Ansteuerung Kühlerjalousie unten beendet",26,25); delay(1000); textout(blank, 26,0); } } // **************************************************** // *** M e n ü a u f b a u *** // **************************************************** // ************************** // *** Statusmenü *** // ************************** MENU m_status() { INIT { setmenutitle("Status lesen"); } ITEM( 1 ,"Digital 1") { setscreen( s_digital1 ,TRUE); } //ITEM( 2 ,"Digital 2") { 27.7.07 keine Funktion // setscreen( s_digital2 ,TRUE); //} ITEM( 11 ,"AGR") { setscreen( s_digital_agr ,TRUE); } ITEM( 12 ,"Readiness") { setscreen( s_digital_ready ,TRUE); } ITEM( 3 ,"Analog 1") { setscreen( s_analog1 ,TRUE); } ITEM( 13 ,"Analog 2") { setscreen( s_analog2 ,TRUE); } ITEM( 4 ,"Mengenkorr.") { setscreen( s_analog_mk ,TRUE); } ITEM( 14 ,"IGRInfo") { setscreen( s_igrinfo ,TRUE); } ITEM( 5 ,"Drehungleichf.") { setscreen( s_analog3 ,TRUE); } ITEM( 15 ,"SCR") { setscreen( s_status_scr ,TRUE); setmenu(m_status_scr); } ITEM( 6 ,"SOLL/IST") { setscreen( s_soll_ist ,TRUE); } ITEM(16 ,"KAT /CSF") { setscreen( s_katcsf , TRUE); } ITEM( 7 ,"PM - IBS") { setscreen( s_main_pm ,TRUE); setmenu(m_main_pm); } ITEM(17 ,"CBS") { setscreen( s_main_cbs ,TRUE); setmenu(m_main_cbs); } ITEM( 8 ,"DDLI-Block") { setscreen(s_fdyn,TRUE); } ITEM(18 ,"Gesamt") { start(); deselect(); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_main ,TRUE); setmenu( m_main ); } ITEM( 20 ,"Exit") { exit(); } } MENU m_status_scr() { INIT { setmenutitle("Status lesen"); } ITEM( 1 ,"Allgemein") { setscreen( s_status_scr_allg ,TRUE); } ITEM( 2 ,"Abgas") { setscreen( s_status_scr_abgas ,TRUE); } ITEM( 3 ,"Tanksystem") { setscreen( s_status_scr_tank ,TRUE); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_status ,TRUE); setmenu( m_status ); } ITEM( 4, "Speichern") { ende = 0; setscreen(s_savedata, TRUE); setmenu(m_savedata); } ITEM( 20 ,"Exit") { exit(); } } // ************************** // *** Steuernmenü *** // ************************** MENU m_steuern() { INIT { setmenutitle("Steuern"); } ITEM( 1 ,"IMA") { setscreen( s_ima,TRUE); setmenu( m_ima); } ITEM( 2 ,"Steller") { setscreen( s_steller,TRUE); setmenu( m_steller); } ITEM( 3 ,"GLF") { setscreen( s_glf,TRUE); setmenu( m_glf); } ITEM( 5 ,"Systemcheck") { setscreen( s_systemcheck,TRUE); setmenu( m_systemcheck ); } ITEM( 6 ,"EWS") { setscreen( s_ews,TRUE); setmenu(m_ews); } ITEM( 7 ,"SCR") { setscreen( s_steller_scr,TRUE); setmenu( m_steller_scr ); } ITEM( 8 ,"") { setscreen( s_steuern,TRUE); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_main ,TRUE); setmenu( m_main ); } ITEM( 20 ,"Exit") { exit(); } } /* MENU m_scr() { INIT { setmenutitle("SCR"); } ITEM( 1 ,"Status") { setscreen( s_status_scr,TRUE); setmenu( m_status_scr); } ITEM( 2 ,"Steller") { setscreen( s_steller_scr,TRUE); setmenu( m_steller_scr); } ITEM( 5 ,"Systemcheck") { setscreen( s_systemcheck_scr,TRUE); setmenu( m_systemcheck_scr ); } ITEM( 6 ,"") { setscreen( s_scr,TRUE); } ITEM( 8 ,"") { setscreen( s_scr,TRUE); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_steuern ,TRUE); setmenu( m_steuern ); } ITEM( 20 ,"Exit") { exit(); } }*/ MENU m_systemcheck() { INIT { setmenutitle("Systemchecks"); } ITEM( 1 ,"LL-Erh") { setscreen( s_system_llerh,TRUE); setmenu( m_system_llerh); } ITEM( 2 ,"GLF") { setscreen( s_systemtest_glf,TRUE); setmenu( m_systemtest_glf); } ITEM( 3 ,"IGR_AUS") { setscreen( s_systemtest_igr,TRUE); setmenu( m_systemtest_igr); } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen( s_steuern ,TRUE); setmenu( m_steuern ); } ITEM( 20 ,"Exit") { exit(); } } // **************************** // *** IMA Menü *** // **************************** MENU m_ima() { string tmpTxt; INIT { setmenutitle("Injektor Mengenabgleich anpassen"); } //Definition Icon 1 ITEM( 1 ,"IMA alle") { //Öffnen einer Eingabebox inputtext(tmpTxt,"IMA Werte alle Zylinder","Eingabeformat Bsp.: 0A314370;N43143LD;H531AI70;0G31ZY70"); //Ausführen des Jobs INPAapiJob(sgbd,"ABGLEICH_PROGRAMMIEREN_IMA",tmpTxt,""); INPAapiResultText(text_var,"JOB_STATUS",1,""); if( text_var != "OKAY") { messagebox("IMA Abgleich programmieren","Fehler bei der Eingabe"); setscreen(s_ima, TRUE); } else { messagebox("IMA Abgleich programmieren",tmpTxt +" Wert programmiert!"); setscreen(s_ima, TRUE); } delay(1000); setscreen(s_ima,TRUE); setmenu( m_ima); } ITEM( 3 ,"IMA einzeln") { //Öffnen einer Eingabebox inputtext(tmpTxt,"IMA Werte ändern pro Zyl","Eingabeformat Bsp.: ima1;0A314370"); //Ausführen des Jobs INPAapiJob(sgbd,"ABGLEICH_PROGRAMMIEREN_IMA_ZYL",tmpTxt,""); INPAapiResultText(text_var,"JOB_STATUS",1,""); if( text_var != "OKAY") { messagebox("IMA Abgleich programmieren","Fehler bei der Eingabe"); setscreen(s_ima, TRUE); } else { messagebox("IMA Abgleich programmieren",tmpTxt +" Wert programmiert!"); setscreen(s_ima, TRUE); } } ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen(s_main,TRUE); setmenu( m_main ); } ITEM( 20 ,"Exit") { // Programmabbruch exit(); } } // ************************************** // *** Menue fuer IBS Powermanagement *** // ************************************** MENU m_main_pm() { INIT { setmenutitle("Powermanagement"); } ITEM(1,"IDENT") { setscreen(s_ibs_ident,TRUE); } ITEM(2,"PM Feld 1") { setscreen(s_pm_feld1,TRUE); } ITEM(3,"PM Feld 2") { setscreen(s_pm_feld2,TRUE); } ITEM(4,"PM Feld 3") { setscreen(s_pm_feld3,TRUE); } ITEM(5,"B Tausch") { INPAapiJob(sgbd,"STEUERN_BATTERIETAUSCH_REGISTRIEREN","",""); INPAapiResultText(text_var, "JOB_STATUS", 1,""); delay (20); if (text_var == "OKAY") { messagebox("Batterietausch B_fabttreg",text_var); } else { messagebox("Batterietausch B_fabttreg",text_var); stop(); } } ITEM(6,"Reset") { INPAapiJob(sgbd,"STEUERN_PM_HISTOGRAM_RESET","",""); INPAapiResultText(text_var, "JOB_STATUS", 1,""); delay (20); if (text_var == "OKAY") { messagebox("PM_HISTOGRAM_RESET",text_var); } else { messagebox("PM_HISTOGRAM_RESET",text_var); stop(); } } ITEM(7,"Start") { INPAapiJob(sgbd,"START_SYSTEMCHECK_PM_MESSEMODE","",""); INPAapiResultText(text_var, "JOB_STATUS", 1,""); delay (20); if (text_var == "OKAY") { messagebox("Start PM_MESSEMODE",text_var); } else { messagebox("Start PM_MESSEMODE",text_var); stop(); } } ITEM(8,"Stop") { INPAapiJob(sgbd,"STOP_SYSTEMCHECK_PM_MESSEMODE","",""); INPAapiResultText(text_var, "JOB_STATUS", 1,""); delay (20); if (text_var == "OKAY") { messagebox("Stop PM_MESSEMODE",text_var); } else { messagebox("Stop PM_MESSEMODE",text_var); stop(); } } ITEM(10,"Zurück") { blankscreen(); setscreen(s_status,TRUE); setmenu(m_status); } ITEM(11,"IBS Rück") { INPAapiJob(sgbd,"LERNWERTE_RUECKSETZEN","IBSRE",""); INPAapiResultText(text_var, "JOB_STATUS", 1,""); delay (20); if (text_var == "OKAY") { messagebox("IBS Erkennung Rücksetzen",text_var); } else { messagebox("IBS Erkennung Rücksetzen",text_var); stop(); } } ITEM(20 ,"ENDE") {userboxclose(0); viewclose(); exit();} } // ************************************** // *** Menue fuer CBS*** // ************************************** MENU m_main_cbs() { INIT { setmenutitle("Menü"); } ITEM(10,"Zurück") { blankscreen(); setscreen(s_status,TRUE); setmenu(m_status); } ITEM(20 ,"ENDE") {userboxclose(0); viewclose(); exit();} } // ********************************** // *** Steuern Steller Menü *** // ********************************** MENU m_steller() { INIT {setmenutitle("DDE7 Stellgliedansteuerungen");} ITEM(1, "DK") {steller="DRO"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(2, "E-Lüfter") {steller="ELU"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(3, "GLU") {steller="GLU"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(4, "MLA") {steller="MLA"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(5, "DRV") {steller="DRV"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(6, "LDS") {steller="LDS"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(7, "DRA") {steller="DRA"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(8, "MRV") {steller="MRV"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(9, "AGR") {steller="AGR"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(10,"Zurück") {blankscreen(); setscreen(s_steuern,TRUE); setmenu(m_steuern);} ITEM(11,"MIL") {steller="MILA"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(12,"OILA") {steller="OILA"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(13,"NSK") {steller="NSK"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(14,"EBL") {steller="EBX"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(15,"KLI") {steller="KLI"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(16,"KPC") {steller="KPC"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(17,"VFP") {steller="VFP"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(18,"ZLK") {steller="ZLK"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(19,"ZUH") {steller="ZUH"; setscreen(s_steller_set,TRUE); setmenu(m_steller_set);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } MENU m_steller_scr() { INIT {setmenutitle("DDE7 Stellgliedansteuerungen");} ITEM(1, "UA") {steller="UASCR"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(2, "PA") {steller="PASCR"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(3, "PP") {steller="PPSCR"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(4, "DV") {steller="DVSCR"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} //ITEM(5, "HKHR") {steller="HKHR"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(5, "HKDL") {steller="HKDL"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(6, "HKT") {steller="HKT"; setscreen(s_steller_scr_set,TRUE); setmenu(m_steller_scr_set);} ITEM(10,"Zurück") {blankscreen(); setscreen(s_steuern,TRUE); setmenu(m_steuern);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } //************************************** //*** Menü Ansteuerung Steller allg. *** //************************************** MENU m_steller_set() { int eingabe=0; INIT {setmenutitle("Ansteuerung");} ITEM( 1,"EIN") {steller_ansteuer(steller,st_ein);} ITEM( 2,"AUS") {steller_ansteuer(steller,st_aus);} ITEM( 3,"Eingabe") { inputint(eingabe,"Eingabe","Wert: ["+st_dim+"]",st_aus,st_ein); inputstate=99; getinputstate(inputstate); if(inputstate==0) steller_ansteuer(steller,eingabe); } ITEM( 4,"DDE") {steller_ansteuer(steller,0xFF);} ITEM(10,"Zurück") {setscreen(s_steller,TRUE); setmenu(m_steller);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } MENU m_steller_scr_set() { int eingabe=0; INIT {setmenutitle("Ansteuerung");} ITEM( 1,"EIN") {steller_ansteuer(steller,st_ein);} ITEM( 2,"AUS") {steller_ansteuer(steller,st_aus);} ITEM( 3,"Eingabe") { inputint(eingabe,"Eingabe","Wert: ["+st_dim+"]",st_aus,st_ein); inputstate=99; getinputstate(inputstate); if(inputstate==0) steller_ansteuer(steller,eingabe); } ITEM( 4,"DDE") {steller_ansteuer(steller,0xFF);} ITEM(10,"Zurück") {setscreen(s_steller_scr,TRUE); setmenu(m_steller_scr);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } // ********************************* // *** Menü für LL-Erhöhung *** // ********************************* MENU m_system_llerh() { int ll_help; INIT { setmenutitle("EOL - LeerLauf"); taste = 0; } ITEM(1,"+10") { llerh(10); setscreen(s_system_llerh,TRUE); taste = 1; } ITEM(2,"-10") { llerh(-10); setscreen(s_system_llerh,TRUE); taste = 1; } ITEM(3,"+100") { llerh(100); setscreen(s_system_llerh,TRUE); taste = 1; } ITEM(4,"-100") { llerh(-100); setscreen(s_system_llerh,TRUE); taste = 1; } ITEM(6,"Ausw") { inputstate = 2; while (inputstate != 0) { ll_help = ll_wert; if ((Diag_Index=="18")||(Diag_Index=="33")||(Diag_Index=="49")) { inputint(ll_help,"Vorgabe LL-Sollwert", "Absolutdrehzahl in den Grenzen von 650 < N < 3000",650,3000); getinputstate(inputstate); } else { inputint(ll_help,"Vorgabe LL-Sollwert", "Drehzahloffset in den Grenzen von -150 < N < 1200",-150,1199); getinputstate(inputstate); } } if (inputstate == 0) { ll_help = ll_help - ll_wert; llerh(ll_help); blankscreen(); setscreen(s_system_llerh,TRUE); taste = 1; } } ITEM(9,"STOP") { setscreen(s_system_llerh_stop,TRUE); } ITEM(10,"Zurück") {blankscreen(); setscreen(s_systemcheck,TRUE); setmenu(m_systemcheck);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } // ******************************* // *** Menü Systemdiagnose GLF *** // ******************************* MENU m_systemtest_glf() { string s1; INIT { setmenutitle("Systemdiagnose GLF"); } ITEM(1,"START") { userboxclose(0); viewclose(); INPAapiJob(sgbd,"START_SYSTEMCHECK_GLF","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 == "OKAY") { setscreen(s_systemtest_glf,TRUE); } else { messagebox("START_SYSTEMCHECK_GLF",s1); stop(); } } ITEM(2,"STOP") { INPAapiJob(sgbd,"STOP_SYSTEMCHECK_GLF","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 == "OKAY") { setscreen(s_systemtest_glf,TRUE); } else { messagebox("STOP_SYSTEMCHECK_GLF",s1); stop(); } } ITEM(10,"Zurück") { userboxclose(0); viewclose(); blankscreen(); setscreen(s_systemcheck,TRUE); setmenu(m_systemcheck); } ITEM(20,"ENDE") { userboxclose(0); viewclose(); exit();} } // **************************** // *** Menü Systemcheck IGR *** // **************************** MENU m_systemtest_igr() { string s1; INIT { setmenutitle("Systemcheck IGR"); } ITEM(1,"START") { userboxclose(0); viewclose(); INPAapiJob(sgbd,"START_SYSTEMCHECK_IGR_AUS","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 == "OKAY") { setscreen(s_systemtest_igr,TRUE); } else { messagebox("START_SYSTEMCHECK_IGR_AUS",s1); stop(); } } ITEM(2,"STOP") { INPAapiJob(sgbd,"STOP_SYSTEMCHECK_IGR_AUS","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 == "OKAY") { setscreen(s_systemtest_igr,TRUE); } else { messagebox("STOP_SYSTEMCHECK_IGR",s1); stop(); } } ITEM(10,"Zurück") { userboxclose(0); viewclose(); blankscreen(); setscreen(s_systemcheck,TRUE); setmenu(m_systemcheck); } ITEM(20,"ENDE") { userboxclose(0); viewclose(); exit();} } // **************************** // *** EWS 4-Menü *** // **************************** MENU m_ews() { string eingabe; INIT { setmenutitle("EWS4"); } ITEM(1,"Status") { setscreen(s_ews_status,TRUE); } ITEM(2,"StatusSK") { setscreen(s_ews_status_sk,TRUE); } /*ITEM(3,"Data") { input_state=99; inputtext(eingabe,"EWS4 Data","Eingabe: MODE;DATEN"); getinputstate(input_state); if (input_state==0) { INPAapiJob(sgbd,"STEUERN_EWS4_SK",eingabe,""); INPAapiCheckJobStatus("OKAY"); } }*/ ITEM( 9 ,"Druck") { printscreen(); } ITEM( 10 ,"Zurück") { setscreen(s_steuern,TRUE); setmenu( m_steuern ); } ITEM( 20 ,"Exit") { // Programmabbruch exit(); } } //**************************** //*** Menü Ansteuerung GLF *** //**************************** MENU m_glf() { INIT {setmenutitle("Ansteuerung gesteuerte Luftführung GLF"); ftextout("Setzen der Ansteuerung über I/O Status",3,3,0,3);} ITEM( 1,"Oben ZU") {glf1_ansteuer(0);} ITEM( 2,"Oben AUF") {glf1_ansteuer(1);} /* ITEM( 3,"Unten ZU") {glf2_ansteuer(0);} ITEM( 4,"Unten AUF"){glf2_ansteuer(1);} */ ITEM( 5,"DME") {glf1_ansteuer(0xFF);glf2_ansteuer(0xFF);} ITEM(10,"Zurück") {setscreen(s_steuern,TRUE); setmenu(m_steuern);} ITEM(20,"ENDE") {userboxclose(0); viewclose(); exit();} } //********************************* //*** Menü Messdatenspeicherung *** //********************************* MENU m_savedata() { INIT{setmenutitle("Messdatenspeicherung"); } ITEM( 10 ,"Zurück") { setscreen(s_status_scr,TRUE); setmenu( m_status_scr ); } } // **************************************************** // *** S c r e e n a u f b a u *** // **************************************************** // ************************** // *** Statusscreen *** // ************************** SCREEN s_status() { ftextout("Status lesen",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { ftextout("< F1 > Digitalwerte 1 ", 4,5,0,1); //ftextout("< F2 > Digitalwerte 2", 6,5,0,1); ftextout("< F3 > Analogwerte 1", 8,5,0,1); ftextout("< F4 > Selektive Mengenkorrektur-Motor erst starten!" ,10,5,0,1); ftextout("< F5 > Selektive Drehungleichförmigkeit-Motor erst starten!", 12,5,0,1); ftextout("< F6 > SOLL/IST", 14,5,0,1); ftextout("< F7 > Powermanagement IBS" ,16,5,0,1); ftextout("< F8 > DDLI Block lesen" ,18,5,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Ende" ,22,5,0,1); ftextout(" + < F1 > Digitalwerte AGR ", 4,45,0,1); ftextout(" + < F2 > Digitalwerte Readiness", 6,45,0,1); ftextout(" + < F3 > Analogwerte 2" ,8,45,0,1); ftextout(" + < F4 > IGR Info" ,10,45,0,1); ftextout(" + < F5 > SCR" ,12,45,0,1); ftextout(" + < F6 > Werte KAT / CSF" ,14,45,0,1); ftextout(" + < F7 > CBS-Daten" ,16,45,0,1); ftextout(" + < F8 > Gesamt" ,18,45,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } // ************************** // *** Steuernscreen *** // ************************** SCREEN s_steuern() { ftextout("Ansteuern",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { ftextout("< F1 > IMA Abgleich" ,4,5,0,1); ftextout("< F2 > Steuern 1" ,6,5,0,1); ftextout("< F3 > gesteuerte Luftführung" ,8,5,0,1); ftextout("< F5 > Systemchecks" ,12,5,0,1); ftextout("< F6 > EWS" ,14,5,0,1); ftextout("< F7 > SCR" ,16,5,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Zurück" ,22,5,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } /* SCREEN s_scr() { ftextout("SCR Umfänge",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { ftextout("< F1 > Status lesen" ,4,5,0,1); ftextout("< F2 > Steuern" ,6,5,0,1); //ftextout("< F5 > Systemchecks" ,12,5,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Zurück" ,22,5,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } */ SCREEN s_systemcheck() { ftextout("Systemchecks",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { ftextout("< F1 > Leerlauferhöhung" ,4,5,0,1); ftextout("< F2 > GLF" ,6,5,0,1); ftextout("< F3 > IGR" ,8,5,0,1); ftextout("< F9 > Bildschirmdruck" ,20,5,0,1); ftextout("< F10> Zurück" ,22,5,0,1); ftextout(" + < F10> Exit" ,22,45,0,1); } } // *************************** // *** Digital1-Screen *** // *************************** SCREEN s_digital1() { ftextout("Digitalwerte 1",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_DIGITAL","",""); INPAapiCheckJobStatus("OKAY"); LINE("Bremslichtschalter Bremslichttestschalter","") { // Bremslichtschalter text(1,1,"Status Bremslichtschalter"); INPAapiResultDigital(logik_var,"STAT_BLS_EIN",1); digitalout(logik_var, 3,1,"ein ","aus "); // Bremslichttestschalter text(1,35,"Status Bremslichttestschalter"); INPAapiResultDigital(logik_var,"STAT_BLTS_EIN",1); digitalout(logik_var, 3,35,"ein ","aus "); } LINE("Klimaschalter Klimakompressor","") { // Klimaschalter text(1,1,"Status Klimaschalter"); INPAapiResultDigital(logik_var,"STAT_AC_EIN",1); digitalout(logik_var, 3,1,"ein ","aus "); /* nur AC Signal bei der DDE6! // Klimakompressor text(1,35,"Status Klimakompressor"); INPAapiResultDigital(logik_var,"STAT_KO_EIN",1); digitalout(logik_var, 3,35,"ein ","aus "); */ } LINE("Kupplungsschalter Oeldruckschalter","") { // Kupplungsschalter text(1,1,"Status Kupplungsschalter"); INPAapiResultDigital(logik_var,"STAT_KUP_EIN",1); digitalout(logik_var, 3,1,"ein ","aus "); // Oeldruckschalter text(1,35,"Status Oeldruckschalter"); INPAapiResultDigital(logik_var,"STAT_ODS_EIN",1); digitalout(logik_var, 3,35,"ein ","aus "); } LINE("Getriebeart","") { // Getriebeart text(1,1,"Status Getriebeart"); INPAapiResultDigital(logik_var,"STAT_GETRIEBEART_HAND_EIN",1); digitalout(logik_var, 3,1,"AUTO. ","HAND "); /* // EWS-Abgleich text(1,35,"Status EWS-Abgleich"); INPAapiJob(sgbd,"EWS_EMPFANG","0",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultDigital(logik_var,"EWS_STATUS_VALUE",0); digitalout(logik_var, 3,35,"OK ","NICHT-OK "); */ } /*Kühlwasserheizung über Motorsteuergerät nicht ein-, auschalt- und abfragbar über DDE! (PTC ist nicht vorhanden) LINE("Kuehlwasserheizung","") { // Kuehlwasserheizung text(1,1,"Status Kuehlwasserheizung"); INPAapiJob(sgbd,"STATUS_DIGITAL","dig_kwh_aus",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultDigital(logik_var,"?",1); digitalout(logik_var, 3,1,"ein ","aus "); } */ } // *************************** // *** Digital2-Screen *** // *************************** SCREEN s_digital2() { ftextout("Digitalwerte 2",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_DIGITAL","dig_mfl",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { // FGR Bedienteil Taste + text(1,1,"Status FGR Bedienteil Taste + "); INPAapiResultDigital(logik_var,"STAT_MFLEINP_WERT",1); digitalout(logik_var, 3,1,"ein ","aus "); // FGR Bedienteil Taste - text(1,40,"Status FGR Bedienteil Taste - "); INPAapiResultDigital(logik_var,"STAT_MFLEINM_WERT",1); digitalout(logik_var, 3,41,"ein ","aus "); } LINE("","") { // FGR Bedienteil Taste Wiederaufnahme text(1,1,"Status FGR Bedienteil Taste Wiederaufnahme "); INPAapiResultDigital(logik_var,"STAT_MFLWA_WERT",1); digitalout(logik_var, 3,1,"ein ","aus "); // FGR Bedienteil Taste AUS text(1,40,"Status FGR Bedienteil Taste AUS "); INPAapiResultDigital(logik_var,"STAT_MFLAUS_WERT",1); digitalout(logik_var, 3,41,"ein ","aus "); } LINE("","") { // FGR Bedienteil Taste +überdrücken text(1,1,"Status FGR Bedienteil Beschleunigung "); INPAapiResultDigital(logik_var,"STAT_MFLACCL_WERT",1); digitalout(logik_var, 3,1,"ein ","aus "); // FGR Bedienteil Taste AUS text(1,40,"Status FGR Bedienteil Verzögerung "); INPAapiResultDigital(logik_var,"STAT_MFLDECL_WERT",1); digitalout(logik_var, 3,41,"ein ","aus "); } } // *************************** // *** DigitalAGR-Screen *** // *************************** SCREEN s_digital_agr() { ftextout("AGR Abschaltung",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_DIGITAL","dig_agr_aus",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { text(1,1,"keine Abschaltung"); INPAapiResultDigital(logik_var,"STAT_AGR_UKN_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"Schubbetrieb"); INPAapiResultDigital(logik_var,"STAT_AGR_SUB_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"Schaltvorgang"); INPAapiResultDigital(logik_var,"STAT_AGR_SAL_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"langer Leerlauf"); INPAapiResultDigital(logik_var,"STAT_AGR_LL_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"bleibende Regelabweichung"); INPAapiResultDigital(logik_var,"STAT_AGR_RA_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"Systemfehler"); INPAapiResultDigital(logik_var,"STAT_AGR_SYS_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"zu niedriger Atmosphärendruck"); INPAapiResultDigital(logik_var,"STAT_AGR_PUMGMIN_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"zu niedrige Batteriespannung"); INPAapiResultDigital(logik_var,"STAT_AGR_UBATTMIN_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"bleibende Regelabweichung"); INPAapiResultDigital(logik_var,"STAT_AGR_RA_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"große Einspritzmenge"); INPAapiResultDigital(logik_var,"STAT_AGR_QINJMAX_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"zu hohe Lufttemperatur"); INPAapiResultDigital(logik_var,"STAT_AGR_TUMGMAX_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"zu niedrige Lufttemperatur"); INPAapiResultDigital(logik_var,"STAT_AGR_TUMGMIN_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"Kaltstart"); INPAapiResultDigital(logik_var,"STAT_AGR_KALT_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"Abschaltkoordinationsanforderung"); INPAapiResultDigital(logik_var,"STAT_AGR_ABSCHKOORD_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"zu hohe Kühlwassertemperatur"); INPAapiResultDigital(logik_var,"STAT_AGR_TMOTMAX_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"zu niedrige KühlWassertemperatur"); INPAapiResultDigital(logik_var,"STAT_AGR_TMOTMIN_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } LINE("","") { text(1,1,"HFM Drift Kompensation"); INPAapiResultDigital(logik_var,"STAT_AGR_DRFTKOMP_WERT",1); digitalout(logik_var, 3,1,"aktiv ","nicht aktiv "); text(1,40,"Antisurge"); INPAapiResultDigital(logik_var,"STAT_AGR_ASRG_WERT",1); digitalout(logik_var, 3,41,"aktiv ","nicht aktiv "); } } // **************************** // *** Readiness-Screen *** // **************************** SCREEN s_digital_ready() { ftextout("Readiness",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_DIGITAL","dig_readiness",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { text(1,1,"Überwachung Zündaussetzer"); INPAapiResultDigital(logik_var,"STAT_SUPMISFIRE_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung Zündaussetzer"); INPAapiResultDigital(logik_var,"STAT_STATMISFIRE_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Überwachung Kraftstoffsystem"); INPAapiResultDigital(logik_var,"STAT_SUPFUELSYS_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung Kraftstoffsystem"); INPAapiResultDigital(logik_var,"STAT_STATFUELSYS_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Übergreifende Komponentenüberwachung"); INPAapiResultDigital(logik_var,"STAT_SUPCOMPRCOMP_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Übergreifende Komponentenüberwachung"); INPAapiResultDigital(logik_var,"STAT_STATCOMPRCOMP_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Überwachung Katalysator"); INPAapiResultDigital(logik_var,"STAT_SUPCATALYST_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung Katalysator"); INPAapiResultDigital(logik_var,"STAT_STATCATALYST_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Überwachung Lambdasonde"); INPAapiResultDigital(logik_var,"STAT_SUPOXYSENS_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung Lambdasonde"); INPAapiResultDigital(logik_var,"STAT_STATOXYSENS_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Überwachung Lambdasondenheizung"); INPAapiResultDigital(logik_var,"STAT_SUPOXYHEAT_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung Lambdasondenheizung"); INPAapiResultDigital(logik_var,"STAT_STATOXYHEAT_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } LINE("","") { text(1,1,"Überwachung EGR-System"); INPAapiResultDigital(logik_var,"STAT_SUPEGRSYS_WERT",1); digitalout(logik_var, 3,1,"unterstützt ","nicht unterstützt "); if(logik_var) { text(1,40,"Status Überwachung EGR-System"); INPAapiResultDigital(logik_var,"STAT_STATEGRSYS_WERT",1); digitalout(logik_var, 3,41,"bereit ","nicht bereit "); } } } // ************************* // *** Analog1-Screen *** // ************************* SCREEN s_analog1() { ftextout("Analogwerte 1",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { text(1,0,"Batteriespannung"); text(2,0,"[Volt]"); INPAapiJob(sgbd,"STATUS_UBATT","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UBATT_WERT",1); analogout(zahlen_var/1000, 3,0, 0.0, 18.0, 0.0, 18.0, "4.2"); text(1,43,"Luftmasse"); text(2,43,"[kg/h]"); INPAapiJob(sgbd,"STATUS_LMM_MASSE","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LMM_MASSE_WERT",1); analogout(zahlen_var, 3,43, 0.0, 400.0, 0.0, 400.0, "4.2"); } LINE("","") { text(1,0,"Motordrehzahl"); text(2,0,"[1/min]"); INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_MOTORDREHZAHL_WERT",1); analogout(zahlen_var, 3,0, 0.0, 6000.0, 0.0, 6000.0, "4.2"); text(1,43,"Motortemperatur"); text(2,43,"[Grad C]"); INPAapiJob(sgbd,"STATUS_MOTORTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_MOTORTEMPERATUR_WERT",1); analogout(zahlen_var, 3,43, 0.0, 120.0, 0.0, 120.0, "4.2"); } LINE("","") { text(1,0,"Ansauglufttemperatur"); text(2,0,"[Grad C]"); INPAapiJob(sgbd,"STATUS_AN_LUFTTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_AN_LUFTTEMPERATUR_WERT",1); analogout(zahlen_var, 3,0, -40.0, 120.0, -40.0, 120.0, "4.2"); text(1,43,"Kuehlmitteltemperatur"); text(2,43,"[Grad C]"); INPAapiJob(sgbd,"STATUS_KUEHLMITTELTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_KUEHLMITTELTEMPERATUR_WERT",1); analogout(zahlen_var, 3,43, 0.0, 120.0, 0.0, 120.0, "4.2"); } LINE("","") { text(1,0,"PWG Poti 1"); INPAapiJob(sgbd,"STATUS_PWG_POTI_SPANNUNG","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(text_var,"STAT_PWG_POTI_SPANNUNG_EINH",1,""); text(2,0,"["+text_var+"]"); INPAapiResultAnalog(zahlen_var,"STAT_PWG_POTI_SPANNUNG_WERT",1); analogout(zahlen_var, 3,0, 0.0, 5000.0, 675, 4000, "4.0"); text(1,43,"PWG Poti 2"); INPAapiJob(sgbd,"STATUS_PEDALWERTGEBER_POTI_2","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(text_var,"STAT_PEDALWERTGEBER_POTI_2_EINH",1,""); text(2,43,"["+text_var+"]"); INPAapiResultAnalog(zahlen_var,"STAT_PEDALWERTGEBER_POTI_2_WERT",1); analogout(zahlen_var, 3,43, 0.0, 5000.0, 295, 2000, "4.0"); } } // ************************* // *** Analog2-Screen *** // ************************* SCREEN s_analog2() { ftextout("Analogwerte 2",1,0,1,0); ftextout("",3,0,0,0); LINE("@","") { INPAapiJob(sgbd,"STATUS_KILOMETERSTAND","",""); INPAapiCheckJobStatus("OKAY"); text(1,0,"Kilometerstand"); INPAapiResultAnalog(zahlen_var,"STAT_KILOMETERSTAND_WERT",1); realtostring(zahlen_var,"6.2",text_var); text(3,0,text_var); INPAapiJob(sgbd,"STATUS_BETRIEBSSTUNDENZAEHLER","",""); INPAapiCheckJobStatus("OKAY"); text(1,43,"Betriebsstundenzähler"); INPAapiResultAnalog(zahlen_var,"STAT_BETRIEBSSTUNDENZAEHLER_WERT",1); realtostring(zahlen_var,"6.2",text_var); text(3,43,text_var); } LINE("@","") { INPAapiJob(sgbd,"STATUS_ABGASTEMPERATUR_KAT","",""); INPAapiCheckJobStatus("OKAY"); text(5,0,"KAT-ABGASTEMPERATUR"); text(6,0,"[°C]"); INPAapiResultAnalog(zahlen_var,"STAT_ABGASTEMPERATUR_KAT_WERT",1); analogout(zahlen_var, 7,0, 0.0, 400.0, 0.0, 400.0, "4.2"); INPAapiJob(sgbd,"STATUS_KRAFTSTOFFTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); text(5,43,"Kraftstofftemperatur"); text(6,43,"[°C]"); INPAapiResultAnalog(zahlen_var,"STAT_KRAFTSTOFFTEMPERATUR_WERT",1); analogout(zahlen_var, 7,43, 0.0, 100.0, 0.0, 100.0, "4.2"); } LINE("@","") { INPAapiJob(sgbd,"STATUS_LUFTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); text(1,0,"Lufttemperatur"); text(2,0,"[°C]"); INPAapiResultAnalog(zahlen_var,"STAT_LUFTEMPERATUR_WERT",1); analogout(zahlen_var, 3,0, 0.0, 50.0, 0.0, 50.0, "4.2"); INPAapiJob(sgbd,"STATUS_ATMOSPHAERENDRUCK","",""); INPAapiCheckJobStatus("OKAY"); text(1,43,"Atmosphärendruck"); INPAapiResultText(text_var,"STAT_ATMOSPHAERENDRUCK_EINH",1,""); text(2,43,"["+text_var+"]"); INPAapiResultAnalog(zahlen_var,"STAT_ATMOSPHAERENDRUCK_WERT",1); analogout(zahlen_var, 3,43, 0.0, 1100.0, 0.0, 1100.0, "4.2"); } LINE("@","") { INPAapiJob(sgbd,"STATUS_UMGEBUNGSTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); text(1,0,"Umgebungstemperatur"); text(2,0,"[°C]"); INPAapiResultAnalog(zahlen_var,"STAT_UMGEBUNGSTEMPERATUR_WERT",1); analogout(zahlen_var, 3,0, 0.0, 100.0, 0.0, 100.0, "4.2"); INPAapiJob(sgbd,"STATUS_LADELUFTTEMPERATUR","",""); INPAapiCheckJobStatus("OKAY"); text(1,43,"Ladelufttemperatur"); text(2,43,"[°C]"); INPAapiResultAnalog(zahlen_var,"STAT_LADELUFTTEMPERATUR_WERT",1); analogout(zahlen_var, 3,43, 0.0, 100.0, 0.0, 100.0, "4.2"); } } // ************************* // *** Mengenk-Screen *** // ************************* SCREEN s_analog_mk() { ftextout("Selektive Mengenkorrektur",1,0,1,0); ftextout("Laufunruhemessung (LL-Regler ist ein)",3,0,0,0); LINE("Selektive Mengenkorrektur","") { INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_MOTORDREHZAHL_WERT",1); if(zahlen_var == 0) { textout("Bitte zuerst Motor starten!",5,10); } else { //ftextout("Selektive Mengenkorrektur",0,0,1,1); INPAapiJob(sgbd,"START_SYSTEMCHECK_ZYL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiJob(sgbd,"STATUS_LAUFUNRUHE_LLR_MENGE","",""); INPAapiCheckJobStatus("OKAY"); text(3,0,"Zylinder 1"); text(4,0,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL1_WERT",1); analogout(zahlen_var, 5,0, -5.0, 5.0, -3.0, 3.0, "4.2"); text(3,43,"Zylinder 2"); text(4,43,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL2_WERT",1); analogout(zahlen_var, 5,43, -5.0, 5.0, -3.0, 3.0, "4.2"); text(9,0,"Zylinder 3"); text(10,0,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL3_WERT",1); analogout(zahlen_var, 11,0, -5.0, 5.0, -3.0, 3.0, "4.2"); text(9,43,"Zylinder 4"); text(10,43,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL4_WERT",1); analogout(zahlen_var, 11,43, -5.0, 5.0, -3.0, 3.0, "4.2"); text(15,0,"Zylinder 5"); text(16,0,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL5_WERT",1); analogout(zahlen_var, 17,0, -5.0, 5.0, -3.0, 3.0, "4.2"); text(15,43,"Zylinder 6"); text(16,43,"[mg/Hub]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_LLR_MENGE_ZYL6_WERT",1); analogout(zahlen_var, 17,43, -5.0, 5.0, -3.0, 3.0, "4.2"); } } } SCREEN s_status_scr() { int z1; ftextout("Status SCR",1,0,1,0); ftextout("",3,0,0,0); z1=5; textout(" < F1 > Allgemein",z1,5); z1=z1+2; textout(" < F2 > Abgasanlage",z1,5); z1=z1+2; textout(" < F3 > Tanksystem",z1,5); z1=z1+2; textout(" < F4 > Messdaten speichern",z1,5); z1=z1+3; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,5); } SCREEN s_status_scr_allg() { int z1; ftextout("Status SCR - allgemein",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { text(1,0,"Zustand des hydr. SCR Systems"); text(2,0,"[]"); text(3,0,"(CoSCR_st)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;CoSCR_st",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_CoSCR_st_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"SubZustand des hydr. SCR Systems"); text(2,43,"[]"); text(3,43,"(CoSCR_stSub)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;CoSCR_stSub",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_CoSCR_stSub_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Anzahl der erfolgten Adaptionen"); text(2,0,"[]"); text(3,0,"(SCRAd_ctSlip)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;SCRAd_ctSlip",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_SCRAd_ctSlip_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Plausibilitäten"); text(2,43,"[]"); text(3,43,"(SCRAd_facPlaus_Fld_0)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;SCRAd_facPlaus_Fld_0",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_SCRAd_facPlaus_Fld0_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Langzeitadaptionfaktor"); text(2,0,"[]"); text(2,0,"(SCRAd_facQtyAdap)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRAd_facQtyAdap",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_SCRAd_facQtyAdap_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Langzeitadaptionfaktor (roh)"); text(2,43,"[]"); text(3,43,"(SCRAd_facQtyAdapRaw_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRAd_facQtyAdapRaw_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_SCRAd_facQtyAdapRaw_mp_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"aktueller NH3-Speicherfüllstand"); text(2,0,"[g]"); text(3,0,"(SCRMod_mEstNH3Ld)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRMod_mEstNH3Ld",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRMod_mEstNH3Ld_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"NOx Rohemissionen"); text(2,43,"[ppm]"); text(3,43,"(SCRFFC_rPPMNOxUs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRFFC_rPPMNOxUs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRFFC_rPPMNOxUs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"ermittelte NOx - Konzentration 1"); text(2,0,"[ppm]"); text(3,0,"(Com_rNOxCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Com_rNOxCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Com_rNOxCat2Ds_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"ermittelte NOx - Konzentration 2"); text(2,43,"[ppm]"); text(3,43,"(Com_rNOxDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Com_rNOxDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Com_rNOxDs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Freigabestatus Dosierstrategie (bitweise)"); text(2,0,"[]"); text(3,0,"(DStgy_stCondDos)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;DStgy_stCondDos",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(text_var,"STAT_DStgy_stCondDos_WERT",1,""); ftextout(text_var, 4,0, 0, 2); text(1,43,"Sensoroffset durch Schubkalibrierung (Downstream)"); text(2,43,"[ppm]"); text(3,43,"(Exh_rNOxOfsNoCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_rNOxOfsNoCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Exh_rNOxOfsNoCat2Ds_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Sensoroffset durch Schubkalibrierung (Upstream)"); text(2,0,"[ppm]"); text(3,0,"(Exh_rNOxOfsNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_rNOxOfsNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Exh_rNOxOfsNSCDs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"durchschnittlicher tatsächlicher Wirkungsgrad im Temperaturbereich 1"); text(2,43,"[]"); text(3,43,"(SCRChk_etaActAvrg1_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRChk_etaActAvrg1_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRChk_etaActAvrg1_mp_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"durchschnittlicher tatsächlicher Wirkungsgrad im Temperaturbereich 2"); text(2,0,"[]"); text(3,0,"(SCRChk_etaActAvrg2_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRChk_etaActAvrg2_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRChk_etaActAvrg2_mp_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"gemittelte normierte Nox-Abweichung zwischen Modellwert und Nox-Sensor vor SCR"); text(2,43,"[]"); text(3,43,"(SCRChk_rNOxDiffAvrgUs_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRChk_rNOxDiffAvrgUs_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRChk_rNOxDiffAvrgUs_mp_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"normierte Nox-Abweichung zwischen Modellwert und Nox-Sensor vor SCR"); text(2,0,"[]"); text(3,0,"(SCRChk_rNOxDiffUs_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRChk_rNOxDiffUs_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRChk_rNOxDiffUs_mp_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Harnstoffverbrauch seit letztem Motorstart"); text(2,43,"[g]"); text(3,43,"(UDC_mRdcAgAct)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_mRdcAgAct",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDC_mRdcAgAct_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Harnstoffverbrauch seit letztem Umpumpvorgang"); text(2,0,"[g]"); text(3,0,"(UDC_mRdcAgDosQnt)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_mRdcAgDosQnt",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDC_mRdcAgDosQnt_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); } } SCREEN s_status_scr_abgas() { int z1; ftextout("Status SCR - Abgasanlage",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { text(1,0,"Freigabe der Dosierung durch die Dosierstrategie"); text(2,0,"[]"); text(3,0,"(DStgy_stMetStgy)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;DStgy_stMetStgy",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_DStgy_stMetStgy_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Downstream - Signal von NOx-Sensor 2 (Offset-korrigiert)"); text(2,43,"[ppm]"); text(3,43,"(Exh_rNOxNoCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;Exh_rNOxNoCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Exh_rNOxNoCat2Ds_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Upstream - Signal von NOx-Sensor 1 (Offset-korrigiert)"); text(2,0,"[]"); text(3,0,"(Exh_rNOxNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;Exh_rNOxNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_Exh_rNOxNSCDs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"O2-Konzentration im Abgas nach Sekundärkatalysator"); text(2,43,"[]"); text(3,43,"(Exh_rO2LinNoCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;Exh_rO2LinNoCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_rO2LinNoCat2Ds_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"O2-Konzentration im Abgas nach Hauptkatalysator"); text(2,0,"[]"); text(3,0,"(Exh_rO2LinNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_rO2LinNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_rO2LinNSCDs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Lambdasignal aus NOx-Sensor nach dem NOx-Speicherkatalysator 2"); text(2,43,"[]"); text(3,43,"(Exh_stLamLeanNoCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_stLamLeanNoCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_stLamLeanNoCat2Ds_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Lambdasignal aus NOx-Sensor nach dem NOx-Speicherkatalysator 1"); text(2,0,"[]"); text(3,0,"(Exh_stLamLeanNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_stLamLeanNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_stLamLeanNSCDs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"NOx-Statussignal nach NOx-Speicherkatalysator"); text(2,43,"[]"); text(3,43,"(Exh_stNOxNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_stNOxNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_stNOxNSCDs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Taupunktende Nox-Sensor nach SCR-KAT"); text(2,0,"(1 = erkannt, 0 nicht erkannt)"); text(3,0,"(Exh_stNOxSensDiaEnaNoCat2Ds)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_stNOxSensDiaEnaNoCat2Ds",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_stNOxSensDiaEnaNoCat2Ds_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Taupunktende Nox-Sensor vor SCR-KAT"); text(2,43,"(1 = erkannt, 0 nicht erkannt)"); text(3,43,"(Exh_stNOxSensDiaEnaNSCDs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;Exh_stNOxSensDiaEnaNSCDs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_Exh_stNOxSensDiaEnaNSCDs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Gewichtete mittlere Temperatur des SCR Katalysators"); text(2,0,"[°C]"); text(3,0,"(SCRT_tAvrg)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCRT_tAvrg",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCRT_tAvrg_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Rückmeldung der eindosierten Menge"); text(2,43,"[mg/s]"); text(3,43,"(UDC_dmRdcAgDos)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_dmRdcAgDos",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDC_dmRdcAgDos_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Tastverhältnis des Ausgangssignals der Dosierventilendstufe"); text(2,0,"[%]"); text(3,0,"(UDosVlv_rPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDosVlv_rPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDosVlv_rPs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Sollwert für das Tastverhältnis der Dosierventilendstufe"); text(2,43,"[%]"); text(3,43,"(UDosVlv_rDyc)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDosVlv_rDyc",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDosVlv_rDyc_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } } SCREEN s_status_scr_tank() { int z1; ftextout("Status SCR - Tanksystem",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { text(1,0,"Freigabestatus Passivtank"); text(2,0,"[]"); text(3,0,"RFC_stRls_mp"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;RFC_stRls_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_RFC_stRls_mp_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Pumpendruck des SCR-Systems"); text(2,43,"[hPa]"); text(3,43,"(SCR_pUPmpP)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;SCR_pUPmpP",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_pUPmpP_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Rohwert Füllstand Passivtank"); text(2,0,"[%]"); text(3,0,"(SCR_rRawUPasTnkLvl)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;SCR_rRawUPasTnkLvl",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_rRawUPasTnkLvl_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Füllstand - Passivtank"); text(2,43,"[%]"); text(3,43,"(SCR_rUPasTnkLvl)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;SCR_rUPasTnkLvl",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_rUPasTnkLvl_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Rohwert Füllstand Aktivtank"); text(2,0,"[%]"); text(3,0,"SCR_rRawUTnkLvl"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_rRawUTnkLvl",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_rRawUTnkLvl_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Füllstand Aktivtank"); text(2,43,"[%]"); text(3,43,"(SCR_rUTnkLvl)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_rUTnkLvl",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_rUTnkLvl_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Temperatur der Harnstoff-Wasser-Lösung"); text(2,0,"[°C]"); text(3,0,"(SCR_tUTnkT)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_tUTnkT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_tUTnkT_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Sensorrohspannung des Temperatursensors vor Harnstoffkatalysator"); text(2,43,"[mV]"); text(3,43,"(SCR_uRawUCatUsT)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_uRawUCatUsT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_uRawUCatUsT_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Sensorrohspannung des Drucksensors der HWL-Pumpe"); text(2,0,"[mV]"); text(3,0,"(SCR_uRawUPmpP)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_uRawUPmpP",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_uRawUPmpP_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Sensorrohspannung des Temperatursensors der Harnstoff-Wasser-Lösung"); text(2,43,"[mV]"); text(3,43,"(SCR_uRawUTnkT)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_uRawUTnkT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_uRawUTnkT_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Resttankmenge"); text(2,0,"[g]"); text(3,0,"(UDC_mRdcAgRmn)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_mRdcAgRmn",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UDC_mRdcAgRmn_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Nachtankerkennung Passivtank"); text(2,43,"[]"); text(3,43,"(UDC_stDetPasTnkReFill)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_stDetPasTnkReFill",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UDC_stDetPasTnkReFill_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Nachtankerkennung Aktivtank"); text(2,0,"[]"); text(3,0,"(UDC_stDetReFill)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UDC_stDetReFill",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UDC_stDetReFill_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Aktueller Stromspiegel der Druckleitung bzw. Fördermodulheizung"); text(2,43,"[uA]"); text(3,43,"UHC_iPLSensDia_mp"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHC_iPLSensDia_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UHC_iPLSensDia_mp_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"aktueller Stromspiegel der Tankheizung"); text(2,0,"[uA]"); text(3,0,"(UHC_iTnkSensDia_mp)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHC_iTnkSensDia_mp",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UHC_iTnkSensDia_mp_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Anforderung zum Heizen des Tanks und / oder der Druckleitung"); text(2,43,"[]"); text(3,43,"(UHC_stCReq)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHC_stCReq",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHC_stCReq_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Status der Tanktemperatur und Auftauen der Druckleitung"); text(2,0,"[]"); text(3,0,"(UHC_stCtl)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHC_stCtl",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHC_stCtl_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Status der Auftauprüfung"); text(2,43,"[]"); text(3,43,"(UHC_stDfrstChk)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHC_stDfrstChk",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHC_stDfrstChk_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Status - Sollwert für die Druckleitungsheizung"); text(2,0,"[]"); text(3,0,"(UHtrPL_st)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHtrPL_st",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHtrPL_st_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Status der Endstufe für die Druckleitungsheizung"); text(2,43,"[]"); text(3,43,"(UHtrPL_stPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHtrPL_stPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHtrPL_stPs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Status der Endstufe für die Tankheizung"); text(2,0,"[]"); text(3,0,"(UHtrTnk_st)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHtrTnk_st",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHtrTnk_st_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Status - Sollwert für die Tankheizung"); text(2,43,"[]"); text(3,43,"(UHtrTnk_stPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UHtrTnk_stPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UHtrTnk_stPs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Tastverhältnis zur Ansteuerung des Pumpenmotors (Sollwert)"); text(2,0,"[%]"); text(3,0,"(UPmpMot_r)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UPmpMot_r",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UPmpMot_r_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Tastverhältnis zur Ansteuerung des Pumpenmotors (Endstufe)"); text(2,43,"[%]"); text(3,43,"(UPmpMot_rPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UPmpMot_rPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UPmpMot_rPs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Tastverhaeltnis an der Endstufe"); text(2,0,"[%]"); text(3,0,"(UPmpReFl_rPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UPmpReFl_rPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_UPmpReFl_rPs_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); text(1,43,"Status der Auftauprüfung"); text(2,43,"[]"); text(3,43,"(UPmpReFl_st)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;UPmpReFl_st",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_UPmpReFl_st_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Status - digitaler Ausgangs zum 4/2 Wegeventil (Sollwert)"); text(2,0,"[]"); text(3,0,"(URevVlv_st)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;URevVlv_st",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_URevVlv_st_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,0,0,2); text(1,43,"Status - digitaler Ausgangs zum 4/2 Wegeventil (Endstufe)"); text(2,43,"[]"); text(3,43,"(URevVlv_stPs)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;URevVlv_stPs",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultInt(ganz_zahl,"STAT_URevVlv_stPs_WERT",1); inttostring(ganz_zahl,text_var); ftextout(text_var,4,43,0,2); } LINE("","") { text(1,0,"Temperatur vor SCR-Katalysator"); text(2,0,"[°C]"); text(3,0,"(SCR_tUCatUsT)"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_tUCatUsT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_SCR_tUCatUsT_WERT",1); realtostring(zahlen_var,"6.3",text_var); ftextout(text_var,4,0,0,2); } } SCREEN s_igrinfo() { string tmp; int z1; ftextout("IGR Info",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { ftextout("IGR Codierung",1,1,0,0); INPAapiJob(sgbd,"STATUS_CODIERUNG_IGR","",""); INPAapiResultText( text_var,"STAT_CODIERUNG_IGR_TEXT",1,""); ftextout( text_var,3,1,0,2); } LINE("","") { z1=1; INPAapiJob(sgbd,"STATUS_IGRINFO","",""); INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS0",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Low Enabled",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS1",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Med Enabled",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS2",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Hi Enabled",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS3",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Low Aktiv",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS4",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Med Aktiv",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; INPAapiResultInt(ganz_zahl,"STAT_IGR3_BITS5",1); inttostring(ganz_zahl,tmp); ftextout("IGR-Hi Aktiv",z1,1,0,0); ftextout(tmp,z1,25,0,2); z1=z1+1; } } // ************************* // *** Analog3-Screen *** // ************************* SCREEN s_analog3() { ftextout("Selektive Drehungleichförmigkeit",1,0,1,0); ftextout("(LL-Regler ist aus)",3,0,0,0); LINE("Selektive Drehungleichförmigkeit","") { INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_MOTORDREHZAHL_WERT",1); if(zahlen_var == 0) { textout("Bitte zuerst Motor starten!",5,10); } else { //ftextout("Selektive Drehungleichförmigkeit",0,0,1,1); INPAapiJob(sgbd,"START_SYSTEMCHECK_ZYL","LLR_AUS",""); INPAapiCheckJobStatus("OKAY"); INPAapiJob(sgbd,"STATUS_LAUFUNRUHE_DREHZAHL","",""); INPAapiCheckJobStatus("OKAY"); text(3,0,"Zylinder 1"); text(4,0,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL1_WERT",1); analogout(zahlen_var, 5,0, 0.0, 900.0, 0.0, 900.0, "4.2"); text(3,43,"Zylinder 2"); text(4,43,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL2_WERT",1); analogout(zahlen_var, 5,43, 0.0, 900.0, 0.0, 900.0, "4.2"); text(9,0,"Zylinder 3"); text(10,0,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL3_WERT",1); analogout(zahlen_var, 11,0, 0.0, 900.0, 0.0, 900.0, "4.2"); text(9,43,"Zylinder 4"); text(10,43,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL4_WERT",1); analogout(zahlen_var, 11,43, 0.0, 900.0, 0.0, 900.0, "4.2"); text(15,0,"Zylinder 5"); text(16,0,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL5_WERT",1); analogout(zahlen_var, 17,0, 0.0, 900.0, 0.0, 900.0, "4.2"); text(15,43,"Zylinder 6"); text(16,43,"[rpm]"); INPAapiResultAnalog(zahlen_var,"STAT_LAUFUNRUHE_DREHZAHL_ZYL6_WERT",1); analogout(zahlen_var, 17,43, 0.0, 900.0, 0.0, 900.0, "4.2"); } } } // **************************** // *** SOLL / IST Screen *** // **************************** SCREEN s_soll_ist() { ftextout("SOLL/IST WERTE 1",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { text(1,0,"Ladedruck SOLL"); text(2,0,"[mbar]"); INPAapiJob(sgbd,"STATUS_LADEDRUCK_SOLL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LADEDRUCK_SOLL_WERT",1); analogout(zahlen_var, 3,0, 0.0, 2500.0, 850.0, 2500.0, "4.2"); text(1,43,"Ladedruck IST"); text(2,43,"[mbar]"); INPAapiJob(sgbd,"STATUS_LADEDRUCK_IST","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LADEDRUCK_IST_WERT",1); analogout(zahlen_var*10, 3,43, 0.0, 2500.0, 850.0, 2500.0, "4.2"); // SG liefert Wert in kPa } LINE("","") { text(1,0,"Ladedruck SPANNUNG"); text(2,0,"[mV]"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;IULDF",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LADEDRUCK_SPANNUNG_WERT",1); analogout(zahlen_var, 3,0, 0.0, 5000.0, 850.0, 5000.0, "4.2"); } LINE("","") { text(1,0,"Raildruck SOLL"); text(2,0,"[bar]"); INPAapiJob(sgbd,"STATUS_RAILDRUCK_SOLL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_RAILDRUCK_SOLL_WERT",1); analogout(zahlen_var, 3,0, 0.0, 1640.0, 33.0, 1640.0, "4.2"); text(1,43,"Raildruck IST"); text(2,43,"[bar]"); INPAapiJob(sgbd,"STATUS_RAILDRUCK_IST","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_RAILDRUCK_IST_WERT",1); analogout(zahlen_var, 3,43, 0.0, 1640.0, 33.0, 1640.0, "4.2"); } LINE("","") { text(1,0,"Raildruck SPANNUNG"); text(2,0,"[mV]"); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;IURDR",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_RAILDRUCK_SPANNUNG_ROH_WERT",1); analogout(zahlen_var, 3,0, 0.0, 5000.0, 60.0, 5000.0, "4.2"); } LINE("","") { text(1,0,"Luftmasse Soll"); text(2,0,"[mg/Hub]"); INPAapiJob(sgbd,"STATUS_LUFTMASSE_SOLL","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LUFTMASSE_SOLL_WERT",1); analogout(zahlen_var, 3,0, 0.0, 650.0, 35.0, 650.0, "4.2"); text(1,43,"Luftmasse IST"); text(2,43,"[mg/Hub]"); INPAapiJob(sgbd,"STATUS_LUFTMASSE_IST","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultAnalog(zahlen_var,"STAT_LUFTMASSE_IST_WERT",1); analogout(zahlen_var, 3,43, 0.0, 650.0, 35.0, 650.0, "4.2"); } } // ************************* // *** KAT/CSF-Screen *** // ************************* SCREEN s_katcsf() { ftextout("Messwerte KAT / CSF",1,0,1,0); LINE("Abgastemperatur","") { //ftextout("Selektive Drehungleichförmigkeit",0,0,1,1); INPAapiJob(sgbd,"STATUS_ABGASTEMPERATUR_CSF","",""); INPAapiCheckJobStatus("OKAY"); text(3,0,"Abgastemperatur CSF"); INPAapiResultText( text_var, "STAT_ABGASTEMPERATUR_CSF_EINH",1,""); text(4,0,text_var); INPAapiResultAnalog(zahlen_var,"STAT_ABGASTEMPERATUR_CSF_WERT",1); analogout(zahlen_var, 5,0, -40.0, 1000.0, -40.0, 1000.0, "4.2"); INPAapiJob(sgbd,"STATUS_ABGASTEMPERATUR_KAT","",""); INPAapiCheckJobStatus("OKAY"); text(3,43,"Abgastemperatur KAT"); INPAapiResultText( text_var, "STAT_ABGASTEMPERATUR_KAT_EINH",1,""); text(4,43,text_var); INPAapiResultAnalog(zahlen_var,"STAT_ABGASTEMPERATUR_KAT_WERT",1); analogout(zahlen_var, 5,43, -40.0, 1000.0, -40.0, 1000.0, "3.2"); } LINE("Ladedruck","") { INPAapiJob(sgbd,"STATUS_LADEDRUCK_IST","",""); INPAapiCheckJobStatus("OKAY"); text(3,0,"Ladedruck IST-Wert"); INPAapiResultText( text_var, "STAT_LADEDRUCK_IST_EINH",1,""); text(4,0,text_var); INPAapiResultAnalog(zahlen_var,"STAT_LADEDRUCK_IST_WERT",1); analogout(zahlen_var, 5,0, 60.0, 280.0, 60.0, 280.0, "3.2"); INPAapiJob(sgbd,"STATUS_DIFFERENZDRUCK_CSF","",""); INPAapiCheckJobStatus("OKAY"); text(3,43,"Differenzdruck CSF"); INPAapiResultText( text_var, "STAT_DIFFERENZDRUCK_CSF_EINH",1,""); text(4,43,text_var); INPAapiResultAnalog(zahlen_var,"STAT_DIFFERENZDRUCK_CSF_WERT",1); analogout(zahlen_var, 5,43, -30.0, 1200.0, -30.0, 1200.0, "4.3"); } } // ********************* // *** IBS Hauptmenu *** // ********************* SCREEN s_main_pm() { ftextout("Powermanagement IBS",3,20,1,1); ftextout("< F1 > IBS Identifikation", 9,5,0,1); ftextout("< F2 > PM 1 Byte Feld" ,11,5,0,1); ftextout("< F3 > PM 2 Byte Feld" ,13,5,0,1); ftextout("< F4 > PM 3 Byte Feld" ,15,5,0,1); ftextout("< F5 > Batterietausch registrieren" ,17,5,0,1); ftextout("< F6 > Histogramm Reset" ,19,5,0,1); ftextout("< F7 > Start PM MESSEMODE",21,5,0,1); ftextout("< F8 > Stop PM MESSEMODE",23,5,0,1); ftextout("< F10> Zurück" ,25,5,0,1); ftextout("< Shift > + < F10> INPA beenden" ,25,45,0,1); ftextout("< Shift > + < F1> IBS Erkennung Rücksetzen", 9,45,0,1); stop(); } // ************************ // *** IBS Ident-Screen *** // ************************ SCREEN s_ibs_ident() { string s1; INPAapiJob(sgbd,"IDENT_IBS","",""); ftextout("Identifikation Batteriesensor",0,20,1,1); INPAapiResultText(s1, "JOB_STATUS", 1,""); if (s1 != "OKAY") { messagebox("IDENT_IBS",s1); } else { textout("=============================================================================================",2,0); ergebnisAusgabeTxt("BMW Teilenummer:" ,"ID_BMW_NR" ,3,0,0,30); ergebnisAusgabeTxt("Seriennummer:" ,"SERIENNUMMER" ,4,0,0,30); ergebnisAusgabeInt("Hardwareversion:" ,"HW_REF" ,5,0,0,30); ergebnisAusgabeInt("Programmstand:" ,"ZIF_PROGRAMMSTAND" ,7,0,0,30); ergebnisAusgabeInt("Programmversion:" ,"ZIF_STATUS" ,8,0,0,30); stop(); } } // ************************ // *** PM 2 Byte-Feld *** // ************************ SCREEN s_pm_feld1() { string s1; INPAapiJob(sgbd,"STATUS_SYSTEMCHECK_PM_INFO_1","",""); INPAapiResultText(s1, "JOB_STATUS", 1,""); if (s1 != "OKAY") { messagebox("PM_FELD1",s1); } else { ftextout("PM Infofeld 1",0,20,1,1); ergebnisAusgabeAnalog("km Stand aktuell" , "STAT_KM_STAND_AKTUELL_WERT" , "7.2", 5, 0, 0,25); ergebnisAusgabeAnalog("km Stand vor 1 Tag" , "STAT_KM_STAND_VOR_1_TAG_WERT", "7.2", 6, 0, 0,25); ergebnisAusgabeAnalog("km Stand vor 2 Tagen", "STAT_KM_STAND_VOR_2_TAG_WERT", "7.2", 7, 0, 0,25); ergebnisAusgabeAnalog("km Stand vor 3 Tagen", "STAT_KM_STAND_VOR_3_TAG_WERT", "7.2", 8, 0, 0,25); ergebnisAusgabeAnalog("km Stand vor 4 Tagen", "STAT_KM_STAND_VOR_4_TAG_WERT", "7.2", 9, 0, 0,25); ergebnisAusgabeAnalog("km Stand vor 5 Tagen", "STAT_KM_STAND_VOR_5_TAG_WERT", "7.2", 10, 0, 0,25); ergebnisAusgabeAnalog(" letzter Batterietausch bei km", "STAT_BATTERIETAUSCH_LETZTER_WERT" , "7.2",6,35, 0,25); ergebnisAusgabeAnalog("2letzter Batterietausch bei km", "STAT_BATTERIETAUSCH_ZWEITLETZTER_WERT", "7.2",7,35, 0,25); ergebnisAusgabeAnalog("3letzter Batterietausch bei km", "STAT_BATTERIETAUSCH_DRITTLETZTER_WERT", "7.2",8,35, 0,25); ergebnisAusgabeAnalog("4letzter Batterietausch bei km", "STAT_BATTERIETAUSCH_VIERTLETZTER_WERT", "7.2",9,35, 0,25); ergebnisAusgabeAnalog("5letzter Batterietausch bei km", "STAT_BATTERIETAUSCH_FUENFTLETZTER_WERT","7.2",8,35, 0,25); ergebnisAusgabeAnalog("Stunden im Ladungsbereich 0 - 20", "STAT_ZEIT_IM_LADUNGSBEREICH_0_20_WERT" ,"7.2",13,35, 0,25); ergebnisAusgabeAnalog("Stunden im Ladungsbereich 20 - 40", "STAT_ZEIT_IM_LADUNGSBEREICH_20_40_WERT" ,"7.2",14,35, 0,25); ergebnisAusgabeAnalog("Stunden im Ladungsbereich 40 - 60", "STAT_ZEIT_IM_LADUNGSBEREICH_40_60_WERT" ,"7.2",15,35, 0,25); ergebnisAusgabeAnalog("Stunden im Ladungsbereich 60 - 80", "STAT_ZEIT_IM_LADUNGSBEREICH_60_80_WERT" ,"7.2",16,35, 0,25); ergebnisAusgabeAnalog("Stunden im Ladungsbereich 80 -100", "STAT_ZEIT_IM_LADUNGSBEREICH_80_100_WERT","7.2",17,35, 0,25); ergebnisAusgabeAnalog("Minuten bei Temperatur bis 0" , "STAT_ZEIT_IM_TEMPERATURBEREICH_BIS_0_WERT","7.2",13, 0, 0,25); ergebnisAusgabeAnalog("Minuten bei Temperatur 0 - 20" , "STAT_ZEIT_IM_TEMPERATURBEREICH_0_20_WERT" ,"7.2",14, 0, 0,25); ergebnisAusgabeAnalog("Minuten bei Temperatur 20 - 40" , "STAT_ZEIT_IM_TEMPERATURBEREICH_20_40_WERT","7.2",15, 0, 0,25); ergebnisAusgabeAnalog("Minuten bei Temperatur 40 - 60" , "STAT_ZEIT_IM_TEMPERATURBEREICH_40_60_WERT","7.2",16, 0, 0,25); ergebnisAusgabeAnalog("Minuten bei Temperatur über 60" , "STAT_ZEIT_IM_TEMPERATURBEREICH_AB_60_WERT","7.2",17, 0, 0,25); ergebnisAusgabeAnalog("Batterieladung gesamte Ah", "STAT_BATTERIELADUNG_GESAMT_WERT" ,"7.2",20, 0, 0,25); ergebnisAusgabeAnalog("Batterieentladung gesamte Ah","STAT_BATTERIEENTLADUNG_GESAMT_WERT","7.2",20,35, 0,25); ergebnisAusgabeAnalog("Batterieladung Bilanz Ah", "STAT_BATTERIELADUNG_BILANZ_WERT" ,"7.2",21, 0, 0,25); ergebnisAusgabeAnalog("Batterieentladung während Motorlauf", "STAT_BATTENTLADUNG_GESAMT_BEI_MOTOR_LAEUFT_WERT" ,"7.2",21, 35, 0,25); ergebnisAusgabeAnalog("IBS Fehler BSD Parity", "STAT_IBS_FEHLERZAEHLER_BSD_PARITY_WERT", "5.0",24, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler Watchdog Reset", "STAT_IBS_FEHLERZAEHLER_WATCHDOG_RESET_WERT", "5.0",25, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler Power on Reset", "STAT_IBS_FEHLERZAEHLER_POWER_ON_RESET_WERT", "5.0",26, 0, 0,25); ergebnisAusgabeAnalog("KTBS Fehler BSD erweitert", "STAT_KTBS_FEHLERZAEHLER_BSD_ERWEITERT_WERT", "5.0",24,35, 0,25); ergebnisAusgabeAnalog("KTIBS Fehler BSD", "STAT_KTIBS_FEHLERZAEHLER_BSD_WERT", "5.0",25,35, 0,25); ergebnisAusgabeAnalog("KTIBS Fehler EBSD Checksumme","STAT_KTIBS_FEHLERZAEHLER_EBSD_CHECKSUMME_WERT","5.0",26,35, 0,25); delay(1000); } } // ************************ // *** PM 1 Byte-Feld *** // ************************ SCREEN s_pm_feld2() { string s1; INPAapiJob(sgbd,"STATUS_SYSTEMCHECK_PM_INFO_2","",""); INPAapiResultText(s1, "JOB_STATUS", 1,""); if (s1 != "OKAY") { messagebox("PM_FELD2",s1); } else { ftextout("PM Infofeld 2",0,20,1,1); ergebnisAusgabeAnalog("Ah Q SOC aktuell" , "STAT_Q_SOC_AKTUELL_WERT" , "7.2", 3, 0, 0,25); ergebnisAusgabeAnalog("Ah Q SOC vor 1 Tag" , "STAT_Q_SOC_VOR_1_TAG_WERT", "7.2", 4, 0, 0,25); ergebnisAusgabeAnalog("Ah Q SOC vor 2 Tagen", "STAT_Q_SOC_VOR_2_TAG_WERT", "7.2", 5, 0, 0,25); ergebnisAusgabeAnalog("Ah Q SOC vor 3 Tagen", "STAT_Q_SOC_VOR_3_TAG_WERT", "7.2", 6, 0, 0,25); ergebnisAusgabeAnalog("Ah Q SOC vor 4 Tagen", "STAT_Q_SOC_VOR_4_TAG_WERT", "7.2", 7, 0, 0,25); ergebnisAusgabeAnalog("Ah Q SOC vor 5 Tagen", "STAT_Q_SOC_VOR_5_TAG_WERT", "7.2", 8, 0, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit aktuell" , "STAT_STARTFAEHIGKEITSGRENZE_AKTUELL_WERT" , "7.2", 3,35, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit vor 1 Tag" , "STAT_STARTFAEHIGKEITSGRENZE_VOR_1_TAG_WERT", "7.2", 4,35, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit vor 2 Tagen", "STAT_STARTFAEHIGKEITSGRENZE_VOR_2_TAG_WERT", "7.2", 5,35, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit vor 3 Tagen", "STAT_STARTFAEHIGKEITSGRENZE_VOR_3_TAG_WERT", "7.2", 6,35, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit vor 4 Tagen", "STAT_STARTFAEHIGKEITSGRENZE_VOR_4_TAG_WERT", "7.2", 7,35, 0,25); ergebnisAusgabeAnalog("% Startfähigkeit vor 5 Tagen", "STAT_STARTFAEHIGKEITSGRENZE_VOR_5_TAG_WERT", "7.2", 8,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand aktuell" , "STAT_LADUNGSZUSTAND_AKTUELL_WERT" , "7.2",10,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand vor 1 Tag" , "STAT_LADUNGSZUSTAND_VOR_1_TAG_WERT", "7.2",11,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand vor 2 Tagen", "STAT_LADUNGSZUSTAND_VOR_2_TAG_WERT", "7.2",12,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand vor 3 Tagen", "STAT_LADUNGSZUSTAND_VOR_3_TAG_WERT", "7.2",13,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand vor 4 Tagen", "STAT_LADUNGSZUSTAND_VOR_4_TAG_WERT", "7.2",14,35, 0,25); ergebnisAusgabeAnalog("% Ladungszustand vor 5 Tagen", "STAT_LADUNGSZUSTAND_VOR_5_TAG_WERT", "7.2",15,35, 0,25); ergebnisAusgabeAnalog("Batterie Kapazität in Ah", "STAT_BATTERIE_KAPAZITAET_WERT", "7.2",10, 0, 0,25); ergebnisAusgabeAnalog("SOH", "STAT_SOH_WERT", "7.2",11, 0, 0,25); ergebnisAusgabeAnalog("SOC-Fit", "STAT_SOC_FIT_WERT", "7.2",12, 0, 0,25); ergebnisAusgabeAnalog("Saison Temperatur in °C", "STAT_TEMP_SAISON_WERT", "7.2",13, 0, 0,25); ergebnisAusgabeAnalog("Kalibrier Ereignisse", "STAT_KALIBRIER_EVENT_CNT_WERT", "4.0",14, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler Download Checksumme", "STAT_IBS_FEHLERZAEHLER_DOWNLOAD_CHECKSUMME_WERT", "4.0",17, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler EEPROM Diagnose", "STAT_IBS_FEHLERZAEHLER_EEPROM_DIAGNOSE_WERT", "4.0",18, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler RAM Diagnose", "STAT_IBS_FEHLERZAEHLER_RAM_DIAGNOSE_WERT", "4.0",19, 0, 0,25); ergebnisAusgabeAnalog("IBS Fehler PROM Diagnose", "STAT_IBS_FEHLERZAEHLER_PROM_DIAGNOSE_WERT", "4.0",17,35, 0,25); ergebnisAusgabeAnalog("IBS Fehler I2C NAC Diagnose", "STAT_IBS_FEHLERZAEHLER_I2C_NAC_DIAGNOSE_WERT", "4.0",18,35, 0,25); ergebnisAusgabeAnalog("IBS Fehler I2C Bus Collision", "STAT_IBS_FEHLERZAEHLER_I2C_BUS_COLLISION_WERT", "4.0",19,35, 0,25); delay(1000); } } // ******************************* // *** PM 1 Byte-Feld Seite 2 *** // ******************************* SCREEN s_pm_feld3() { string s1; INPAapiJob(sgbd,"STATUS_SYSTEMCHECK_PM_INFO_1","",""); INPAapiResultText(s1, "JOB_STATUS", 1,""); if (s1 != "OKAY") { messagebox("PM_FELD3",s1); } else { ftextout("PM Infofeld 3",0,20,1,1); text(3,0,"Status Ruhestrom aktuell:"); INPAapiResultText(text_var,"STAT_RUHESTROM_AKTUELL",1,""); ftextout(text_var,3,25,0,0); text(4,0,"Status Ruhestrom vor 1 Zyklus:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_1_ZYKLUS",1,""); ftextout(text_var,4,25,0,0); text(5,0,"Status Ruhestrom vor 2 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_2_ZYKLEN",1,""); ftextout(text_var,5,25,0,0); text(6,0,"Status Ruhestrom vor 3 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_3_ZYKLEN",1,""); ftextout(text_var,6,25,0,0); text(7,0,"Status Ruhestrom vor 4 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_4_ZYKLEN",1,""); ftextout(text_var,7,25,0,0); text(8,0,"Status Ruhestrom vor 5 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_5_ZYKLEN",1,""); ftextout(text_var,8,25,0,0); text(9,0,"Status Ruhestrom vor 6 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_6_ZYKLEN",1,""); ftextout(text_var,9,25,0,0); text(10,0,"Status Ruhestrom vor 7 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_7_ZYKLEN",1,""); ftextout(text_var,10,25,0,0); text(11,0,"Status Ruhestrom vor 8 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_8_ZYKLEN",1,""); ftextout(text_var,11,25,0,0); text(12,0,"Status Ruhestrom vor 9 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_9_ZYKLEN",1,""); ftextout(text_var,12,25,0,0); text(13,0,"Status Ruhestrom vor 10 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_10_ZYKLEN",1,""); ftextout(text_var,13,25,0,0); text(14,0,"Status Ruhestrom vor 11 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_11_ZYKLEN",1,""); ftextout(text_var,14,25,0,0); text(15,0,"Status Ruhestrom vor 12 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_12_ZYKLEN",1,""); ftextout(text_var,15,25,0,0); text(16,0,"Status Ruhestrom vor 13 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_13_ZYKLEN",1,""); ftextout(text_var,16,25,0,0); text(17,0,"Status Ruhestrom vor 14 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_14_ZYKLEN",1,""); ftextout(text_var,17,25,0,0); text(18,0,"Status Ruhestrom vor 15 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_15_ZYKLEN",1,""); ftextout(text_var,18,25,0,0); text(19,0,"Status Ruhestrom vor 16 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_16_ZYKLEN",1,""); ftextout(text_var,19,25,0,0); text(20,0,"Status Ruhestrom vor 17 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_17_ZYKLEN",1,""); ftextout(text_var,20,25,0,0); text(21,0,"Status Ruhestrom vor 18 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_18_ZYKLEN",1,""); ftextout(text_var,21,25,0,0); text(22,0,"Status Ruhestrom vor 19 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_19_ZYKLEN",1,""); ftextout(text_var,22,25,0,0); text(23,0,"Status Ruhestrom vor 20 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_20_ZYKLEN",1,""); ftextout(text_var,23,25,0,0); text(24,0,"Status Ruhestrom vor 21 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_21_ZYKLEN",1,""); ftextout(text_var,24,25,0,0); text(25,0,"Status Ruhestrom vor 22 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_22_ZYKLEN",1,""); ftextout(text_var,25,25,0,0); text(26,0,"Status Ruhestrom vor 23 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_23_ZYKLEN",1,""); ftextout(text_var,26,25,0,0); text(27,0,"Status Ruhestrom vor 24 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_24_ZYKLEN",1,""); ftextout(text_var,27,25,0,0); text(28,0,"Status Ruhestrom vor 25 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_25_ZYKLEN",1,""); ftextout(text_var,28,25,0,0); text(29,0,"Status Ruhestrom vor 26 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_26_ZYKLEN",1,""); ftextout(text_var,29,25,0,0); text(30,0,"Status Ruhestrom vor 27 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_27_ZYKLEN",1,""); ftextout(text_var,30,25,0,0); text(31,0,"Status Ruhestrom vor 28 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_28_ZYKLEN",1,""); ftextout(text_var,31,25,0,0); text(32,0,"Status Ruhestrom vor 29 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_29_ZYKLEN",1,""); ftextout(text_var,32,25,0,0); text(33,0,"Status Ruhestrom vor 30 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_30_ZYKLEN",1,""); ftextout(text_var,33,25,0,0); text(34,0,"Status Ruhestrom vor 31 Zyklen:"); INPAapiResultText(text_var,"STAT_RUHESTROM_VOR_31_ZYKLEN",1,""); ftextout(text_var,34,25,0,0); delay(1000); } } // ************************* // *** Steller Screen *** // ************************* SCREEN s_steller() { int z1; userboxclose(0); viewclose(); ftextout(" DDE7 Stellgliedansteuerungen 1",1,0,1,0); z1=5; textout(" < F1 > Drosselklappe",z1,5); textout("< Shift > + < F1 > MIL Lampe",z1,45);z1=z1+2; textout(" < F2 > E-Lüfter",z1,5); textout("< Shift > + < F2 > Öldrucklampe",z1,45);z1=z1+2; textout(" < F3 > Glührelais",z1,5); textout("< Shift > + < F3 > Nachschalldämpferklappe",z1,45);z1=z1+2; textout(" < F4 > Motorlager",z1,5); textout("< Shift > + < F4 > E Box Lüfter",z1,45);z1=z1+2; textout(" < F5 > Kraftstoffdruck-Regelventil",z1,5); textout("< Shift > + < F5 > Klimakompressor",z1,45);z1=z1+2; textout(" < F6 > Ladedrucksteller",z1,5); textout("< Shift > + < F6 > Kraftstoffpumpe CAN",z1,45);z1=z1+2; textout(" < F7 > Drallklappe",z1,5); textout("< Shift > + < F7 > Vorförderpumpe",z1,45);z1=z1+2; textout(" < F8 > Zumesseinheit",z1,5); textout("< Shift > + < F8 > Zuluftklappe",z1,45);z1=z1+2; textout(" < F9 > Abgasrückführung",z1,5); textout("< Shift > + < F9 > Zusatzheizer",z1,45);z1=z1+2; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,45); delay(50); } // ******************************* // *** Steuern Steller Screen *** // ******************************* SCREEN s_steller_set() { // verwendete Globale Variablen //string steller //string st_name //int st_ein //int st_aus //string st_dim // int z1; st_add_label=""; if(steller=="AGR") { st_name="Abgasrückführung"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="AGRKBP") { st_name="AGR-KühlerBypassklappe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="ALK") { st_name="Abluftklappe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="BBHE") { st_name="BlowByHeizelement"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="DRA") { st_name="Drallklappe"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="DRO") { st_name="Drosselklappe"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="DRV") { st_name="Kraftstoffdruck-Regelventil"; st_aus=6; st_ein=76;st_dim="%";} if(steller=="EBX") { st_name="E-BoxLüfter"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="ELU") { st_name="Motorlüfter"; st_aus=8; st_ein=93;st_dim="%";} if(steller=="GLU") { st_name="Glührelais"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="KFH") { st_name="HeizungfürKraftstofffilter"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="KLI") { st_name="Klimakompressor"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="KPC") { st_name="Kraftstoffpumpe-CAN"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="LDS") { st_name="Ladedrucksteller"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="LDSND") { st_name="LadedruckstellerNiederdruck"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="MILA") { st_name="MIL-Lampe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="MLA") { st_name="Motorlager"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="MRV") { st_name="Zumesseinheit"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="MSA") { st_name="Motorstartautomatik"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="NSK") { st_name="Nachschalldämpferklappe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="OILA") { st_name="Öldrucklampe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="STA") { st_name="Starter"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="SYSLA") { st_name="Systemlampe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="UASCR") { st_name="Elektr.UmschaltventilamAktivtank(SCR)"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="PASCR") { st_name="Pumpe-Aktivtank(SCR)"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="PPSCR") { st_name="Pumpe-Passivtank(SCR)"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="DVSCR") { st_name="DosierventilinderAGA(SCR)"; st_aus=5; st_ein=95;st_dim="%";} if(steller=="HKT") { st_name="Heizkreis Aktivtank(SCR)"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="HKDL") { st_name="Heizkreis-Dosierleitung(SCR)"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="VBP") { st_name="Verdichterbypass"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="VFP") { st_name="Vorförderpumpe"; st_aus=0; st_ein=1;st_dim="-";} if(steller=="ZLK") { st_name="Zuluftklappe"; st_aus=5; st_ein=94;st_dim="%";} if(steller=="ZUH") { st_name="Zusatzheizer"; st_aus=0; st_ein=1;st_dim="-";} userboxclose(0); viewclose(); ftextout("Stelleransteuerung " + st_name,1,0,1,0); z1=5; textout(" < F1 > Ansteuerung ein",z1,5);z1=z1+1; textout(" < F2 > Ansteuerung aus",z1,5);z1=z1+1; textout(" < F3 > Ansteuerung manuell",z1,5);z1=z1+1; textout(" < F4 > Ansteuerung zurück an DDE",z1,5);z1=z1+2; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,45); steller_ansteuer(steller,0xFE); delay(50); } SCREEN s_steller_scr() { int z1; userboxclose(0); viewclose(); ftextout(" DDE7 SCR Stellgliedansteuerungen",1,0,1,0); z1=5; textout(" < F1 > Umschaltventil",z1,5); z1=z1+2; textout(" < F2 > Pumpe Aktivtank",z1,5); z1=z1+2; textout(" < F3 > Pumpe Passivtank",z1,5); z1=z1+2; textout(" < F4 > Dosierventil",z1,5); z1=z1+2; // textout(" < F5 > Heizer Heizerrelais",z1,5); // z1=z1+2; textout(" < F5 > Heizer Druckleitung",z1,5); z1=z1+2; textout(" < F6 > Heizerkreis-Tank",z1,5); z1=z1+3; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,45); delay(50); } // ******************************* // *** Steuern Steller Screen *** // ******************************* SCREEN s_steller_scr_set() { // verwendete Globale Variablen //string steller //string st_name //int st_ein //int st_aus // int z1; if(steller=="UASCR") { st_name="Elektr. Umschaltventil am Aktivtank"; st_aus=0; st_ein=1;st_dim="-";st_add_label="CoSCR_st;SCR_pUPmpP;URevVlv_st;URevVlv_stPs";} if(steller=="PASCR") { st_name="Pumpe-Aktivtank"; st_aus=6; st_ein=80;st_dim="%";st_add_label="CoSCR_st;SCR_pUPmpP;SCR_rUTnkLvl;SCR_uRawUPmpP;UPmpMot_r;UPmpMot_rPs;URevVlv_st;URevVlv_stPs";} if(steller=="PPSCR") { st_name="Pumpe-Passivtank"; st_aus=0; st_ein=1;st_dim="-";st_add_label="SCR_pUPmpP;SCR_rRawUPasTnkLvl;SCR_rUPasTnkLvl;UPmpReFl_rPs;UPmpReFl_st";} if(steller=="DVSCR") { st_name="Dosierventil in der AGA"; st_aus=5; st_ein=95;st_dim="%";st_add_label="CoSCR_st;Exh_stNOxSensDiaEnaNoCat2Ds;Exh_stNOxSensDiaEnaNSCDs;SCR_uRawUCatUsT;UDC_dmRdcAgDos;UDosVlv_rDyc;UDosVlv_rPs";} //if(steller=="HKHR") { st_name="Heizkreis-Heizerrelais"; st_aus=0; st_ein=1;st_dim="-";st_add_label="UHC_iPLSensDia_mp;UHC_iTnkSensDia_mp;UHC_iToT;UHC_stCReq;UHtrPL_st;UHtrPL_stPs;UHtrTnk_st;UHtrTnk_stPs";} if(steller=="HKDL") { st_name="Heizkreis-Druckleitung"; st_aus=0; st_ein=1;st_dim="-";st_add_label="UHC_iPLSensDia_mp;UHC_iTnkSensDia_mp;UHC_iToT;UHC_stCReq;UHC_stCtl;UHtrPL_st;UHtrPL_stPs";} if(steller=="HKT") { st_name="Heizkreis-Tank"; st_aus=0; st_ein=1;st_dim="-";st_add_label="UHC_iPLSensDia_mp;UHC_iTnkSensDia_mp;UHC_iToT;UHC_stCReq;UHC_stCtl;SCR_tUTnkT;SCR_uRawUTnkT;UHtrTnk_st;UHtrTnk_stPs";} userboxclose(0); viewclose(); ftextout("Stelleransteuerung " + st_name,1,0,1,0); z1=5; textout(" < F1 > Ansteuerung ein",z1,5);z1=z1+1; textout(" < F2 > Ansteuerung aus",z1,5);z1=z1+1; textout(" < F3 > Ansteuerung manuell",z1,5);z1=z1+1; textout(" < F4 > Ansteuerung zurück an DDE",z1,5);z1=z1+2; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,45); steller_ansteuer(steller,0xFE); delay(50); } // ***************************** // *** LL-Erhöhung setzen *** // ***************************** SCREEN s_system_llerh() { string temp; string s1; string hilfe; ftextout("Systemtest LL-Drehzahl verstellen",0,15,1,1); textout("=========================================================================================",2,0); if ((Diag_Index=="18")||(Diag_Index=="33")||(Diag_Index=="49")) { INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY"){ messagebox("STATUS_MOTORDREHZAHL",s1); } s1 = "LL - Istwert"; ftextout(s1,10,10,1,1); INPAapiResultInt(ll_wert,"STAT_MOTORDREHZAHL_WERT",1); inttostring(ll_wert,temp); ftextout(blank,12,0,1,1); ftextout(temp,12,15,1,1); INPAapiJob(sgbd,"ABGLEICH_LESEN","LLABS",""); s1 = "LL - Sollwert"; ftextout(s1,10,40,1,1); INPAapiResultInt(ll_wert,"ABGLEICH_LESEN_WERT",1); inttostring(ll_wert,temp); ftextout(temp,12,45,1,1); delay(200); } else { INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY"){ messagebox("STATUS_MOTORDREHZAHL",s1); } s1 = "LL - Istwert"; ftextout(s1,10,10,1,1); INPAapiResultInt(ll_wert,"STAT_MOTORDREHZAHL_WERT",1); inttostring(ll_wert,temp); ftextout(blank,12,0,1,1); ftextout(temp,12,15,1,1); INPAapiJob(sgbd,"ABGLEICH_LESEN","LLA",""); s1 = "LL - Offset"; ftextout(s1,10,40,1,1); INPAapiResultInt(ll_wert,"ABGLEICH_LESEN_WERT",1); inttostring(ll_wert,temp); ftextout(temp,12,45,1,1); delay(200); } } //******************************************* //** Ende LL-Drehzahl verstellen ***** //******************************************* SCREEN s_system_llerh_stop() { string s1; string temp; if ((Diag_Index=="18")||(Diag_Index=="33")||(Diag_Index=="49")) { INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLABS;0",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STOP ABGLEICH_VERSTELLEN",s1); stop(); } INPAapiJob(sgbd,"ABGLEICH_LESEN","LLABS",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("ABGLEICH_LESEN_WERT",s1); } INPAapiJob(sgbd,"STATUS_MOTORDREHZAHL","",""); ftextout("Aktueller LL Istwert",10,10,1,1); INPAapiResultInt(ll_wert,"STAT_MOTORDREHZAHL_WERT",1); inttostring(ll_wert,temp); ftextout(blank,12,0,1,1); ftextout(temp,12,15,1,1); INPAapiJob(sgbd,"ABGLEICH_LESEN","LLABS",""); ftextout("Aktuelle LL Vorgabe",10,40,1,1); INPAapiResultInt(ll_wert,"ABGLEICH_LESEN_WERT",1); inttostring(ll_wert,temp); ftextout(temp,12,45,1,1); stop(); } else { INPAapiJob(sgbd,"ABGLEICH_VERSTELLEN","LLA;0",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STOP ABGLEICH_VERSTELLEN",s1); stop(); } INPAapiJob(sgbd,"ABGLEICH_LESEN","LLA",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("ABGLEICH_LESEN_WERT",s1); } //INPAapiResultText(s1,"Aktuelle Drehzahl",1,""); ftextout(blank,10,0,1,1); ftextout("Aktuelles LL Offset",10,10,1,1); INPAapiResultInt(ll_wert,"ABGLEICH_LESEN_WERT",1); inttostring(ll_wert,s1); ftextout(blank,12,0,1,1); ftextout(s1,12,15,1,1); stop(); } } // ************************* // *** IMA-Screen *** // ************************* SCREEN s_ima() { string zyl1; ftextout("Injektorwerte lesen",1,0,1,0); ftextout("",3,0,0,0); logik_var=TRUE; if(logik_var) { INPAapiJob(sgbd,"ABGLEICH_IMA_LESEN","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(zyl1,"ABGLEICH_IMA_WERT_ZYL1",1,""); if (zyl1 == "AAAAAAA") { setitem(3,"",FALSE); } else { setitem(3,"IMA ändern",TRUE); } setitem(2,"",FALSE); //IMA Werte anzeigen für Zyl. 1 text(5,5,"Zylinder 1:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL1",1,""); textout( text_var,5,15); //IMA Werte anzeigen für Zyl. 2 text(5,45,"Zylinder 2:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL2",1,""); textout(text_var,5,55); //IMA Werte anzeigen für Zyl. 3 text(10,5,"Zylinder 3:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL3",1,""); textout(text_var,10,15); //IMA Werte anzeigen für Zyl. 4 text(10,45,"Zylinder 4:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL4",1,""); textout(text_var,10,55); //IMA Werte anzeigen für Zyl. 5 text(15,5,"Zylinder 5:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL5",1,""); textout(text_var,15,15); //IMA Werte anzeigen für Zyl. 6 text(15,45,"Zylinder 6:"); INPAapiResultText(text_var,"ABGLEICH_IMA_WERT_ZYL6",1,""); textout(text_var,15,55); textout("< F1 > IMA-Werte für alle Zylinder schreiben",22,5); if (zyl1 != "AAAAAAA") { textout("< F3 > IMA-Wert für einzelnen Zylinder schreiben",24,5); } stop(); } else { setitem(1,"",FALSE); setitem(3,"",FALSE); inputdigital(logik_var, "IMA Flag setzen","IMA Flag noch nicht gesetzt","Flag nicht setzen","Flag jetzt setzen"); getinputstate(ganz_zahl); if(ganz_zahl == 0 && logik_var==TRUE) { INPAapiJob(sgbd,"ABGLEICH_IMA_ABGLEICHFLAG_VORGEBEN","",""); INPAapiCheckJobStatus("OKAY"); INPAapiJob(sgbd,"ABGLEICH_IMA_ABGLEICHFLAG_PROGRAMMIEREN","",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(text_var,"JOB_STATUS",1,""); if(text_var == "OKAY") { messagebox("IMA Abgleichflag","Abgleichflag gesetzt"); } } else { textout("Injektorwerte noch nicht programmiert",3,3); textout("Um Injektorwerte zu programmieren, zunächst Flag mit < F2 > setzen",5,3); stop(); } } } // ********************* // *** CBS Hauptmenu *** // ********************* SCREEN s_main_cbs() { ftextout("CBS-Daten",1,0,1,0); ftextout("",3,0,0,0); LINE("","") { //CBS Daten auslesen INPAapiJob(sgbd,"CBS_DATEN_LESEN","",""); INPAapiCheckJobStatus("OKAY"); text(5,5,"CBS-Wert OEL in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_OEL",1,""); textout( text_var,5,30); text(5,43,"CBS-Wert Bremsflüssigkeit in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_BRFL",1,""); textout( text_var,5,63); text(7,5,"Restlaufleistung:"); INPAapiResultText(text_var,"RMMI_CBS_WERT",1,""); textout(text_var,7,30); INPAapiResultText(text_var,"RMMI_CBS_EINH",1,""); textout(text_var,7,34); text(7,43,"CBS-Wert ZKRZ in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_ZKRZ",1,""); textout( text_var,7,63); text(9,5,"Verfügbarkeit BATT in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_BATT",1,""); textout(text_var,9,30); text(9,43,"CBS-Wert SIC in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_SIC",1,""); textout( text_var,9,63); text(11,5,"CBS-Wert Partikelfilter in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_CSF",1,""); textout(text_var,10,30); text(11,43,"CBS-Wert FKL in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_KFL",1,""); textout( text_var,11,63); text(13,5,"CBS-Wert VTG in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_VTG",1,""); textout(text_var,13,30); text(13,43,"CBS-Wert UEB in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_UEB",1,""); textout( text_var,13,63); text(15,5,"CBS-Wert Bremse vorn in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_BR_V",1,""); textout(text_var,15,30); text(15,43,"CBS-Wert Bremse hinten in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_BR_H",1,""); textout(text_var,15,63); text(17,5,"CBS-Wert Filter in %:"); INPAapiResultText(text_var,"AVAI_CBS_WERT_FILT",1,""); textout(text_var,17,30); } } // ********************************* // *** Screen Systemdiagnose GLF *** // ********************************* SCREEN s_systemtest_glf() { string s1, s2; int status = 255; ftextout("Systemtest Gesteuerte Luftführung",0,1,1,1); textout(" ",2,0); textout(" < F1 > Start Systemtest GLF",3,5); textout(" < F2 > Stop Systemtest GLF",4,5); textout(" < F10 > Zurück",5,5); textout("< Shift > + < F10 > INPA beenden", 5,43); INPAapiJob(sgbd,"STATUS_SYSTEMCHECK_GLF","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STATUS_SYSTEMCHECK_GLF",s1); stop(); } else { textout(" ",8,0); INPAapiResultText(s1,"STAT_SYSTEMCHECK_GLF_TEXT",1,""); textout("=== Status Systemcheck ===", 7,0); textout(s1,8,0); } } // ********************************* // *** Screen Systemdiagnose IGR *** // ********************************* SCREEN s_systemtest_igr() { string s1, s2; int status = 255; ftextout("Systemtest IGR deaktivieren",0,1,1,1); textout(" ",2,0); textout(" < F1 > Start Systemtest IGR",3,5); textout(" < F2 > Stop Systemtest IGR",4,5); textout(" < F10 > Zurück",5,5); textout("< Shift > + < F10 > INPA beenden", 5,43); INPAapiJob(sgbd,"STATUS_SYSTEMCHECK_IGR_AUS","",""); INPAapiResultText(s1,"JOB_STATUS",1,""); if (s1 != "OKAY") { messagebox("STATUS_SYSTEMCHECK_IGR_AUS",s1); stop(); } else { textout(" ",8,0); INPAapiResultText(s1,"STAT_SYSTEMCHECK_IGR_TEXT",1,""); textout("=== Status Systemcheck ===", 7,0); textout(s1,8,0); } } // *************************** // *** EWS-Screen *** // *************************** SCREEN s_ews() { ftextout("EWS4" ,3,20,1,1); textout("< F1 > Status" ,12,5); textout("< F2 > Status Sekret-Key" ,13,5); //textout("< F3 > EWS Data schreiben" ,15,5); textout("< F10> Zurück" ,18,5); textout("< Shift > + < F10> Ende" ,18,45); stop(); } SCREEN s_ews_status() { string temp; ftextout("Status EWS",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_EWS","",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { text(1,0,"SG beherrscht EWS 3"); INPAapiResultDigital(logik_var,"STAT_EWS3_CAPABLE",1); digitalout(logik_var,3,1,"JA","NEIN"); text(1,43,"SG beherrscht EWS 4"); INPAapiResultDigital(logik_var,"STAT_EWS4_CAPABLE",1); digitalout(logik_var,3,41,"JA","NEIN"); } LINE("","") { text(1,0,"EWS 3 aktiv"); INPAapiResultDigital(logik_var,"STAT_EWS3_ACTIVE",1); digitalout(logik_var,3,1,"JA","NEIN"); text(1,43,"EWS 4 aktiv"); INPAapiResultDigital(logik_var,"STAT_EWS4_ACTIVE",1); digitalout(logik_var,3,41,"JA","NEIN"); } LINE("","") { text(1,0,"EWS 4 Server secret key locked"); INPAapiResultDigital(logik_var,"STAT_EWS4_SERVER_SK_LOCKED",1); digitalout(logik_var,3,1,"JA","NEIN"); text(1,43,"EWS 4 client secret key locked"); INPAapiResultDigital(logik_var,"STAT_EWS4_CLIENT_SK_LOCKED",1); digitalout(logik_var,3,41,"JA","NEIN"); } LINE("","") { text(1,0,"Status Authentifizierung"); INPAapiResultInt(ganz_zahl,"STAT_CLIENT_AUTHENTICATED",1); inttostring(ganz_zahl,temp); INPAapiResultText(text_var,"STAT_CLIENT_AUTHENTICATED_TXT",1,""); ftextout(blank,3,0,0,2); ftextout(temp + ": " + text_var,3,0,0,2); } } SCREEN s_ews_status_sk() { string strData; int intDataLen; ftextout("Status EWS - Secret Key",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_EWS4_SK","",""); INPAapiCheckJobStatus("OKAY"); LINE("","") { text(1,0,"SecretKey Server"); INPAapiResultBinary("STAT_EWS4_SERVER_SK",1); GetBinaryDataString(strData, intDataLen); ftextout(strData,3,1,0,2); text(1,43,"SecretKey Client"); INPAapiResultBinary("STAT_EWS4_CLIENT_SK",1); GetBinaryDataString(strData, intDataLen); ftextout(strData,3,44,0,2); } } // ******************************* // *** dyn Messwertblock lesen *** // ******************************* SCREEN s_fdyn() { int i_temp_1, i_temp_2; int laenge,anfang,pos1,pos1_alt,pos2,pos2_alt; bool b1; string vartext1,result,label,fileline1,fileline,templine; string s_inhalt1,s_inhalt2,time; string s1, s2, s3 = "", s4 = "", s5, s6, s_temp; long t_offset = 0,count; real rtime; if ( datei_ddli == "" ) { s1 = "C:\EC-Apps\INPA\source\DDLI_DDE7.TXT"; // Definition des Quellpfades für DDLI-Liste; Pfad und Dateiname dürfen nicht verändert werden, sonst funktioniert es nicht mehr fileopen ( s1, "a" ); // Datei öffnen um Daten anzuhängen, wenn Datei noch nicht vorhanden, dann Datei anlegen mit leerem Inhalt filewrite(s3); // Inhalt von s3 wird angehängt (in diesem Falle ist s3 leer, somit werden keine neuen UW-ID angehängt) fileclose(); fileopen( s1, "r" ); // Datei öffnen um zu lesen fileread( s_inhalt1, logik_var ); // Auslesen des Dateiinhalts if ( s_inhalt1 == "" ) // wenn Dateiinhalt leer, dann Aufforderung um neue DDLI-Werte einzugeben { inputtext( s1, "DDLI-Liste anlegen?","Dateiname und Pfad nicht abändern (Pfad muss bereits existieren)!"); getinputstate( i_temp_1 ); // 0 = OK 1 = Abbruch inputstate = i_temp_1; // Abbruch merken if ( i_temp_1 == 0 ) { fileopen ( s1, "w" ); // Datei öffne um zu schreiben inputtext( s3, "DDLI-Werte definieren?","Labels aus Messwertetabelle (z.B.: Epm_nEng;AFS_dm)! Trennzeichen = ';'"); getinputstate( i_temp_1 ); // 0 = OK 1 = Abbruch inputstate = i_temp_1; // Abbruch merken if ( i_temp_1 == 0 ) { inputtext( s4, "DDLI-Werte definieren?","Für die Labels "+s3+" benötigte Results (z.B.: STAT_MOTORDREHZAHL;STAT_LUFTMASSE)!"); getinputstate( i_temp_2); inputstate = i_temp_2; filewrite(s3); // DDLI-Werte speichern filewrite(s4); fileclose(); datei_ddli = s1; // Datei angelegt, Namen merken } else { blankscreen(); stop(); } } else { blankscreen(); stop(); } } else // wenn Datei nicht leer, dann Übergabe des Quellpfades an datei_ddl { datei_ddli = s1; // Datei angelegt, Namen merken } datei_rec = "C:\EC-Apps\INPA\source\Messwerte.TXT"; inputtext( datei_rec, "Datei für Messwertaufzeichnung","Dateiname und Pfad angeben (Pfad muss bereits existieren, Datei wird gelöscht)!"); fileopen( datei_rec, "w" ); // bereits bestehende Messwertdatei wird gelöscht filewrite(""); fileclose(); fileopen( datei_ddli, "r" ); // datei_ddli öffnen und Werte auslesen fileread( s_inhalt1, logik_var ); ftextout("DDLI-Block",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","5;"+s_inhalt1,""); INPAapiCheckJobStatus("OKAY"); delay(500); } else { fileopen( datei_ddli, "r" ); fileread( s_inhalt1, logik_var ); if ( s_inhalt1 == "" ) { blankscreen(); stop(); } else { ftextout("DDLI-Block",1,0,1,0); ftextout("",3,0,0,0); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","5;"+s_inhalt1,""); INPAapiCheckJobStatus("OKAY"); delay(500); } } blankscreen(); LINE("Wert0, Wert1","") { fileread( s_inhalt2, logik_var ); fileclose(); strlen(laenge,s_inhalt2); // Lan: Korr.auf spätest mögliche Position vor erstem Lesevorgang (Beginn) if (t_offset == 0) { gettickcount(t_offset); } // Lan: Korr.auf spätest mögliche Position vor erstem Lesevorgang (Ende) if( laenge > 0 ) { instr(pos2,0,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,0,pos2); else result=s_inhalt2; instr(pos1,0,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,0,pos1); else label=s_inhalt1; templine = "Time"; //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = time + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert2,3","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert4,5","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert6,7","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert8,9","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert10,11","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert13,14","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert15,16","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert17,18","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } } LINE("Wert19,20","") { if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,0,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,10,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); gettickcount(count); count = count - t_offset; longtoreal(count,rtime); realtostring(rtime,"10.0",time); fileline = fileline + ";" + vartext1; ftextout(vartext1,1,0,0,0); pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,20,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,30,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,20,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,40,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,50,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,40,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } if(pos2_alt0) { instr(pos2,pos2_alt,s_inhalt2,";"); if (pos2 != -1) midstr(result,s_inhalt2,pos2_alt,pos2-pos2_alt); else midstr(result,s_inhalt2,pos2_alt,laenge-pos2_alt); instr(pos1,pos1_alt,s_inhalt1,";"); if (pos1 != -1) midstr(label,s_inhalt1,pos1_alt,pos1-pos1_alt); else midstr(label,s_inhalt1,pos1_alt,laenge-pos1_alt); //INPAapiResultText(vartext1,result+"_INFO",1,""); ftextout(label,0,60,0,0); INPAapiResultText(vartext1,result+"_EINH",1,""); ftextout(vartext1,1,70,0,0); templine = templine + ";" + label + "["+vartext1+"]"; INPAapiResultAnalog(zahlen_var,result+"_WERT",1); realtostring(zahlen_var,"5.3",vartext1); ftextout(vartext1,1,60,0,0); fileline = fileline + ";" + vartext1; pos2_alt=pos2+1; pos1_alt=pos1+1; } fileopen(datei_rec,"a"); if (fileline1 == "") { fileline1 = templine; filewrite(fileline1); } filewrite(fileline); fileclose(); } } // *********************** // *** Ansteuerung GLF *** // *********************** SCREEN s_glf() { int z1; userboxclose(0); viewclose(); ftextout("Stellgliedansteuerung GLF",0,5,1,1); z1=3; textout(" Ansteuerbedingung: " + glf,z1,5);z1=z1+2; textout(" < F1 > Kühlerjalousie oben zu",z1,5);z1=z1+1; textout(" < F2 > Kühlerjalousie oben auf",z1,5);z1=z1+1; /* textout(" < F3 > Kühlerjalousie unten zu",z1,5);z1=z1+1; textout(" < F4 > Kühlerjalousie unten auf",z1,5);z1=z1+1; */ textout(" < F5 > Ansteuerung zurück an DME",z1,5);z1=z1+2; textout(" < F10 > Zurück",z1,5); textout("< Shift > + < F10 > INPA beenden",z1,45); glf1_ansteuer(0xFE); glf2_ansteuer(0xFE); delay(250); } // ******************************* // *** Speichern der Messdaten *** // ******************************* SCREEN s_savedata() { string pfad, info, temp; if (ende == 0){ pfad = "C:\EC-Apps\INPA\Messdaten.TXT"; fileopen(pfad, "a"); // Erstellt eine Datei in dem angegebenen Pfad; es können Informationen an die Datei angefügt werden // Auslesen der Informationen, die gespeichert werden sollen INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","JA;CoSCR_st;CoSCR_stSub;SCRAd_ctSlip;SCRAd_facPlaus_Fld_0;SCRAd_facQtyAdap;SCRAd_facQtyAdapRaw_mp;SCRMod_mEstNH3Ld;SCRFFC_rPPMNOxUs;Com_rNOxCat2Ds;Com_rNOxDs;DStgy_stCondDos;Exh_rNOxOfsNoCat2Ds;Exh_rNOxOfsNSCDs;SCRChk_etaActAvrg1_mp;SCRChk_etaActAvrg2_mp;SCRChk_rNOxDiffAvrgUs_mp;SCRChk_rNOxDiffUs_mp;UDC_mRdcAgAct;UDC_mRdcAgDosQnt;DStgy_stMetStgy;Exh_rNOxNoCat2Ds;Exh_rNOxNSCDs;Exh_rO2LinNoCat2Ds;Exh_rO2LinNSCDs;Exh_stLamLeanNoCat2Ds;Exh_stLamLeanNSCDs;Exh_stNOxNSCDs;Exh_stNOxSensDiaEnaNoCat2Ds;Exh_stNOxSensDiaEnaNSCDs;SCRT_tAvrg;UDC_dmRdcAgDos;UDosVlv_rPs;UDosVlv_rDyc;RFC_stRls_mp;SCR_pUPmpP;SCR_rRawUPasTnkLvl;SCR_rUPasTnkLvl;SCR_rRawUTnkLvl;SCR_rUTnkLvl;SCR_tUTnkT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(temp,"STAT_CoSCR_st_WERT",1,""); strcat(info, "Zustand des hydr. SCR Systems:CoSCR_st:", temp); filewrite(info); INPAapiResultText(temp,"STAT_CoSCR_stSub_WERT",1,""); strcat(info, "SubZustand des hydr. SCR Systems:CoSCR_stSub:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRAd_ctSlip_WERT",1,""); strcat(info, "Anzahl der erfolgten Adaptionen:SCRAd_ctSlip:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRAd_facPlaus_Fld0_WERT",1,""); strcat(info, "Plausibilitäten:SCRAd_facPlaus_Fld_0:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRAd_facQtyAdap_WERT",1,""); strcat(info, "Langzeitadaptionsfaktor:SCRAd_facQtyAdap:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRAd_facQtyAdapRaw_mp_WERT",1,""); strcat(info, "Langzeitadaptionsfaktor (roh):SCRAd_facQtyAdapRaw_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRMod_mEstNH3Ld_WERT",1,""); strcat(info, "aktueller NH3-Speicherfüllstand:SCRMod_mEstNH3Ld:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRFFC_rPPMNOxUs_WERT",1,""); strcat(info, "NOx Rohemissionen:SCRFFC_rPPMNOxUs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Com_rNOxCat2Ds_WERT",1,""); strcat(info, "ermittelte NOx - Konzentration 1:Com_rNOxCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Com_rNOxDs_WERT",1,""); strcat(info, "ermittelte NOx - Konzentration 2:Com_rNOxDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_DStgy_stCondDos_WERT",1,""); strcat(info, "Freigabestatus Dosierstrategie (bitweise):DStgy_stCondDos:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rNOxOfsNoCat2Ds_WERT",1,""); strcat(info, "Sensoroffset durch Schubkalibrierung (Downstream):Exh_rNOxOfsNoCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rNOxOfsNSCDs_WERT",1,""); strcat(info, "Sensoroffset durch Schubkalibrierung (Upstream):Exh_rNOxOfsNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRChk_etaActAvrg1_mp_WERT",1,""); strcat(info, "durchschnittlicher tatsächlicher Wirkungsgrad im Temperaturbereich 1:SCRChk_etaActAvrg1_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRChk_etaActAvrg2_mp_WERT",1,""); strcat(info, "durchschnittlicher tatsächlicher Wirkungsgrad im Temperaturbereich 2:SCRChk_etaActAvrg2_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRChk_rNOxDiffAvrgUs_mp_WERT",1,""); strcat(info, "gemittelte normierte Nox-Abweichung zwischen Modellwert und Nox-Sensor vor SCR:SCRChk_rNOxDiffAvrgUs_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRChk_rNOxDiffUs_mp_WERT",1,""); strcat(info, "normierte Nox-Abweichung zwischen Modellwert und Nox-Sensor vor SCR:SCRChk_rNOxDiffUs_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_mRdcAgAct_WERT",1,""); strcat(info, "Harnstoffverbrauch seit letztem Motorstart:UDC_mRdcAgAct:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_mRdcAgDosQnt_WERT",1,""); strcat(info, "Harnstoffverbrauch seit letztem Umpumpvorgang:UDC_mRdcAgDosQnt:", temp); filewrite(info); INPAapiResultText(temp,"STAT_DStgy_stMetStgy_WERT",1,""); strcat(info, "Freigabe der Dosierung durch die Dosierstrategie:DStgy_stMetStgy:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rNOxNoCat2Ds_WERT",1,""); strcat(info, "Downstream - Signal von NOx-Sensor 2 (Offset-korrigiert):Exh_rNOxNoCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rNOxNSCDs_WERT",1,""); strcat(info, "Upstream - Signal von NOx-Sensor 1 (Offset-korrigiert):Exh_rNOxNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rO2LinNoCat2Ds_WERT",1,""); strcat(info, "O2-Konzentration im Abgas nach Sekundärkatalysator:Exh_rO2LinNoCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_rO2LinNSCDs_WERT",1,""); strcat(info, "O2-Konzentration im Abgas nach Hauptkatalysator:Exh_rO2LinNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_stLamLeanNoCat2Ds_WERT",1,""); strcat(info, "Lambdasignal aus NOx-Sensor nach dem NOx-Speicherkatalysator 2:Exh_stLamLeanNoCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_stLamLeanNSCDs_WERT",1,""); strcat(info, "Lambdasignal aus NOx-Sensor nach dem NOx-Speicherkatalysator 1:Exh_stLamLeanNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_stNOxNSCDs_WERT",1,""); strcat(info, "NOx-Statussignal nach NOx-Speicherkatalysator:Exh_stNOxNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_stNOxSensDiaEnaNoCat2Ds_WERT",1,""); strcat(info, "Taupunktende Nox-Sensor nach SCR-KAT:Exh_stNOxSensDiaEnaNoCat2Ds:", temp); filewrite(info); INPAapiResultText(temp,"STAT_Exh_stNOxSensDiaEnaNSCDs_WERT",1,""); strcat(info, "Taupunktende Nox-Sensor vor SCR-KAT:Exh_stNOxSensDiaEnaNSCDs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCRT_tAvrg_WERT",1,""); strcat(info, "Gewichtete mittlere Temperatur des SCR Katalysators:SCRT_tAvrg:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_dmRdcAgDos_WERT",1,""); strcat(info, "Rückmeldung der eindosierten Menge:UDC_dmRdcAgDos:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDosVlv_rPs_WERT",1,""); strcat(info, "Tastverhältnis des Ausgangssignals der Dosierventilendstufe:UDosVlv_rPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDosVlv_rDyc_WERT",1,""); strcat(info, "Sollwert für das Tastverhältnis der Dosierventilendstufe:UDosVlv_rDyc:", temp); filewrite(info); INPAapiResultText(temp,"STAT_RFC_stRls_mp_WERT",1,""); strcat(info, "Freigabestatus Passivtank:RFC_stRls_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_pUPmpP_WERT",1,""); strcat(info, "Pumpendruck des SCR-Systems:SCR_pUPmpP:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_rRawUPasTnkLvl_WERT",1,""); strcat(info, "Rohwert Füllstand Passivtank:SCR_rRawUPasTnkLvl:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_rUPasTnkLvl_WERT",1,""); strcat(info, "Füllstand - Passivtank:SCR_rUPasTnkLvl:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_rRawUTnkLvl_WERT",1,""); strcat(info, "Rohwert Füllstand Aktivtank:SCR_rRawUTnkLvl:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_rUTnkLvl_WERT",1,""); strcat(info, "Füllstand Aktivtank:SCR_rUTnkLvl:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_tUTnkT_WERT",1,""); strcat(info, "Temperatur der Harnstoff-Wasser-Lösung:SCR_tUTnkT:", temp); filewrite(info); INPAapiJob(sgbd,"STATUS_MESSWERTBLOCK_LESEN","ja;SCR_uRawUCatUsT;SCR_uRawUPmpP;SCR_uRawUTnkT;UDC_mRdcAgRmn;UDC_stDetPasTnkReFill;UDC_stDetReFill;UHC_iPLSensDia_mp;UHC_iTnkSensDia_mp;UHC_stCReq;UHC_stCtl;UHC_stDfrstChk;UHtrPL_st;UHtrPL_stPs;UHtrTnk_st;UHtrTnk_stPs;UPmpMot_r;UPmpMot_rPs;UPmpReFl_rPs;UPmpReFl_st;URevVlv_st;URevVlv_stPs;SCR_tUCatUsT",""); INPAapiCheckJobStatus("OKAY"); INPAapiResultText(temp,"STAT_SCR_uRawUCatUsT_WERT",1,""); strcat(info, "Sensorrohspannung des Temperatursensors vor Harnstoffkatalysator:SCR_uRawUCatUsT:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_uRawUPmpP_WERT",1,""); strcat(info, "Sensorrohspannung des Drucksensors der HWL-Pumpe:SCR_uRawUPmpP:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_uRawUTnkT_WERT",1,""); strcat(info, "Sensorrohspannung des Temperatursensors der Harnstoff-Wasser-Lösung:SCR_uRawUTnkT:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_mRdcAgRmn_WERT",1,""); strcat(info, "Resttankmenge:UDC_mRdcAgRmn:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_stDetPasTnkReFill_WERT",1,""); strcat(info, "Nachtankerkennung Passivtank:UDC_stDetPasTnkReFill:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UDC_stDetReFill_WERT",1,""); strcat(info, "Nachtankerkennung Aktivtank:UDC_stDetReFill:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHC_iPLSensDia_mp_WERT",1,""); strcat(info, "Aktueller Stromspiegel der Druckleitung bzw. Fördermodulheizung:UHC_iPLSensDia_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHC_iTnkSensDia_mp_WERT",1,""); strcat(info, "aktueller Stromspiegel der Tankheizung:UHC_iTnkSensDia_mp:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHC_stCReq_WERT",1,""); strcat(info, "Anforderung zum Heizen des Tanks und / oder der Druckleitung:UHC_stCReq:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHC_stCtl_WERT",1,""); strcat(info, "Status der Tanktemperatur und Auftauen der Druckleitung:UHC_stCtl:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHC_stDfrstChk_WERT",1,""); strcat(info, "Status der Auftauprüfung:UHC_stDfrstChk:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHtrPL_st_WERT",1,""); strcat(info, "Status - Sollwert für die Druckleitungsheizung:UHtrPL_st:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHtrPL_stPs_WERT",1,""); strcat(info, "Status der Endstufe für die Druckleitungsheizung:UHtrPL_stPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHtrTnk_st_WERT",1,""); strcat(info, "Status der Endstufe für die Tankheizung:UHtrTnk_st:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UHtrTnk_stPs_WERT",1,""); strcat(info, "Status - Sollwert für die Tankheizung:UHtrTnk_stPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UPmpMot_r_WERT",1,""); strcat(info, "Tastverhältnis zur Ansteuerung des Pumpenmotors (Sollwert):UPmpMot_r:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UPmpMot_rPs_WERT",1,""); strcat(info, "Tastverhältnis zur Ansteuerung des Pumpenmotors (Endstufe):UPmpMot_rPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UPmpReFl_rPs_WERT",1,""); strcat(info, "Tastverhaeltnis an der Endstufe:UPmpReFl_rPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_UPmpReFl_st_WERT",1,""); strcat(info, "Status der Auftauprüfung:UPmpReFl_st:", temp); filewrite(info); INPAapiResultText(temp,"STAT_URevVlv_st_WERT",1,""); strcat(info, "Status - digitaler Ausgangs zum 4/2 Wegeventil (Sollwert):URevVlv_st:", temp); filewrite(info); INPAapiResultText(temp,"STAT_URevVlv_stPs_WERT",1,""); strcat(info, "Status - digitaler Ausgangs zum 4/2 Wegeventil (Endstufe):URevVlv_stPs:", temp); filewrite(info); INPAapiResultText(temp,"STAT_SCR_tUCatUsT_WERT",1,""); strcat(info, "Temperatur vor SCR-Katalysator:SCR_tUCatUsT:", temp); filewrite(info); fileclose(); ende = 1; // ende wird auf 1 gesetzt, wenn die Messdatenspeicherung abgeschlossen ist (bei globalen Variablen mit 0 initialisiert) } LINE ("Messdatenspeicherung",""){ text(5,0,"Messdatenspeicherung abgeschlossen."); text(6,0,"Die ausgelesenen Daten werden in der Datei Messdaten.TXT gespeichert"); text(7,0,"Die Datei finden sie unter C:\EC-Apps\INPA."); } } // -- EOF --