15206 lines
		
	
	
		
			481 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			15206 lines
		
	
	
		
			481 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| //**********************************************************************
 | |
| //*
 | |
| //* INPA Nacharbeitsprogramm für ARS
 | |
| //*
 | |
| //* Sourcedatei ARS_70.SRC
 | |
| //*
 | |
| //**********************************************************************
 | |
| //* History : 
 | |
| //* 
 | |
| //* 13.10.2004 scho/sh V0.30   Kopie von ARS_60 und Anpassung an ARS_70
 | |
| //*                             include inb_ars in inb_70 umbenannt
 | |
| //* 07.12.2004 scho    V0.301  Neuer Menuepunkt bei Steuern: Rampenlogik
 | |
| //*                            Beschriftung bei beweglichen roten Balken verbessert
 | |
| //* 27.01.2004 scho    V0.400  Ansteuerung der Rampenlogik vereinfacht
 | |
| //*                            Einige Eingabefelder ins Menue verschoben
 | |
| //* 04.07.2005 ss      V0.410  Anzeigetexte korrigiert
 | |
| //*                            Merge der src Files BMW und Conti
 | |
| //* 07.07.2005 ss      V0.411  Inbetriebnahme Script angepasst s. INB_70.SRC
 | |
| //*
 | |
| //* 14.07.2005 sh      V0.412  Drehzahlerhöhung beim auf 250 begrenzt wegen SG SW
 | |
| //* 12.09.2005 ss      V1.000  Erweiterung und Anpassung auf SGBD V1.000
 | |
| //* 16.12.2005 ss      V1.001  Motorvariante "N62_TUE2" hinzu
 | |
| //* 16.01.2006 sh      V1.002  Motorvariante "D62M57A0" hinzu
 | |
| //* 17.01.2006 scho    V1.100  Funktionalitaet Hoehenstandssensoren eingefuegt
 | |
| //* 10.04.2006 sj      V1.101  Anpassung neue Versionsnummer SGBD
 | |
| //* 24.04.2006 an      V1.102  Ausgabe PAF und DAF angepaßt
 | |
| //* 25.04.2006 an      V1.102  Höhenstandsdarstellung geändert
 | |
| //* 26.04.2006 an      V1.103  Parametereingabe bei Höhenst. und Sensoren eingefügt
 | |
| //* 26.04.2006 an      V1.103  Ausgabeformat Steigungen angepasst
 | |
| //* 27.04.2006 sh      V5.000  letzter Stand Inpa und include zusammengefasst, Versionsnummer an SGBD angepasst
 | |
| //* 30.08.2006 sh      V5.100  Neue Motorvariante hinzu, N73H_R0, 12 Zyl. Wasserstoff
 | |
| //* 29.09.2006 sh      V5.200  Neue Motorvariante hinzu, MSD85 (N63 8 Zylinder)
 | |
| //* 29.11.2006 an      V5.300  Korrektur CAN Sign. Höhenstände, bei CC-Meldungsauslösung FS sperren, danach freigeben 
 | |
| //* 08.05.2007 sh      V5.400  Aenderung 5.300 war nicht referenziert 
 | |
| //* 11.05.2007 sh      V5.410  Ansteuerung Wasserstoffmotor N73 im include inb_70 korrigiert 
 | |
| //* 19.10.2007 sh      V5.500  Drehzahl bei N54 auf 800 U/min reduziert (inb_70), wegen Problemen bei der Inbetriebnahme, Kennlinienfehler
 | |
| //* 23.01.2008 sh      V5.600  Drehzahl wieder auf 905 U/min erhöht. Identisch mit Cascade.
 | |
| //*************************************************************************
 | |
| 
 | |
| #include "inpa.h"
 | |
| #include "bmw_std.h"
 | |
| 
 | |
| 
 | |
| // Titel, Version, Verantwortung, Steuergeraet
 | |
| string titel  ="Aktive Rollstabilisierung";  // Titel Nacharbeitsprogramm
 | |
| string version="5.600";                        // Version Nacharbeitsprogramm
 | |
| string origin ="BMW TI-432 Helmich";           // Verantwortung Nacharbeitsprogramm
 | |
| string sgbd   ="ARS_70/V5.X";                  // Steuergeraet
 | |
| string gruppe ="D_ARS";                        // 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 Menuepunkt Speicher Lesen
 | |
| 
 | |
| // allgemeine globale Variable
 | |
| string text_var;
 | |
| real   zahlen_var;
 | |
| int    ganz_zahl;
 | |
| bool   logik_var;
 | |
| string job_state;    // JOB_STATUS Variable
 | |
| int    input_state;  // Eingabestatus
 | |
| int input_state_VA;  // Eingabestatus des PropVA Ventils 's_mehr_ventile_steuern'
 | |
| int input_state_HA;
 | |
| int    input_ok=0;   // Eingabe  mit OK beendet
 | |
| 
 | |
| int toggle_1;
 | |
| int toggle_2;
 | |
| int toggle_3;
 | |
| int toggle_4;
 | |
| int toggle_5;
 | |
| 
 | |
| int para_lernen_4;
 | |
| int para_lernen_5;
 | |
| int para_lernen_6;
 | |
| 
 | |
| 
 | |
| // PT CAN Signale
 | |
| int allgemein = 0;
 | |
| int geschw = 0;
 | |
| int drehzahl = 0;
 | |
| int beschl = 0;
 | |
| int temperatur = 0;
 | |
| int diverses = 0;
 | |
| int hoehenstand = 0;
 | |
| 
 | |
| int aif_nr = 0;
 | |
| 
 | |
| // Ventile bestromen ANSTEUERN
 | |
| real strom_sv_ventil;
 | |
| real strom_rv_ventil;
 | |
| real strom_va_ventil;
 | |
| real strom_ha_ventil;
 | |
| 
 | |
| // Steuergeraete Reset wrid nur einmal ausgefuehrt
 | |
| bool sg_reset_einmal = TRUE;
 | |
| bool sv_ein_aus = FALSE;
 | |
| bool rv_ein_aus = FALSE;
 | |
| bool ramp_mode_ein_aus = FALSE;
 | |
| bool PropVA_ein_aus = FALSE;
 | |
| bool PropHA_ein_aus = FALSE;
 | |
| 
 | |
| int strom_sv_1 = 0;
 | |
| int strom_sv_2 = 0;
 | |
| int strom_sv_3 = 0;
 | |
| int strom_sv_4 = 0;
 | |
| 
 | |
| int strom_rv_1 = 0;
 | |
| int strom_rv_2 = 0;
 | |
| int strom_rv_3 = 0;
 | |
| int strom_rv_4 = 0;
 | |
| 
 | |
| int strom_va_1 = 0;
 | |
| int strom_va_2 = 0;
 | |
| int strom_va_3 = 0;
 | |
| 
 | |
| int strom_ha_1 = 0;
 | |
| int strom_ha_2 = 0;
 | |
| int strom_ha_3 = 0;
 | |
| 
 | |
| int strom_sv_mA = 0;
 | |
| int strom_rv_mA = 0;
 | |
| 
 | |
| int strom_va_mA = 0;
 | |
| int strom_ha_mA = 0;
 | |
| 
 | |
| int va_ramp_art = 0;
 | |
| int ha_ramp_art = 0;
 | |
| int rampenvorgabe = 0;
 | |
| 
 | |
| int va_ramp_zeit = 0;
 | |
| int ha_ramp_zeit = 0;
 | |
| int va_ramp_wert = 0;
 | |
| int ha_ramp_wert = 0;
 | |
| 
 | |
| string strom_var_va = "";
 | |
| string strom_var_ha = "";
 | |
| 
 | |
| bool warnung_erfolgt = FALSE;
 | |
| 
 | |
| // Ansteuervariablen zum Hoehenstandsabgleich
 | |
| int hs_abgleichen_1 = 0;
 | |
| int hs_abgleichen_2 = 0;
 | |
| int hs_abgleichen_3 = 0;
 | |
| int hs_abgleichen_4 = 0;
 | |
| int hs_abgleichen_5 = 0;
 | |
| int hs_abgleichen_6 = 0;
 | |
| int hs_abgleichen_7 = 0;
 | |
| int hs_abgleichen_8 = 0;
 | |
| 
 | |
| // 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("<Shift> + < F1 >  KVP-Editor"     , 4,45,0,1);
 | |
|     ftextout("<Shift> + < F8 >  Gesamt"         ,18,45,0,1);
 | |
|     ftextout("<Shift> + < 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("<Shift> + < F4 >  ROMX lesen"    ,10,45,0,1);
 | |
|     if (speicher_lesen_ramxx_flag==TRUE)  ftextout("<Shift> + < F5 >  RAMXX lesen"   ,12,45,0,1);
 | |
| 
 | |
|     ftextout("< F9 >  Bildschirmdruck"          ,20,5,0,1);
 | |
|     ftextout("< F10>  Zurück"                   ,22,5,0,1);
 | |
|     ftextout("<Shift> + < 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("<Shift> + < 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("<Shift> + < 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("<Shift> + < F7 >  Historienspeicher speichern",16,45,0,1);
 | |
|     }
 | |
|     ftextout("< F10>  Zurück"                    ,22,5,0,1);
 | |
|     ftextout("<Shift> + < F10>  Exit"            ,22,45,0,1);
 | |
|   }
 | |
| }
 | |
| // -- EOF --
 | |
| // end of :#include "bmw_std.src"
 | |
| 
 | |
| // Inbetriebnahmeablauf
 | |
| // start of :#include "inb_70.src"
 | |
| //**********************************************************************
 | |
| // diese Datei wird als 'include' File in 'ARS_E65.SRC' aufgerufen
 | |
| // diese Datei wird als 'include' File in 'ARS_60.SRC' aufgerufen
 | |
| // diese Datei wird als 'include' File in 'ARS_70.SRC' aufgerufen
 | |
| //
 | |
| //* 16.02.2004 rd V1.00 Umstellung auf 32-Bit INPA
 | |
| //*                     ELDI-Funktionen entfernt
 | |
| //* 28.06.2005 sh V2.00 Kompletten Ablauf geaendert, wie unter CASCADE
 | |
| //* 04.07.2005 ss V2.10 Ablauf entsprechend Entwickler angepasst
 | |
| //* 07.07.2005 ss V2.11 Reset wieder eingefügt
 | |
| //* 19.07.2005 sh V2.12 Motorsteuergerät "MSV80" hinzu
 | |
| //* 01.12.2005 sh V2.13 Motorsteuergerät "D60M57A0" hinzu
 | |
| //* 05.12.2005 sh V2.14 Motorsteuergerät "MSD80" hinzu
 | |
| //* 16.12.2005 sh V2.15 Motorsteuergerät "N62_TUE2" hinzu
 | |
| //* 16.01.2006 sh V2.16 Motorsteuergerät "D62M57A0" hinzu
 | |
| //* 10.04.2006 sj V2.17 Motorsteuergerät "N73TU_R0" ergänzt           
 | |
| //* 25.04.2006 an V2.18 Standwanken Ausgabe angepasst
 | |
| //* 26.04.2006 an V2.19 F10 zurück verschoben und Rücksprungmenü geändert
 | |
| //* 30.08.2006 sh V2.20 Neue Motorvariante hinzu, N73H_R0, 12 Zyl. Wasserstoff
 | |
| //* 39.09.2006 sh V2.21 Neue Motorvariante hinzu, MSD85 (N63 8-Zylinder)
 | |
| //* 11.05.2007 sh V2.22 Start/ Staop_Systemcheck für N73 Wasserstoffmotor hinzu
 | |
| //* 19.10.2007 sh V1.30 Drehzahl auf 800 U/min reduziert , wegen Problemen bei der Inbetriebnahme, Kennlinienfehler
 | |
| //* 23.01.2008 sh V1.31 Drehzahl wieder auf 905 U/min erhöht. Identisch mit Cascade.
 | |
| //**********************************************************************
 | |
| string fehler_inbetriebnahme = "";
 | |
| string warnung_inbetriebnahme = "";
 | |
| string zusatzinfo_inbetriebnahme = "";
 | |
| 
 | |
| string z1,z4;
 | |
| string leer_string = "";
 | |
| 
 | |
| string fehlertext_1;
 | |
| string fehlertext_2;
 | |
| string zusatzinfotext;
 | |
| 
 | |
| // *****************************************************
 | |
| // ********      Fuer Statistikfile        *************
 | |
| // *****************************************************
 | |
| 
 | |
| string FG_NR   = "";
 | |
| string FZG_TYP = "XX11";
 | |
| string statistik_daten;
 | |
| string statistik_file = "C:\ars_doku.dat";
 | |
| string Uhrzeit = "hh:mm:ss";
 | |
| string Datum = "dd.mm.yyyy";    
 | |
| 
 | |
| // *****************************************************
 | |
| 
 | |
| // Stringarrayvariablen
 | |
| // Zusatzinfo bei der Inbetriebnahme
 | |
| int handleStringArr_Zusatzinfo;
 | |
| //
 | |
| int    s1,s4;
 | |
| int view_flag=0;
 | |
| 
 | |
| int farbe,hintergrund;
 | |
| int state=0;
 | |
| int sets;
 | |
| int ErrorCode;
 | |
| int APIBUSY  = 0;
 | |
| int APIREADY = 1;
 | |
| int APIBREAK = 2;
 | |
| int APIERROR = 3;
 | |
| 
 | |
| // Stringarrayvariablen
 | |
| // konnte Stringarry erfolgreich angelegt werden
 | |
| bool b_handleStringArr_Zusatzinfo;
 | |
| //
 | |
| bool zuendung_ein_test = FALSE;
 | |
| bool fehlerspeicher_loeschen = FALSE;
 | |
| 
 | |
| bool werte_va_lernen = FALSE;
 | |
| bool werte_ha_lernen = FALSE;
 | |
| bool werte_quer_lernen = FALSE;
 | |
| /*
 | |
| bool offset_werte_va = FALSE;
 | |
| bool offset_werte_ha = FALSE;
 | |
| bool offset_werte_quer = FALSE;
 | |
| */
 | |
| bool status_leerlauf = FALSE;
 | |
| bool motordrehzahl_vorgeben = FALSE;
 | |
| bool status_erhoehte_drehzahl = FALSE;
 | |
| bool start_inbetriebnahme_okay = FALSE;
 | |
| bool inbetriebnahme= FALSE;
 | |
| bool status_motor_aus = FALSE;            //DGF 16Jan2001
 | |
| bool sg_reset = FALSE;                    // DGF 03Apr2001
 | |
| bool ehc_bandmodus      = FALSE;    // wenn Fahrzeug mit EHC, dann Bandmodus setzen 
 | |
| bool keine_luftfederung = FALSE;    
 | |
| bool werte_va_schreiben = FALSE;    // Werte schreiben VA
 | |
| bool werte_ha_schreiben = FALSE;    // Werte schreiben HA
 | |
| bool werte_quer_schreiben = FALSE;  // Werte schreiben Querbeschleunigungssensor
 | |
| 
 | |
| bool ARS_TEST_OK = FALSE;
 | |
| bool WEITER      = FALSE;
 | |
| 
 | |
| //
 | |
| // externe Deklaration von Funktionen
 | |
| //
 | |
| meldung_1(in: string text)
 | |
| {
 | |
|   text = text+"                                                                                ";  // Platzhalter fuer Text
 | |
|   ftextout(text,7,5,1,1);     // Ausgabe Text Ablaufschritte
 | |
| }
 | |
| 
 | |
| meldung_2(in: string text)
 | |
| {
 | |
|   text = text+"                                                                                ";  // Platzhalter fuer Text
 | |
|   ftextout(text,10,5,1,1);     // Ausgabe Text Ablaufschritte
 | |
| }
 | |
| meldung_3(in: string text)
 | |
| {
 | |
|   text = text+"                                                                                ";  // Platzhalter fuer Text
 | |
|   ftextout(text,13,5,1,1);     // Ausgabe Text Ablaufschritte
 | |
| }
 | |
| 
 | |
| meldung_4(in: string text)
 | |
| {
 | |
|   text = text+"  sec.    ";     // Platzhalter fuer Text
 | |
|   ftextout(text,26,20,1,1);     // Ausgabe Laufzeit dynamische Pruefung
 | |
| }
 | |
| 
 | |
| //start DGF 16 Jan 2001
 | |
| meldung_5(in: string text)
 | |
| {
 | |
|   text = text+"             ";  // Platzhalter fuer Text
 | |
|   ftextout(text,16,5,1,1);     // Ausgabe Laufzeit dynamische Pruefung
 | |
| }
 | |
| 
 | |
| meldung_6(in: string text)
 | |
| {
 | |
|   text = text+"             ";  // Platzhalter fuer Text
 | |
|   ftextout(text,19,5,1,1);     // Ausgabe Laufzeit dynamische Pruefung
 | |
| }
 | |
| // ende DGF 16jan2001
 | |
| 
 | |
| meldung_7(in: string text)
 | |
| {
 | |
|   text = text+"             ";  // Platzhalter fuer Text
 | |
|   ftextout(text,22,5,1,1);     // Ausgabe Laufzeit dynamische Pruefung
 | |
| }
 | |
| 
 | |
| 
 | |
| print_line(in: string text, in: int zeile, in: int spalte)
 | |
| {
 | |
|    if (zeile == 1) { z1 = text;   s1 = spalte; }
 | |
|    if (zeile == 4) { z4 = text;   s4 = spalte; }
 | |
| }
 | |
| 
 | |
| 
 | |
| delete_line(in: int zeile)
 | |
| {
 | |
|    if (zeile == 1) { z1 = leer_string; }
 | |
|    if (zeile == 4) { z4 = leer_string; }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| action_box_open(in: string text1, in: string text2, in: string text3)
 | |
| {
 | |
|    userboxopen(1,8,0,14,89,"Arbeitshinweis", "");
 | |
|    userboxftextout(1,text1,1,3,2,2);
 | |
|    userboxftextout(1,text2,4,3,2,2);
 | |
|    userboxftextout(1,text3,7,3,2,2);
 | |
| 
 | |
| }
 | |
| 
 | |
| action_box_meldung(in: string text1, in: string text2)
 | |
| {
 | |
|    userboxopen(1,8,0,14,89,"Meldung", "");
 | |
|    userboxsetcolor(1,0,9);
 | |
|    userboxftextout(1,text1,1,18,2,0);
 | |
|    userboxftextout(1,text2,4,18,2,0);
 | |
| }
 | |
| 
 | |
| 
 | |
| //                                                                    
 | |
| //                                Fehler            Warnungen         
 | |
| action_box_meldung_inbetriebnahme(in: string text1, in: string text2 )
 | |
| {
 | |
|    int i = 0;
 | |
|    int j = 0;
 | |
|    int count;
 | |
| //   string zusatzinfo_text = "";
 | |
|    string zusatzinfo_text_action_box = "";
 | |
|    StrArrayGetElementCount( handleStringArr_Zusatzinfo, count );
 | |
| 
 | |
| 
 | |
|    userboxopen( 1, 4, 0, 30, 89, "Inbetriebnahme Meldungen", "" );
 | |
|    userboxsetcolor( 1, 0, 9 );
 | |
| 
 | |
|    userboxftextout( 1, "Fehler:", 1, 1, 1, 0 );
 | |
|    userboxftextout( 1, text1, 3, 1, 1, 0 );
 | |
| 
 | |
|    userboxftextout( 1, "Warnung:", 8, 1, 1, 0 );
 | |
|    userboxftextout( 1, text2, 10, 1, 1, 0 );
 | |
| 
 | |
|    userboxftextout( 1, "Inbetriebnahme Zusatzinformation:", 15, 1, 1, 0 );
 | |
| 
 | |
|    while( i < count ) 
 | |
|    {
 | |
|      StrArrayRead( handleStringArr_Zusatzinfo, i, zusatzinfo_text_action_box );
 | |
|      userboxftextout( 1, zusatzinfo_text_action_box, j + 16 , 1, 1, 0 );
 | |
| 
 | |
|      zusatzinfo_text_action_box = "";
 | |
|      i = i + 1;
 | |
|      j = j + 2;
 | |
|    }
 | |
| }
 | |
| 
 | |
| 
 | |
| message_box_open(in: string meldetext1,in: string meldetext2,in: string meldetext3)
 | |
| {
 | |
|    userboxopen(2,8,0,14,89,"Meldung", "");
 | |
|    userboxsetcolor(2,1,12);
 | |
|    userboxftextout(2,meldetext1,1,3,2,1);
 | |
|    userboxftextout(2,meldetext2,4,3,2,1);
 | |
|    userboxftextout(2,meldetext3,7,3,2,1);
 | |
| }
 | |
| 
 | |
| message_box_iO()
 | |
| {
 | |
|    farbe=10;   // hellgruen
 | |
|    userboxopen(2,17,0,7,89,"Meldung", "");
 | |
|    userboxsetcolor(2,1,farbe);
 | |
|    userboxftextout(2,"i. O.",1,36,2,1);
 | |
|    delay(300);
 | |
| }
 | |
| 
 | |
| message_box_niO()
 | |
| {
 | |
|    farbe=4;    // rot
 | |
|    start();
 | |
|    userboxopen(2,17,0,7,89,"Meldung", "");
 | |
|    userboxsetcolor(2,1,farbe);
 | |
|    userboxftextout(2,"n. i. O.",1,36,2,1);
 | |
|    delay(500);
 | |
| }
 | |
| 
 | |
| 
 | |
| action_box_close()
 | |
| {
 | |
|    userboxclose(1);
 | |
| }
 | |
| 
 | |
| message_box_close()
 | |
| {
 | |
|    userboxclose(2);
 | |
| }
 | |
| 
 | |
| 
 | |
| delete_screen()
 | |
| {
 | |
|    action_box_close();
 | |
|    message_box_close();
 | |
| }
 | |
| 
 | |
| endebehandlung()
 | |
| {
 | |
| 
 | |
| bool rc;              // return code vom Drucker
 | |
| real drehzahl = 0;
 | |
| string dh = "";
 | |
| string sgbd_name = "";
 | |
| string help_api_job0 = "";
 | |
| string fg_nr = "";
 | |
| 
 | |
| int zustand=0;
 | |
| 
 | |
| // noch nicht aktiviert, erst testen
 | |
| 
 | |
| //    INPAapiJob(sgbd,"C_FG_LESEN",";0","");    
 | |
| //    INPAapiResultText(fg_nr,"FG_NR",1,"");
 | |
|  
 | |
|     gettime(Uhrzeit);
 | |
|     getdate(Datum);
 | |
|     statistik_daten = Datum+","+Uhrzeit+","+FZG_TYP+","+fg_nr+","+fehlertext_1+","+fehlertext_2+","+zusatzinfotext+",";
 | |
|     //fileopen(statistik_file,"a");
 | |
|      
 | |
|     if ( ARS_TEST_OK == TRUE )
 | |
|     {
 | |
|        fehlertext_1="";                         // Loeschen
 | |
|        fehlertext_2="";                         // Loeschen
 | |
|        statistik_daten = statistik_daten+"i.O";
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|        PEMProtokollZeile (rc, "");
 | |
|        PEMProtokollZeile (rc, "ARS Inbetriebnahme und Prüfung");
 | |
|        PEMProtokollZeile (rc, "");
 | |
|        PEMProtokollZeile (rc, "Fehlertext :" + fehlertext_1);
 | |
|        PEMProtokollZeile (rc, "Fehlertext :" + fehlertext_2);
 | |
|        PEMProtokollZeile (rc, "Fehlertext :" + zusatzinfotext);
 | |
|        PEMProtokollZeile (rc, "");
 | |
| 
 | |
|        statistik_daten = statistik_daten+"n.i.O";
 | |
|     }
 | |
| 
 | |
|    //filewrite(statistik_daten);
 | |
|    //fileclose();
 | |
|    delay(500);
 | |
|   
 | |
| //  ***************************************************
 | |
| //  ***     Motordrehzahl wieder zurücksetzen       ***
 | |
| //  ***************************************************
 | |
| 
 | |
|     INPAapiJob("D_MOTOR","INITIALISIERUNG","","");
 | |
|     INPAapiResultText(sgbd_name,"VARIANTE",0,"");         // Satz 0 ist richtig!
 | |
| 
 | |
|     if (( sgbd_name == "ME9E65_6" ) || ( sgbd_name == "N73_R0" ))      // Abfrage, ob 8 oder 12 Zylinder Benziner
 | |
|     {         
 | |
|        //infobox(sgbd_name,"ENDE_SYSTEMCHECK_LLERH");     // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
|        help_api_job0 = "ENDE_SYSTEMCHECK_LLERH";          // Jobname für 8 Zylinder oder 12 Zylinder Benziner als Variable 
 | |
|     }  
 | |
|     else 
 | |
|     {
 | |
|       if (( sgbd_name == "MS450DS0" ) || ( sgbd_name == "ME9N62" )  || ( sgbd_name == "MSV70" ) ||     // 6 Zylinder, 8 Zylinder u. 6 Zyl. N52 VVT (NG6)
 | |
|           ( sgbd_name == "ME9N62_2" ) || ( sgbd_name == "N62_TUE" ) || ( sgbd_name == "MSV80" ) ||     // Benziner
 | |
|           ( sgbd_name == "MSD80" )    || ( sgbd_name == "N62_TUE2" )|| ( sgbd_name == "N73TU_R0" ) ||
 | |
|           ( sgbd_name == "MSD85" )    || ( sgbd_name == "N73H_R0" ))                                    
 | |
|       {                                                                                               
 | |
|          //infobox(sgbd_name,"STOP_SYSTEMCHECK_LLERH");   // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
|          help_api_job0 = "STOP_SYSTEMCHECK_LLERH";        // Jobname für 6 und 8 Zylinder Benziner als Variable 
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         if (( sgbd_name == "D50M57A0" ) || ( sgbd_name == "D50M57C0" ) || ( sgbd_name == "D50M57D0" ) ||   // 6 oder 8 Zylinder Diesel und Euro 4
 | |
|             ( sgbd_name == "D51MM670" ) || ( sgbd_name == "D62M57B0" ) || ( sgbd_name == "D50M57E0" ) ||   // E65 und E60
 | |
|             ( sgbd_name == "D63MM670" ) || ( sgbd_name == "D60M57D0" ) || ( sgbd_name == "D60M57A0" ) ||
 | |
|             ( sgbd_name == "D62M57A0" ))
 | |
|         {                                                                  
 | |
| 
 | |
|            //infobox(sgbd_name,"ABGLEICH_VERSTELLEN");    // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
|            help_api_job0 = "ABGLEICH_VERSTELLEN";         // Jobname für Diesel als Variable   
 | |
|            drehzahl = 0;                                  // Leerlaufdrehzahl 660 U/min, Differenz 0 vorgeben
 | |
|            realtostring ( drehzahl, "3.0", dh );         
 | |
|            dh = "LLA"+";"+dh;                             // es müssen 2 Argumente übergeben werden, LLA;0 
 | |
|         } 
 | |
|       }
 | |
|     }
 | |
|     //infobox(sgbd_name,help_api_job0);   // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
|     job_state = "";  
 | |
|     INPAapiJob( sgbd_name, help_api_job0, dh, "" );
 | |
|     INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
|     message_box_close();
 | |
|     
 | |
|     if (job_state == "OKAY")
 | |
|     {
 | |
|        message_box_open("Motordrehzahl zurücksetzen i.O.","","");
 | |
|     }
 | |
|     else  // *********** Jobstatus nicht OKAY   *************
 | |
|     {
 | |
|        message_box_open("Motordrehzahl zurücksetzen n.i.O.",help_api_job0,job_state);
 | |
|     }
 | |
| }    
 | |
|    
 | |
| 
 | |
| //
 | |
| //       **********************************************************
 | |
| //       ***               S c r e e n a u f b a u              ***
 | |
| //       ***   Darstellung und Aktualisierung des Bildschirms   ***
 | |
| //       **********************************************************
 | |
| SCREEN s_inbetriebnahme()
 | |
| {
 | |
|   ftextout( "ARS Inbetriebnahme und Pruefung", 2, 5, 2, 5 );
 | |
|   delay ( 500 );
 | |
| }   
 | |
| //       **************************
 | |
| //       ***    Pruefscreen      ***
 | |
| //       **************************
 | |
| SCREEN s_pruefung()
 | |
| {
 | |
|    ftextout("ARS Dynamische Funktionspruefung",2,5,2,5);
 | |
|    setcolor(1, 8);   // gelb  mit schwarzer Schrift
 | |
| 
 | |
| }
 | |
| //       ****************************************************
 | |
| //       ***             M e n ü a u f b a u              ***
 | |
| //       ****************************************************
 | |
| // ***********************************
 | |
| // *** ueber Menuepkt ANSTEUERN F6 ***
 | |
| // ***********************************
 | |
| // wird ueber F1 aktiviert in ARS_E65.SRC
 | |
| // 
 | |
| MENU m_inbetriebnahme()
 | |
|  {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Auswahlmenue Funktion");
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "Info" )  
 | |
|   {
 | |
|     infobox("Information","Programm zur Inbetriebnahme des ARS-Systems");
 | |
|   }
 | |
|   
 | |
|   ITEM( 2, "Start" )  
 | |
|   {
 | |
|     setstatemachine( ARS_INBETRIEBNAHME );
 | |
|   }
 | |
|   
 | |
|   ITEM( 3, "Stop" )  
 | |
|   {
 | |
|     setstatemachine( F10_ABBRUCH );
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurück" )
 | |
|   {
 | |
|      delete_screen();
 | |
|      setcolor(1,0);
 | |
|      setmenu (m_main);
 | |
|      setscreen(s_steuern,TRUE);
 | |
|          setmenu( m_steuern );
 | |
|   }
 | |
|   
 | |
|   ITEM( 20, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| //       ****************************************************
 | |
| //       ****************************************************
 | |
| //       ****************************************************
 | |
| STATEMACHINE  F10_ABBRUCH()
 | |
| {
 | |
|   INIT
 | |
|    {
 | |
|      delete_screen();
 | |
|      setcolor(1,4);
 | |
|      message_box_open("Abbruch ARS Inbetriebnahme","","");
 | |
| //     delay (2000);
 | |
|      ARS_TEST_OK = FALSE;
 | |
|      fehlertext_1 = "Abbruchtaste F10 gedrueckt";  
 | |
|      endebehandlung();
 | |
|    }
 | |
| }
 | |
| 
 | |
| //   ************************************************************************
 | |
| //   ***  S t a r t   S t a t e m a c h i n e   A b l a u f  G E S A M T  ***
 | |
| //   ***                     Statemachine 1. Ebene                        ***
 | |
| //   *************************************************************************
 | |
| 
 | |
| 
 | |
| //
 | |
| // Aufruf in MENU 'm_inbetriebnahme'
 | |
| //
 | |
| STATEMACHINE ARS_INBETRIEBNAHME()
 | |
| {
 | |
|   INIT
 | |
|   {
 | |
|     setstate ( ZUENDUNG );
 | |
|   }
 | |
| 
 | |
|   // Schritt 1 - Abfrage, ob Zündung Ein 
 | |
|   ZUENDUNG
 | |
|   {
 | |
|     // fehlerhafte Motordrehzahl verhindern
 | |
|     meldung_1( "Zuendung Ein?" );
 | |
| 
 | |
|     callstatemachine( STATUS_KL15 );                                    
 | |
| 
 | |
|     if ( zuendung_ein_test == TRUE )
 | |
|     {
 | |
|        setstate ( IST_MOTOR_AUS );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|        setstate ( PRUEFUNG_AUSWERTUNG );
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Schritt 2
 | |
|   // definiertes Druckniveau an den Ventilen herstellen
 | |
|   IST_MOTOR_AUS
 | |
|   {
 | |
|     callstatemachine( MOTOR_STATUS_AUS );
 | |
| 
 | |
|     // Motor ist aus
 | |
|     // Motordrehzahl ist korrekt
 | |
|     // d.h. KEINE fehlerhafte Motordrehzahl
 | |
|     if ( status_motor_aus == TRUE )
 | |
|     {
 | |
|       setstate ( SG_NICHT_EINSCHLAFEN );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       setstate( PRUEFUNG_AUSWERTUNG );
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Schritt 3
 | |
|   // vermeidet das Einschlafen des SG's am Bus
 | |
|   SG_NICHT_EINSCHLAFEN
 | |
|   {
 | |
|     meldung_1( "Zuendung Ein?" );
 | |
|     callstatemachine( STATUS_KL15 );                                    
 | |
| 
 | |
|     if ( zuendung_ein_test == TRUE )
 | |
|     {
 | |
|        setstate ( FEHLERSPEICHER_LOESCHEN_LESEN );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|        setstate ( PRUEFUNG_AUSWERTUNG );
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Schritt 3b
 | |
|   FEHLERSPEICHER_LOESCHEN_LESEN
 | |
|   {
 | |
|      meldung_2( "Fehlerspeicher Loeschen" );  // DGF 16Jan2001
 | |
|      callstatemachine( FEHLERSPEICHER );
 | |
| 
 | |
|      // Programmablauf wird um 5sec verzoegert
 | |
|      //delay (5000);
 | |
| 
 | |
|      if (fehlerspeicher_loeschen == TRUE)
 | |
|       {
 | |
|         setstate( WERTE_VA_SCHREIBEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|         setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 4
 | |
|   WERTE_VA_SCHREIBEN
 | |
|   {
 | |
|      callstatemachine( OFFSET_WERTE_VA_SCHREIBEN );
 | |
| 
 | |
|      if ( werte_va_schreiben == TRUE )
 | |
|       {
 | |
|          setstate( WERTE_HA_SCHREIBEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|          setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 5
 | |
|   WERTE_HA_SCHREIBEN
 | |
|   {
 | |
|      callstatemachine( OFFSET_WERTE_HA_SCHREIBEN );
 | |
| 
 | |
|      if ( werte_ha_schreiben == TRUE )
 | |
|       {
 | |
|         setstate( WERTE_QUERBESCHL_SCHREIBEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|         setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 6
 | |
|   WERTE_QUERBESCHL_SCHREIBEN
 | |
|   {
 | |
|      callstatemachine( QUERBESCHLEUNIGUNG_SCHREIBEN );
 | |
| 
 | |
|      if ( werte_quer_schreiben == TRUE )
 | |
|      {
 | |
|        setstate( OFFSET_WERTE_VA_LERNEN );
 | |
|      }
 | |
|      else
 | |
|      {
 | |
|        setstate( PRUEFUNG_AUSWERTUNG );
 | |
|      }
 | |
|   }
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////////////
 | |
|   //        Beginn Sensorwerte lernen
 | |
|   //////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   // Schritt 7
 | |
|   OFFSET_WERTE_VA_LERNEN
 | |
|   {
 | |
|      meldung_3( "Offsetwerte Vorderachse lernen" );
 | |
|      callstatemachine( OFFSET_WERTE_VA );
 | |
| 
 | |
|      if ( werte_va_lernen == TRUE )
 | |
|       {
 | |
|          setstate( OFFSET_WERTE_HA_LERNEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|          setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 8
 | |
|   OFFSET_WERTE_HA_LERNEN
 | |
|   {
 | |
|      meldung_5( "Offsetwerte Hinterachse lernen" );
 | |
|      callstatemachine( OFFSET_WERTE_HA );
 | |
| 
 | |
|      if ( werte_ha_lernen == TRUE )
 | |
|       {
 | |
|         setstate( OFFSET_WERTE_QUERBESCHL_LERNEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|         setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 9
 | |
|   OFFSET_WERTE_QUERBESCHL_LERNEN
 | |
|   {
 | |
|      meldung_6( "Offsetwerte Querbeschleunigung lernen" );
 | |
|      callstatemachine( QUERBESCHLEUNIGUNG );
 | |
| 
 | |
|      if ( werte_quer_lernen == TRUE )
 | |
|      {
 | |
|        // Programmablauf wird um 2sec verzoegert
 | |
|        //delay (2000);
 | |
|        setstate( STEUERGERAETE_RESET ); 
 | |
|      }
 | |
|      else
 | |
|      {
 | |
|        setstate( PRUEFUNG_AUSWERTUNG );
 | |
|      }
 | |
|   }
 | |
|   //////////////////////////////////////////////////////////////////////////////////
 | |
|   //        Ende Sensorwerte lernen
 | |
|   //////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   // Schritt 10
 | |
|   STEUERGERAETE_RESET
 | |
|   {
 | |
|     meldung_7( "Steuergeraete Reset erfolgt" );
 | |
| 
 | |
|     callstatemachine( SG_RESET );       // DGF 03.04.2001
 | |
|     if ( sg_reset == TRUE )
 | |
|     {
 | |
|       setstate( STATUS_ABFRAGE_MOTOR );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       setstate( PRUEFUNG_AUSWERTUNG );
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Schritt 11
 | |
|   //FEHLERSPEICHER_LOESCHEN_LESEN
 | |
|   //{
 | |
|   //   meldung_7( "Fehlerspeicher Loeschen" );  // DGF 16Jan2001
 | |
|   //   callstatemachine( FEHLERSPEICHER );
 | |
| 
 | |
|      // Programmablauf wird um 5sec verzoegert
 | |
|      //delay (5000);
 | |
| 
 | |
|   //   if (fehlerspeicher_loeschen == TRUE)
 | |
|   //    {
 | |
|   //      setstate( STATUS_ABFRAGE_MOTOR );
 | |
|   //    }
 | |
|   //   else
 | |
|   //    {
 | |
|   //      setstate( PRUEFUNG_AUSWERTUNG );
 | |
|   //    }
 | |
|   //}
 | |
| 
 | |
|   // Schritt 12
 | |
|   STATUS_ABFRAGE_MOTOR
 | |
|   {
 | |
|      callstatemachine( MOTOR_STATUS );
 | |
| 
 | |
|      if ( status_leerlauf == TRUE )
 | |
|      {
 | |
|        setstate( MOTORDREHZAHL_VORGEBEN );
 | |
|      }
 | |
|     else
 | |
|      {
 | |
|        setstate( PRUEFUNG_AUSWERTUNG );
 | |
|      }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   // Schritt 13
 | |
|   MOTORDREHZAHL_VORGEBEN
 | |
|   {
 | |
|      callstatemachine( MOTORDREHZAHL );
 | |
| 
 | |
|      if ( status_erhoehte_drehzahl == TRUE )
 | |
|       {
 | |
|          setstate( PRUEFUNG_STARTEN );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|         setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 14
 | |
|   PRUEFUNG_STARTEN
 | |
|   {
 | |
|      callstatemachine( STANDWANKEN );
 | |
| 
 | |
|      if ( start_inbetriebnahme_okay == TRUE )
 | |
|       {
 | |
|         setstate( ABFRAGE_PRUEFABLAUF );
 | |
|       }
 | |
|      else
 | |
|       {
 | |
|         setstate( PRUEFUNG_AUSWERTUNG );
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   // Schritt 15
 | |
|   ABFRAGE_PRUEFABLAUF
 | |
|   {
 | |
|      callstatemachine( STATUS_STANDWANKEN );
 | |
| 
 | |
|      setstate( PRUEFUNG_AUSWERTUNG );
 | |
|   }
 | |
| 
 | |
|   
 | |
|   PRUEFUNG_AUSWERTUNG
 | |
|   {
 | |
|      callstatemachine( AUSWERTUNG );
 | |
| 
 | |
|      setstate( ENDE_PRUEFUNG );
 | |
|   }
 | |
|       
 | |
|   ENDE_PRUEFUNG
 | |
|   {
 | |
|      endebehandlung();      // Dokumentation und Fehlerausdruck
 | |
|   }
 | |
| }
 | |
| 
 | |
| // Ende Statemachine "ARS_Inbetriebnahme", 1. Ebene, Pruefablauf gesamt 
 | |
| 
 | |
| 
 | |
| // **********************************************************************
 | |
| // **********  Statemachines  ARS_Inbetriebnahme 2. Ebene  **************
 | |
| // **********      Aufruf Job's und Auswertungen           **************
 | |
| // **********************************************************************
 | |
| 
 | |
| STATEMACHINE MOTOR_STATUS_AUS()
 | |
| {
 | |
| 
 | |
|   real motor_laeuft;
 | |
| //  int zaehler = 0;
 | |
|   // Ausschaltzeit 30 sec.
 | |
|   int zaehler = 30;  
 | |
|   string zaehler_txt = "";
 | |
|   string fehler_drehzahl_motor_wert_z = "";
 | |
|   int fehler_drehzahl_motor_wert ;
 | |
| 
 | |
|   int zaehler_fehler_motor_drehzahl = 0;
 | |
| 
 | |
|   INIT
 | |
|   {
 | |
|      setcolor(1,8);   // gelb mit schwarzer Schrift
 | |
|      action_box_open("Motor MUSS AUS sein!","","");
 | |
|      setstate( STATUS_MOTORDREHZAHL_NULL );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   STATUS_MOTORDREHZAHL_NULL
 | |
|   {
 | |
|     job_state="";
 | |
|     INPAapiJob( sgbd ,"STATUS_CAN_DREHZAHL_ARS", "", "" );
 | |
|     INPAapiResultAnalog(motor_laeuft,"STAT_DREHZAHL_MOTOR_WERT",1);
 | |
|     analogout ( motor_laeuft, 24, 5, 0, 1500, 500, 1000, "4" );
 | |
| 
 | |
|     // Plausibilitaet der Motordrehzahl abpruefen
 | |
|     // Ergebnis liegt nur als Zeichenkette vor
 | |
| 
 | |
|     if ( sgbd == "ARS_e65" ) 
 | |
|     {
 | |
|        INPAapiResultText( fehler_drehzahl_motor_wert_z, "FEHLER_DREHZAHL_MOTOR_WERT", 1, "");
 | |
|        stringtoint( fehler_drehzahl_motor_wert_z, fehler_drehzahl_motor_wert );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       if (( sgbd == "ARS_60" ) || ( sgbd == "ARS_70" )) 
 | |
|       {
 | |
|          INPAapiResultText( fehler_drehzahl_motor_wert_z, "STAT_FEHLER_DREHZAHL_MOTOR_WERT", 1, "");
 | |
|          stringtoint( fehler_drehzahl_motor_wert_z, fehler_drehzahl_motor_wert );
 | |
|       }
 | |
|     }
 | |
|     // Motordrehzahl ist korrekt
 | |
|     // d.h. KEINE fehlerhafte Motordrehzahl
 | |
|     if ( fehler_drehzahl_motor_wert == 0 )
 | |
|     {
 | |
|       // Motor ist AUS
 | |
|       // keine Drehzahl, Wert '0' problematisch, daher 10 U/min
 | |
|       if ( motor_laeuft < 10 ) 
 | |
|       {
 | |
|         status_motor_aus = TRUE;
 | |
|         action_box_close();
 | |
|         //delay(1500);
 | |
|         returnstatemachine();
 | |
|       }
 | |
|       // Motoer laeuft
 | |
|       else
 | |
|       {           
 | |
|         if ( zaehler > 0 )    // wenn Motor nach 30 sec. nicht aus ist, dann Ende
 | |
|         {
 | |
|           zaehler = zaehler - 1;
 | |
|           delay(1000);
 | |
|           setstate( STATUS_MOTORDREHZAHL_NULL );
 | |
|   
 | |
|           inttostring( zaehler, zaehler_txt );
 | |
|           ftextout( "verbleibende Ausschaltzeit", 26, 40, 1, 1 );     
 | |
|           meldung_4( zaehler_txt );
 | |
|   
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           status_motor_aus = FALSE;
 | |
|           fehlertext_1 = "Motor wurde nicht abgeschaltet";
 | |
|           action_box_close();
 | |
|           delay(5000);
 | |
|           returnstatemachine();
 | |
|         }   
 | |
|       }
 | |
|     }
 | |
|     // fehlerhafte Motordrehzahl
 | |
|     else
 | |
|     {
 | |
|       // Wartezeit ob das Motordrehzahlsignal noch gueltig wird
 | |
|       // maximale Wartezeit 20 sec
 | |
|       // 20 sec = 20 * 1000 msec
 | |
|       if ( zaehler_fehler_motor_drehzahl < 20 )
 | |
|       {
 | |
|         // 1000 msec warten
 | |
|         // 1 sec warten
 | |
|         delay( 1000 );
 | |
|         zaehler_fehler_motor_drehzahl = zaehler_fehler_motor_drehzahl + 1;
 | |
| 
 | |
|         // Statemachine nochmal durchlaufen
 | |
|         setstate ( STATUS_MOTORDREHZAHL_NULL ); 
 | |
|       }
 | |
|       // Wartezeit 20 sec ist abgelaufen
 | |
|       else
 | |
|       {
 | |
|         status_motor_aus = FALSE;
 | |
|         fehlertext_1 = "Motordrehzahlsignal war ungueltig";
 | |
|         action_box_close();
 | |
|         delay(1000);
 | |
|         returnstatemachine();
 | |
| 
 | |
|       }
 | |
|     }
 | |
|   }    
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| //*******************************************************************************************
 | |
| //  Werte werden mit dem Job ins SG geschrieben.
 | |
| //  Uebergabe an SGBD... SG sensorwerte als --> '631;19250'
 | |
| //*******************************************************************************************
 | |
| 
 | |
| STATEMACHINE OFFSET_WERTE_VA_SCHREIBEN()  // Schritt 1
 | |
| {
 | |
|   string sensorwerte_va   = "631;19250";    // Einheit [mV;mueV/bar]
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|        // Vorderachsewerte lernen
 | |
|        // '631' --> Sensor Nullpkt.
 | |
|        // '19250' --> Sensor Steigung
 | |
|        INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_VA",sensorwerte_va, "" );
 | |
|        INPAapiResultText(job_state, "JOB_STATUS", 1, "");
 | |
|        
 | |
|        if (job_state == "OKAY")
 | |
|         {
 | |
|            werte_va_schreiben = TRUE;
 | |
|            //delay(500);
 | |
|            returnstatemachine();
 | |
|         }
 | |
|        else   // *****  Job Status nicht OKAY ***********
 | |
|         {
 | |
|            werte_va_schreiben = FALSE;
 | |
|            fehlertext_1 = "Job Status Werte VA schreiben nicht OKAY";
 | |
|            fehlertext_1 = job_state;
 | |
|            returnstatemachine();
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE OFFSET_WERTE_HA_SCHREIBEN()   // Schritt 2      
 | |
| {
 | |
|   string sensorwerte_ha   = "631;19250";     // Einheit [mV;mueV/bar]
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|        // Hinterachsewerte lernen
 | |
|        // '631' --> Sensor Nullpkt.
 | |
|        // '19250' --> Sensor Steigung
 | |
|        INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HA",sensorwerte_ha, "" );
 | |
|        INPAapiResultText(job_state, "JOB_STATUS", 1, "");
 | |
|        
 | |
|        if (job_state == "OKAY")
 | |
|         {
 | |
|            werte_ha_schreiben = TRUE;
 | |
|            //delay(500);
 | |
|            returnstatemachine();
 | |
|         }
 | |
|        else   // *****  Job Status nicht OKAY ***********
 | |
|         {
 | |
|            werte_ha_schreiben = FALSE;
 | |
|            fehlertext_1 = "Job Status Werte HA schreiben nicht OKAY";
 | |
|            fehlertext_1 = job_state;
 | |
|            returnstatemachine();
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE QUERBESCHLEUNIGUNG_SCHREIBEN()   // Schritt 3
 | |
| {
 | |
|   string sensorwert_aquer = "2500;1750";        // Einheit [mV;mV/g] 
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|        // Querbeschleunigungswerte lernen
 | |
|        // '2500' --> Sensor Nullpkt.
 | |
|        // '1750' --> Sensor Steigung
 | |
|        INPAapiJob( sgbd, "START_LERNEN_NEUE_WERTE_QUERBESCH",sensorwert_aquer, "" );
 | |
|        INPAapiResultText(job_state, "JOB_STATUS", 1, "");
 | |
|        
 | |
|        if (job_state == "OKAY")
 | |
|         {
 | |
|            werte_quer_schreiben = TRUE;
 | |
|            //delay(500);
 | |
|            returnstatemachine();
 | |
|         }
 | |
|        else   // *****  Job Status nicht OKAY ***********
 | |
|         {
 | |
|            werte_quer_schreiben = FALSE;
 | |
|            fehlertext_1 = "Job Status Werte Querbeschl. schreiben nicht OKAY";
 | |
|            fehlertext_1 = job_state;
 | |
|            returnstatemachine();
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE OFFSET_WERTE_VA()  // Schritt 4, Sensorwerte lernen
 | |
| {
 | |
| 
 | |
|     string error_job_state = "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR";
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|         job_state="";
 | |
| 
 | |
|         INPAapiJob(sgbd, "START_OFFSET_WERTE_VA", "", "" );
 | |
|         INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
| 
 | |
|         if (job_state == "OKAY")
 | |
|          {
 | |
|             werte_va_lernen = TRUE;
 | |
|             digitalout(FALSE,13,62,"","i.O.");
 | |
|             //delay(1000);
 | |
|             returnstatemachine();
 | |
|          }
 | |
|         else  // *********** Jobstatus nicht OKAY   *************
 | |
|          {
 | |
|             werte_va_lernen = FALSE;
 | |
|             if (job_state == error_job_state)
 | |
|              {
 | |
|                 fehlertext_1 = "Job Status START_OFFSET_WERTE_VA nicht OKAY";
 | |
|                 fehlertext_2 = "Radgeschwind.(DSC), Offsetpegel oder Sensorwerte n.i.O.";
 | |
|                 returnstatemachine();
 | |
|              }
 | |
|             else
 | |
|              { 
 | |
|                 fehlertext_1 = "Job Status START_OFFSET_WERTE_VA nicht OKAY";
 | |
|                 fehlertext_2 = job_state;
 | |
|                 returnstatemachine();
 | |
|              }
 | |
|          }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE OFFSET_WERTE_HA()  // Schritt 5, Sensorwerte lernen
 | |
| {
 | |
| 
 | |
|   string error_job_state = "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR";
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|           job_state="";
 | |
| 
 | |
|           INPAapiJob( sgbd, "START_OFFSET_WERTE_HA", "", "" );
 | |
|           INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
| 
 | |
|           if (job_state == "OKAY")
 | |
|            {
 | |
|              werte_ha_lernen = TRUE;
 | |
|              digitalout(FALSE,16,62,"","i.O.");
 | |
|              //delay(1000);
 | |
|              returnstatemachine();
 | |
|            }
 | |
|           else  // *********** Jobstatus nicht OKAY   *************
 | |
|            {
 | |
|              werte_ha_lernen = FALSE;
 | |
| 
 | |
|              if (job_state == error_job_state)
 | |
|               {
 | |
|                  fehlertext_1 = "Job Status START_OFFSET_WERTE_HA nicht OKAY";
 | |
|                  fehlertext_2 = "Radgeschwind.(DSC), Offsetpegel oder Sensorwerte n.i.O.";
 | |
|                  returnstatemachine();
 | |
|               }
 | |
|              else
 | |
|               { 
 | |
|                  fehlertext_1 = "Job Status START_OFFSET_WERTE_HA nicht OKAY";
 | |
|                  fehlertext_2 = job_state;
 | |
|                  returnstatemachine();
 | |
|               }
 | |
|            }
 | |
|     }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE QUERBESCHLEUNIGUNG()   // Schritt 6, Sensorwerte lernen
 | |
| {
 | |
| 
 | |
|   string error_job_state = "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR";
 | |
| 
 | |
|     INIT
 | |
|     {
 | |
| 
 | |
|         job_state="";
 | |
| 
 | |
|         INPAapiJob( sgbd, "START_OFFSET_QUERBESCH", "", "" );
 | |
|         INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
| 
 | |
|         if (job_state == "OKAY")
 | |
|          {
 | |
|             werte_quer_lernen = TRUE;
 | |
|             digitalout(FALSE,19,62,"","i.O.");
 | |
|             //delay(2000);
 | |
|             returnstatemachine();
 | |
|          }
 | |
|         else  // *********** Jobstatus nicht OKAY   *************
 | |
|          {
 | |
|             werte_quer_lernen = FALSE;
 | |
| 
 | |
|             if (job_state == error_job_state)
 | |
|              {
 | |
|                 fehlertext_1 = "Job Status START_OFFSET_QUERBESCH nicht OKAY";
 | |
|                 fehlertext_2 = "Radgeschwind.(DSC), Offsetpegel oder Sensorwerte  n.i.O.";
 | |
|                 returnstatemachine();
 | |
|              }
 | |
|             else
 | |
|              { 
 | |
|                 fehlertext_1 = "Job Status START_OFFSET_QUERBESCH nicht OKAY";
 | |
|                 fehlertext_2 = job_state;
 | |
|                 returnstatemachine();
 | |
|              }
 | |
|          }
 | |
|     }  
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE SG_RESET()
 | |
| {
 | |
|   INIT
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STEUERGERAETE_RESET", "", "" );
 | |
|     INPAapiResultText(job_state, "JOB_STATUS", 1, "");
 | |
|         
 | |
|     if (job_state == "OKAY")
 | |
|     {
 | |
|       sg_reset = TRUE;
 | |
|       digitalout(FALSE,22,62,"","i.O.");
 | |
| 
 | |
|       // Programmablauf wird um 3sec verzoegert
 | |
|       delay (3000);
 | |
| 
 | |
|       returnstatemachine();
 | |
| 
 | |
|     } 
 | |
|     else   // *****  Jobstatus nicht OKAY ***********
 | |
|     {
 | |
|       sg_reset = FALSE;
 | |
|       fehlertext_1 = "Steuergeraete RESET NICHT OKAY";
 | |
|       fehlertext_2 = job_state;
 | |
|       returnstatemachine();
 | |
|     }
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE FEHLERSPEICHER()
 | |
| {
 | |
| 
 | |
|   INIT
 | |
|   {
 | |
| //        infobox("Fehlerspeicher","loeschen");   // kann zu Testzwecken aktiviert werden
 | |
|      
 | |
|     INPAapiJob(sgbd,"FS_LOESCHEN","","");
 | |
|     INPAapiResultText(job_state, "JOB_STATUS", 1, "");
 | |
|           
 | |
|     if (job_state == "OKAY")
 | |
|     {
 | |
|       fehlerspeicher_loeschen = TRUE;
 | |
|       digitalout(FALSE,10,62,"","i.O.");
 | |
|       //delay(1500);
 | |
|       returnstatemachine();
 | |
|     } 
 | |
|     else   // *****  Jobstatus nicht OKAY ***********
 | |
|     {
 | |
|       fehlerspeicher_loeschen = FALSE;
 | |
|       fehlertext_1 = "Fehlerspeicher loeschen NICHT OKAY";
 | |
|       fehlertext_2 = job_state;
 | |
|       returnstatemachine();
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| STATEMACHINE MOTOR_STATUS()
 | |
| {
 | |
| 
 | |
|   real motor_laeuft;
 | |
|   int zaehler = 120;
 | |
|   string zaehler_txt = "";
 | |
|  
 | |
|   INIT
 | |
|   {
 | |
|     setcolor(1,8);   // gelb mit schwarzer Schrift
 | |
|     ftextout("ARS Inbetriebnahme und Prüfung", 2,5,2,5);
 | |
|     action_box_open("Bitte den Motor starten!","","");
 | |
|     setstate(STATUS_MOTORDREHZAHL);
 | |
|   }
 | |
| 
 | |
|   STATUS_MOTORDREHZAHL
 | |
|   {
 | |
|     job_state="";
 | |
| 
 | |
|     INPAapiJob(sgbd, "STATUS_CAN_DREHZAHL_ARS", "", "" );
 | |
|     INPAapiResultAnalog(motor_laeuft,"STAT_DREHZAHL_MOTOR_WERT",1);
 | |
|     analogout ( motor_laeuft, 26, 40, 0, 1500, 500, 1000, "4" );
 | |
| 
 | |
|     if ((motor_laeuft > 500) && (motor_laeuft < 1000))
 | |
|     {
 | |
|       status_leerlauf = TRUE;
 | |
|       action_box_close();
 | |
|       //delay(1500);
 | |
|       returnstatemachine();
 | |
|     }
 | |
|     else
 | |
|     {           
 | |
|       if ( zaehler > 1 )    // wenn Motor nach 2 min. nicht laeuft, dann Ende
 | |
|       {
 | |
|         zaehler = zaehler - 1;
 | |
|         inttostring( zaehler, zaehler_txt );
 | |
|         ftextout ( "Wartezeit : ", 26, 5, 1 ,1 );
 | |
|         ftextout ( "sec", 26, 27, 1 ,1 );
 | |
|         meldung_4 ( zaehler_txt );
 | |
|         delay(1000);
 | |
|         setstate(STATUS_MOTORDREHZAHL);
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         status_leerlauf = FALSE;
 | |
|         fehlertext_1 = "Motor laeuft nicht mit Leerlaufdrehzahl";
 | |
|         action_box_close();
 | |
|         returnstatemachine();
 | |
|       }
 | |
|     }   
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE MOTORDREHZAHL()
 | |
| {
 | |
|   real drehzahl = 0;
 | |
|   string dh = "";
 | |
|   string sgbd_name = "";
 | |
|   string help_api_job0 = "";
 | |
|   int zaehler = 0;
 | |
|     
 | |
|   INIT
 | |
|   {
 | |
|     message_box_open("Automatische Drehzahlerhöhung","","Motordrehzahl wird erhöht");
 | |
|   
 | |
|     setstate(MOTORDREHZAHL_VORGEBEN);
 | |
|   }
 | |
|         
 | |
|   MOTORDREHZAHL_VORGEBEN
 | |
|   {        
 | |
|     INPAapiJob("D_MOTOR","INITIALISIERUNG","","");
 | |
|     INPAapiResultText(sgbd_name,"VARIANTE",0,"");          // Satz 0 ist richtig!
 | |
| //  infobox("DME Steuergeraet",sgbd_name);                 // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
| //  "MSV70"        für 6 Zylinder N52 (NG6 VVT)
 | |
| //  "MS450DS0"     für 6 Zylinder M54
 | |
| //  "ME9E65_6"     für 8 Zylinder N62
 | |
| //  "ME9N62"       für 8 Zylinder N62 neu ab 09/2003
 | |
| //  "ME9N62_2"     für 8 Zylinder N62 ab 09/2004 E53, E6x 
 | |
| //  "N73_R0"       für 12 Zylinder N73
 | |
| //  "N73TU_R0"     für 8 Zylinder N73
 | |
| //  "D50M57A0"     für 6 Zylinder Diesel M57 E65
 | |
| //  "D50M57C0"     für 6 Zylinder Diesel M57 E6x
 | |
| //  "D50M57D0"     für 6 Zylinder Diesel M57 E6x Euro 4
 | |
| //  "D50M57E0"     für 6 Zylinder Diesel M57 E6x Euro 4
 | |
| //  "D60M57D0"     für 6 Zylinder Diesel M57 E6x Euro 4
 | |
| //  "D62M57B0"     für 6 Zylinder Diesel M57 TUE
 | |
| //  "D51MM670"     für 8 Zylinder Diesel M67
 | |
| //  "D62M57A0"     für 6 Zylinder Diesel M57 
 | |
| //  "N73H_R0"      für 12 Zylinder E68 Wasserstoff
 | |
| 
 | |
| // ****************** 8 Zylinder und 12 Zylinder Benziner *******************
 | |
| 
 | |
|     if(  sgbd_name == "ME9E65_6" )  // unten eingefuegt  || ( sgbd_name == "N73_R0" ) || ( sgbd_name == "N73H_R0" ) )   // N62 oder N73 und Wasserstoff
 | |
|     {
 | |
|        help_api_job0 = "STEUERN_LL_ERH";            // Solldrehzahl 800 U/min 
 | |
|        drehzahl = 80;                               // Faktor 10, max. 255 = 2550 U/min
 | |
|        realtostring ( drehzahl, "3.0", dh );        
 | |
|     }  
 | |
| 
 | |
| // ****************** 8 Zylinder Benziner N73_TU****************
 | |
| 
 | |
|     if( (sgbd_name == "N73TU_R0" ) || ( sgbd_name == "N73_R0" ) || ( sgbd_name == "N73H_R0" ) )   // N73 und N73 Wasserstoff
 | |
|     {
 | |
|        help_api_job0 = "START_SYSTEMCHECK_LLERH";            // Leerlaufdrehzahl erhöhen 
 | |
|        drehzahl = 800;                                       // Solldrehzahl 800 U/min
 | |
|        realtostring ( drehzahl, "3.0", dh );        
 | |
|     }  
 | |
| // ****************** 8 Zylinder Benziner N62 TUE *******************
 | |
| 
 | |
|     if( (sgbd_name == "ME9N62" ) || ( sgbd_name == "ME9N62_2" ) || ( sgbd_name == "N62_TUE" ) ||
 | |
|         ( sgbd_name == "N62_TUE2" ) || ( sgbd_name == "MSD85" ))
 | |
|     {
 | |
|        help_api_job0 = "START_SYSTEMCHECK_LLERH";   // Leerlaufdrehzahl erhöhen                
 | |
|        drehzahl = 800;                              // Solldrehzahl 800 U/min
 | |
|        realtostring ( drehzahl, "3.0", dh );
 | |
|     }  
 | |
| 
 | |
| // ****************** nur 6 Zylinder Benziner M54 *******************
 | |
| 
 | |
|     if( sgbd_name == "MS450DS0" )   // M54, 6 Zylinder Benziner 
 | |
|     {
 | |
|        help_api_job0 = "START_SYSTEMCHECK_LLERH";   // Leerlaufdrehzahl erhöhen               
 | |
|        drehzahl = 850;                              // Solldrehzahl 850 U/min
 | |
|        realtostring ( drehzahl, "3.0", dh );
 | |
|     }  
 | |
| 
 | |
| // ****************** nur 6 Zylinder Benziner N52 (NG6 VVT) *******************
 | |
| 
 | |
|     if( ( sgbd_name == "MSV70" ) || ( sgbd_name == "MSV80" ) || ( sgbd_name == "MSD80" )) 
 | |
|     {
 | |
|        help_api_job0 = "START_SYSTEMCHECK_LLERH";   // Leerlaufdrehzahl erhöhen               
 | |
|        drehzahl = 905;                              // Solldrehzahl 905 U/min
 | |
| //       drehzahl = 800;                                // Drehzahl auf 800 U/min reduziert, 19.10.2007
 | |
|                                                         // H. Kronbeck TD-426 wird die Motordrehzahl bei den betreffenden
 | |
|                                                         // Varianten während der Inbetriebnahme auf 800/min absenken,
 | |
|                                                         // bis eine entsprechende Korrektur der Codierdaten im Steuergerät stattgefunden hat.
 | |
| 
 | |
|        realtostring ( drehzahl, "3.0", dh );
 | |
|     }  
 | |
| 
 | |
| 
 | |
| // ****************** nur 6 Zylinder Diesel M57 *******************
 | |
| 
 | |
|     if( ( sgbd_name == "D50M57A0" ) || ( sgbd_name == "D50M57C0" )  || ( sgbd_name == "D50M57D0" )  ||  // 6 Zylinder Diesel E65, E6x
 | |
|         ( sgbd_name == "D62M57B0" ) || ( sgbd_name == "D50M57E0" )  || ( sgbd_name == "D60M57D0" )  ||  // E70
 | |
|         ( sgbd_name == "D60M57A0" ) || ( sgbd_name == "D62M57A0" )  )
 | |
|     {
 | |
|        help_api_job0 = "ABGLEICH_VERSTELLEN";
 | |
| //     es müssen 2 Argumente übergeben werden, LLA;150 
 | |
|        drehzahl = 250;                               // Leerlaufdrehzahl 660 U/min  plus 267 Umdrehungen
 | |
|        realtostring ( drehzahl, "3.0", dh );         // Solldrehzahl 927 U/min
 | |
|        dh = "LLA"+";"+dh;
 | |
|     }
 | |
| 
 | |
| // ****************** nur 8 Zylinder Diesel M67 *******************
 | |
| 
 | |
|     if( ( sgbd_name == "D51MM670" ) || ( sgbd_name == "D63MM670" ) )  //  8 Zylinder Diesel/ 8 Zylinder Diesel 03/05
 | |
|     {
 | |
|        help_api_job0 = "ABGLEICH_VERSTELLEN";
 | |
| //     es müssen 2 Argumente übergeben werden, LLA;150 
 | |
|        drehzahl = 85;                                // Leerlaufdrehzahl 660 plus 85 Umdrehungen
 | |
|        realtostring ( drehzahl, "3.0", dh );         // Solldrehzahl 745 U/min 
 | |
|        dh = "LLA"+";"+dh;
 | |
|     }
 | |
| 
 | |
| //  ****************************************************************
 | |
| //  ***     Job aus Variablen zusammensetzen und abschicken      ***
 | |
| //  ****************************************************************
 | |
| 
 | |
|     job_state = "";  
 | |
|     INPAapiJob( sgbd_name, help_api_job0, dh, "" );
 | |
|     INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
| 
 | |
|     if (job_state == "OKAY")
 | |
|     {
 | |
|       message_box_close();
 | |
|       delay(500);
 | |
|       setstate (MOTORDREHZAHL_ABFRAGEN);
 | |
|     }
 | |
|     else  // *********** Jobstatus nicht OKAY   *************
 | |
|     {
 | |
|       status_erhoehte_drehzahl = FALSE;
 | |
|       fehlertext_1 = "Drehzahl vorgeben";
 | |
|       fehlertext_2 = job_state;
 | |
|       returnstatemachine();
 | |
|     }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   MOTORDREHZAHL_ABFRAGEN
 | |
|   { 
 | |
|     //INPAapiJob("ARS_E65","STATUS_CAN_DREHZAHL_ARS","","");
 | |
|     INPAapiJob( sgbd, "STATUS_CAN_DREHZAHL_ARS", "", "" );
 | |
|     INPAapiResultAnalog(drehzahl,"STAT_DREHZAHL_MOTOR_WERT",1);
 | |
|     analogout (drehzahl, 24, 5, 500, 2000, 700, 1000, "4" );
 | |
| 
 | |
| //    realtostring ( drehzahl, "4.0", dh );
 | |
| //    infobox("aktuelle Motordrehzahl", dh);   // kann zu Testzwecken aktiviert werden
 | |
| 
 | |
|     if ((drehzahl > 700) && (drehzahl < 1000))     
 | |
|     {
 | |
|       status_erhoehte_drehzahl = TRUE;
 | |
|       message_box_close();
 | |
|   
 | |
|       returnstatemachine();
 | |
|     }
 | |
|     else   // ***********   Motor hat Drehzahl noch nicht erreicht   *************
 | |
|     {
 | |
|       if (zaehler < 10)    // 10 sec warten 
 | |
|       {
 | |
|         zaehler = zaehler+1;
 | |
|         delay (1000);
 | |
|   
 | |
|         setstate( MOTORDREHZAHL_ABFRAGEN);
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         status_erhoehte_drehzahl = FALSE;
 | |
|         message_box_close();
 | |
|         fehlertext_1 = "Erforderlche Drehzahl nicht erreicht";
 | |
|         returnstatemachine();
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE STANDWANKEN()
 | |
| {
 | |
| 
 | |
|   INIT
 | |
|   {
 | |
|     message_box_open("Achtung!","Dynamische Pruefung","Fahrzeug bewegt sich");
 | |
|   
 | |
|     setstate(PRUEFUNG_STARTEN);
 | |
|   }
 | |
| 
 | |
|   PRUEFUNG_STARTEN
 | |
|   {
 | |
|     job_state="";
 | |
| 
 | |
|     INPAapiJob( sgbd, "START_INBETRIEBNAHME", "", "" );
 | |
|     INPAapiResultText(job_state,"JOB_STATUS",1,"");
 | |
| 
 | |
|     if (job_state == "OKAY")
 | |
|     {
 | |
|       start_inbetriebnahme_okay = TRUE;
 | |
|       //delay(1500);
 | |
|       returnstatemachine();
 | |
|     }
 | |
|     else  // *********** Jobstatus nicht OKAY   *************
 | |
|     {
 | |
|       start_inbetriebnahme_okay = FALSE;
 | |
|       fehlertext_1 = "Start Inbetriebnahme";
 | |
|       fehlertext_2 = job_state;
 | |
|       message_box_close();
 | |
|       returnstatemachine();
 | |
|     }
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE STATUS_STANDWANKEN()
 | |
| {
 | |
| 
 | |
|   int zustand = 0;
 | |
|   int fehler_code = 0;
 | |
|   int zaehler = 0;
 | |
|   int anzahl_zusatzinfo = 0;
 | |
|   int i = 1;
 | |
|   int warn_code_hex = 0;
 | |
|  
 | |
|   int length_of_string = 0;
 | |
|   int pos = 0;
 | |
|   int ab = 0;
 | |
|   int aktpos = 0;
 | |
|   int ende_von_string = 0;
 | |
|   string zusatzinfo_ausgabe     = "";
 | |
|   
 | |
|   string zaehler_txt = "";
 | |
|   //string fehler_inbetriebnahme = "";
 | |
|   //string warnung_inbetriebnahme = "";
 | |
|   string fehler_code_txt = "";
 | |
|   string warn_code_hex_text = "";
 | |
|   string var_result_text = "STAT_INBETRIEBNAHME_ZUSATZINFO_TEXT_";
 | |
|   string zusatzinfotext_x = "";
 | |
|   string result_zusatzinfotext_x = "";
 | |
|   string fehlertext_zw = "";
 | |
|   string result_var = "";
 | |
| 
 | |
|   INIT
 | |
|   {
 | |
|     setstate( STATUS_INBETRIEBNAHME );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   STATUS_INBETRIEBNAHME
 | |
|   {
 | |
|     job_state = "";
 | |
|     INPAapiJob( sgbd, "STATUS_INBETRIEBNAHME_ABFRAGEN", "", "" );
 | |
|     INPAapiResultText( job_state, "JOB_STATUS", 1, "" );
 | |
| 
 | |
|     if ( job_state == "OKAY" )
 | |
|     {
 | |
|       delay( 100 );   // Verzoegerungszeit
 | |
|       setstate ( STATUS_LESEN_BYTE_1 ); 
 | |
|     }
 | |
|     else  // *********** Jobstatus nicht OKAY  *************
 | |
|     {
 | |
|       inbetriebnahme = FALSE;
 | |
|       fehlertext_1 = "Status Inbetriebnahme abfragen";
 | |
|       fehlertext_2 = job_state;
 | |
|       message_box_close();
 | |
|       delay( 1500 );
 | |
| 
 | |
|       returnstatemachine();
 | |
|     }
 | |
|   } 
 | |
| 
 | |
| 
 | |
|   STATUS_LESEN_BYTE_1      // ****** Abfrage, ob Test noch laeuft ******
 | |
|   {
 | |
|      INPAapiJob( sgbd, "STATUS_INBETRIEBNAHME_ABFRAGEN", "", "" );
 | |
| //   Result E65: "ZUSTAND" / E60 und E70 anderer Resultname "STAT_ZUSTAND"
 | |
| 
 | |
|      if (sgbd == "ARS_E65")
 | |
|      {
 | |
|        result_var =  "ZUSTAND";
 | |
|      }
 | |
|      else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|      {
 | |
|        result_var =  "STAT_ZUSTAND";
 | |
|      }
 | |
|      INPAapiResultInt( zustand, result_var, 1 );   
 | |
| 
 | |
|      if ( zustand == 0 )         // 0 = Pruefung laeuft, 1 = Pruefung fertig
 | |
|      {
 | |
|          if ( zaehler < 60 )     // max. Zeit vorgeben, dann Abbruch (1 min)
 | |
|          {
 | |
|            zaehler = zaehler + 1;
 | |
|            inttostring( zaehler, zaehler_txt );
 | |
|            ftextout("Pruefzeit",26,40,1,1);     
 | |
|            meldung_4(zaehler_txt);
 | |
|            delay(1000);                     // 1 sec warten, dann wieder lesen 
 | |
|            setstate(STATUS_LESEN_BYTE_1);   // Inbetriebnahme ist fertig, Ergebnisse abfragen
 | |
|          }
 | |
|          else
 | |
|          {
 | |
|            inbetriebnahme = FALSE;
 | |
|            fehlertext_1 = "Zeitueberschreitung Dynamische Pruefung";
 | |
|            message_box_close();
 | |
|            returnstatemachine();
 | |
|          }
 | |
|      }                
 | |
|      else
 | |
|      {
 | |
|        INPAapiJob( sgbd, "STATUS_INBETRIEBNAHME_ABFRAGEN", "", "" );
 | |
|        // E65 "FA_CODE_WERT" / E60 und E70 anderer Resultname "STAT_FA_CODE_WERT"
 | |
| 
 | |
|        if ( sgbd == "ARS_E65" )
 | |
|        {
 | |
|           result_var =  "FA_CODE_WERT";
 | |
|        }
 | |
|        else if (( sgbd == "ARS_60" ) || ( sgbd == "ARS_70" ))
 | |
|        {
 | |
|           result_var =  "STAT_FA_CODE_WERT";
 | |
|        }
 | |
|        INPAapiResultInt(fehler_code,result_var,1);   // Fehlercode auslesen
 | |
|        
 | |
|        result_var = "";
 | |
| 
 | |
|        if ( sgbd == "ARS_E65" )
 | |
|        {
 | |
|          result_var =  "WA_CODE_HEX";
 | |
|        }
 | |
|        else  if (( sgbd == "ARS_60" ) || ( sgbd == "ARS_70" ))
 | |
|        {
 | |
|          result_var =  "STAT_WA_CODE_HEX";
 | |
|        }                                        
 | |
|  
 | |
|        INPAapiResultText( warn_code_hex_text, result_var, 1, "" );     
 | |
|        stringtoint( warn_code_hex_text, warn_code_hex );
 | |
| 
 | |
|           // 0 = Pruefung i.O., 1 = Pruefung n.i.O.  
 | |
|           // if ( fehler_code == 0 ) 
 | |
|           //              siehe SGBD       daten[2] mit Filter verUNDen
 | |
| 
 | |
|           // alte Konvention bis VS1 FSV 6.3.0
 | |
|           //
 | |
|           //             daten[2]   daten[3]
 | |
|           // 2 Byte ---> xxxx xxxZ  WWEEEEEE
 | |
|           // alte i.o Version 'zustand = 1'
 | |
|         
 | |
|           // neue Konvention ab VS2 FSV 6.5.0
 | |
|           //              daten[2]    daten[3]
 | |
|           // 2 Byte ---> Zxxx PxUO  WWEE EEEE
 | |
|           // neue i.o Version 'zustand = 128'
 | |
|           // if ( ( fehler_code == 0 ) && (( zustand == 1 ) || ( zustand == 128 )) )    
 | |
|           //
 | |
|           if ( ( fehler_code == 0 ) && ( ( zustand == 1 ) || (( zustand >= 128 ) && ( zustand <= 139 )) ) )    
 | |
|           {
 | |
|              inttostring ( fehler_code , fehler_code_txt );
 | |
|              //infobox ( "Inbetriebnahme IO", fehler_code_txt );
 | |
| 
 | |
|              // keine Warnungen nur Zusatzinfos vorhanden
 | |
|              // keine Anzeige auf der Oberflaeche, die Zusatzinfo wird in die Datei
 | |
|              // 'ARS_E65.DAT' eingetragen
 | |
|              if ( warn_code_hex == 0 && zustand > 128 )
 | |
|              {
 | |
|                            if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }                                        
 | |
|                
 | |
|                INPAapiResultText( fehler_inbetriebnahme, result_var , 1, "");      
 | |
|                fehlertext_1 = fehler_inbetriebnahme;
 | |
| 
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }                                        
 | |
|                
 | |
|                INPAapiResultText( warnung_inbetriebnahme, result_var, 1, "" );
 | |
|                fehlertext_2 = warnung_inbetriebnahme;
 | |
| 
 | |
|                 if (sgbd == "ARS_E65")
 | |
|                 {
 | |
|                    result_var =  "ANZ_ZUSATZINFOS";
 | |
|                 }
 | |
|                 else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                 {
 | |
|                    result_var =  "STAT_ANZ_ZUSATZINFOS";
 | |
|                 }                                        
 | |
|                 
 | |
|              INPAapiResultInt( anzahl_zusatzinfo, result_var, 1 );
 | |
|              zusatzinfotext = "";
 | |
|                 
 | |
|                 //              bool Varible out            , int Variable out
 | |
|                 //              erzeugen erfolgreich        , HANDLE auf Array
 | |
|                 StrArrayCreate( b_handleStringArr_Zusatzinfo, handleStringArr_Zusatzinfo );
 | |
|                 // Speicherplatz erfolgreich reserviert ?
 | |
|                 if ( b_handleStringArr_Zusatzinfo == FALSE )
 | |
|                   exit();
 | |
| 
 | |
|                                 // Zusatzinformation als string abholen
 | |
|                                 INPAapiResultText( zusatzinfo_inbetriebnahme, "STAT_INBETRIEBNAHME_ZUSATZINFO_TEXT" , 1, "" );                   
 | |
|                 
 | |
|                                 // Länge des Zusatztextes
 | |
|                 strlen(length_of_string, zusatzinfo_inbetriebnahme);
 | |
|                                 
 | |
|                                 // Lesen der ersten Zusatzinfo
 | |
|                                 instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                 aktpos = pos;
 | |
|                                 ab = pos + 1;
 | |
|                                 
 | |
|                                 // Lesen weiterer Zusatzinfos
 | |
|                                 while (ende_von_string < length_of_string)
 | |
|                                 {       
 | |
|                             instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                     // Text Zusatzinfo gefunden und zeilenweise ausgeben
 | |
|                                     if ( pos != -1)
 | |
|                                     {
 | |
|                                         ab = pos + 1; 
 | |
|                                         ende_von_string = pos-2;
 | |
|                                 
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos, ende_von_string);
 | |
|                         StrArrayWrite( handleStringArr_Zusatzinfo, i, zusatzinfo_ausgabe);
 | |
| 
 | |
|                                     aktpos = pos;
 | |
|                                     }
 | |
|                                         // Text Zusatzinfo nicht gefunden bzw. nicht mehr gefunden, letzten Kommentar ausgeben
 | |
|                                     else
 | |
|                                     {
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos , length_of_string);
 | |
|                                     StrArrayWrite( handleStringArr_Zusatzinfo, i+1, zusatzinfo_ausgabe);
 | |
|                                         ende_von_string = length_of_string;
 | |
|                                     }
 | |
|                                  
 | |
|                                 }
 | |
|                
 | |
|                            // 10 sec Anzeige auf dem Schirm
 | |
|                callstatemachine ( WARNUNG_FEHLER_DARSTELLUNG );
 | |
|                // StringArray wird geloescht
 | |
|                StrArrayDestroy ( handleStringArr_Zusatzinfo );
 | |
| 
 | |
|              }   
 | |
|              // nur in diesen beiden Faellen soll eine Anzeige auf dem 
 | |
|              // Bildschirm erfolgen.
 | |
|              //
 | |
|              // vorhandene Warnungen werden angezeigt ( z.B. Luft im VA System )
 | |
|              // es sind KEINE Zusatzinfos vorhanden d.h. 'zustand = 128'
 | |
|              else if ( warn_code_hex != 0 && zustand == 128 )
 | |
|              {
 | |
|                             //              bool Varible out            , int Variable out
 | |
|                 //              erzeugen erfolgreich        , HANDLE auf Array
 | |
|                 StrArrayCreate( b_handleStringArr_Zusatzinfo, handleStringArr_Zusatzinfo );
 | |
| 
 | |
|                 // Speicherplatz erfolgreich reserviert ?
 | |
|                 if ( b_handleStringArr_Zusatzinfo == FALSE )
 | |
|                   exit();
 | |
| 
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }                                        
 | |
|                INPAapiResultText( fehler_inbetriebnahme, result_var , 1, "");      
 | |
|                fehlertext_1 = fehler_inbetriebnahme;
 | |
|            
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }                                        
 | |
| 
 | |
|                INPAapiResultText( warnung_inbetriebnahme, result_var, 1, "" );
 | |
|                fehlertext_2 = warnung_inbetriebnahme;
 | |
| 
 | |
|                            // Ausgabe keine Zusatzinfo vorhanden
 | |
|                            StrArrayWrite( handleStringArr_Zusatzinfo, 1, "keine Zusatzinfo bei Inbetriebnahme");
 | |
| 
 | |
|                // 10 sec Anzeige auf dem Schirm
 | |
|                callstatemachine ( WARNUNG_FEHLER_DARSTELLUNG );
 | |
|              
 | |
|                // StringArray wird geloescht
 | |
|                StrArrayDestroy ( handleStringArr_Zusatzinfo );
 | |
| 
 | |
|              }
 | |
|              // vorhandene Warnungen werden angezeigt ( z.B. Luft im VA System )
 | |
|              // es werden die vorhandenen Zusatzinfos angezeigt; d.h. 'zustand > 128'
 | |
|              else if ( warn_code_hex != 0 && zustand > 128 )
 | |
|              {
 | |
| 
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_FEHLER_TEXT";
 | |
|                }                                        
 | |
|                
 | |
|                INPAapiResultText( fehler_inbetriebnahme, result_var , 1, "");      
 | |
|                fehlertext_1 = fehler_inbetriebnahme;
 | |
| 
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|                }                                        
 | |
|                
 | |
|                INPAapiResultText( warnung_inbetriebnahme, result_var, 1, "" );
 | |
|                fehlertext_2 = warnung_inbetriebnahme;
 | |
| 
 | |
|                if (sgbd == "ARS_E65")
 | |
|                {
 | |
|                  result_var =  "ANZ_ZUSATZINFOS";
 | |
|                }
 | |
|                else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                {
 | |
|                  result_var =  "STAT_ANZ_ZUSATZINFOS";
 | |
|                }                                        
 | |
|  
 | |
|                 /*  Zusatzinfoauswertung fuer Bildschirmdarstellung */
 | |
|                 INPAapiResultInt( anzahl_zusatzinfo, result_var, 1 );
 | |
|                 zusatzinfotext = "";
 | |
|                 
 | |
|                 //              bool Varible out            , int Variable out
 | |
|                 //              erzeugen erfolgreich        , HANDLE auf Array
 | |
|                 StrArrayCreate( b_handleStringArr_Zusatzinfo, handleStringArr_Zusatzinfo );
 | |
|                 // Speicherplatz erfolgreich reserviert ?
 | |
|                 if ( b_handleStringArr_Zusatzinfo == FALSE )
 | |
|                   exit();
 | |
|                 
 | |
|                                 // Zusatzinformation als string abholen
 | |
|                                 INPAapiResultText( zusatzinfo_inbetriebnahme, "STAT_INBETRIEBNAHME_ZUSATZINFO_TEXT" , 1, "" );                   
 | |
|                 
 | |
|                                 // Länge des Zusatztextes
 | |
|                 strlen(length_of_string, zusatzinfo_inbetriebnahme);
 | |
|                                 
 | |
|                                 // Lesen der ersten Zusatzinfo
 | |
|                                 instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                 aktpos = pos;
 | |
|                                 ab = pos + 1;
 | |
|                                 
 | |
|                                 // Lesen weiterer Zusatzinfos
 | |
|                                 while (ende_von_string < length_of_string)
 | |
|                                 {       
 | |
|                             instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                     // Text Zusatzinfo gefunden und zeilenweise ausgeben
 | |
|                                     if ( pos != -1)
 | |
|                                     {
 | |
|                                         ab = pos + 1; 
 | |
|                                         ende_von_string = pos-2;
 | |
|                                 
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos, ende_von_string);
 | |
|                         StrArrayWrite( handleStringArr_Zusatzinfo, i, zusatzinfo_ausgabe);
 | |
| 
 | |
|                                     aktpos = pos;
 | |
|                                     }
 | |
|                                         // Text Zusatzinfo nicht gefunden bzw. nicht mehr gefunden, letzten Kommentar ausgeben
 | |
|                                     else
 | |
|                                     {
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos , length_of_string);
 | |
|                                     StrArrayWrite( handleStringArr_Zusatzinfo, i+1, zusatzinfo_ausgabe);
 | |
|                                         ende_von_string = length_of_string;
 | |
|                                     }
 | |
| 
 | |
|                                 }
 | |
|  
 | |
|                // 10 sec Anzeige auf dem Schirm
 | |
|                callstatemachine ( WARNUNG_FEHLER_DARSTELLUNG );
 | |
|                // StringArray wird geloescht
 | |
|                StrArrayDestroy ( handleStringArr_Zusatzinfo );
 | |
|              }
 | |
| 
 | |
|              // fuer DEBUG Zwecke 
 | |
|              //infobox("Inb Kurzmeldung","Inbetriebnahme TRUE");
 | |
| 
 | |
|              inbetriebnahme = TRUE;
 | |
|              message_box_close();
 | |
|              delay(1500);
 | |
|              returnstatemachine();
 | |
| 
 | |
|           }
 | |
|           // fehlerhafte Inbetriebnahme
 | |
|           else
 | |
|           {
 | |
|              // fuer DEBUG Zwecke 
 | |
|              //infobox("Inb Kurzmeldung","Inbetriebnahme FALSE");
 | |
| 
 | |
|              inbetriebnahme = FALSE;
 | |
| 
 | |
|              if (sgbd == "ARS_E65")
 | |
|              {
 | |
|                result_var =  "INBETRIEBNAHME_FEHLER_TEXT";
 | |
|              }
 | |
|              else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|              {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_FEHLER_TEXT";
 | |
|              }                                        
 | |
|  
 | |
|              INPAapiResultText( fehler_inbetriebnahme, result_var , 1, "");      
 | |
|              //infobox ( "Inbetriebnahmefehler", fehler_inbetriebnahme );
 | |
|              fehlertext_1 = fehler_inbetriebnahme;
 | |
|      
 | |
|              if (sgbd == "ARS_E65")
 | |
|              {
 | |
|                result_var =  "INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|              }
 | |
|              else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|              {
 | |
|                result_var =  "STAT_INBETRIEBNAHME_WARNUNG_TEXT";
 | |
|              }                                        
 | |
| 
 | |
|              INPAapiResultText( warnung_inbetriebnahme, result_var, 1, "" );
 | |
| //                   infobox ( "Inbetriebnahmewarnung", warnung_inbetriebnahme );
 | |
|              fehlertext_2 = warnung_inbetriebnahme;
 | |
| 
 | |
|               // ab VS2 Software --> FSV Stand 6.5.0
 | |
|               // zusaetzliche Ausgabe fuer Fehlerspeicher
 | |
|               // 'INBETRIEBNAHME_FEHLER_ERWEITERT_TEXT'
 | |
|               if ( zustand > 1 )
 | |
|               {
 | |
|                 if (sgbd == "ARS_E65")
 | |
|                 {
 | |
|                   result_var =  "ANZ_ZUSATZINFOS";
 | |
|                 }
 | |
|                 else if ((sgbd == "ARS_60") || ( sgbd == "ARS_70" ))
 | |
|                 {
 | |
|                   result_var =  "STAT_ANZ_ZUSATZINFOS";
 | |
|                 }                                        
 | |
|  
 | |
|                 INPAapiResultInt( anzahl_zusatzinfo, result_var, 1 );
 | |
|                 zusatzinfotext = "";
 | |
|                 
 | |
|                 //              bool Varible out            , int Variable out
 | |
|                 //              erzeugen erfolgreich        , HANDLE auf Array
 | |
|                 StrArrayCreate( b_handleStringArr_Zusatzinfo, handleStringArr_Zusatzinfo );
 | |
|                 // Speicherplatz erfolgreich reserviert ?
 | |
|                 if ( b_handleStringArr_Zusatzinfo == FALSE )
 | |
|                   exit();
 | |
| 
 | |
|                                 // Zusatzinformation als string abholen
 | |
|                                 INPAapiResultText( zusatzinfo_inbetriebnahme, "STAT_INBETRIEBNAHME_ZUSATZINFO_TEXT" , 1, "" );                   
 | |
|                 
 | |
|                                 // Länge des Zusatztextes
 | |
|                 strlen(length_of_string, zusatzinfo_inbetriebnahme);
 | |
|                                 
 | |
|                                 // Lesen der ersten Zusatzinfo
 | |
|                                 instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                 aktpos = pos;
 | |
|                                 ab = pos + 1;
 | |
|                                 
 | |
|                                 // Lesen weiterer Zusatzinfos
 | |
|                                 while (ende_von_string < length_of_string)
 | |
|                                 {       
 | |
|                             instr(pos, ab, zusatzinfo_inbetriebnahme, "Zusatzinfo:");
 | |
|                                     // Text Zusatzinfo gefunden und zeilenweise ausgeben
 | |
|                                     if ( pos != -1)
 | |
|                                     {
 | |
|                                         ab = pos + 1; 
 | |
|                                         ende_von_string = pos-2;
 | |
|                                 
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos, ende_von_string);
 | |
|                         StrArrayWrite( handleStringArr_Zusatzinfo, i, zusatzinfo_ausgabe);
 | |
| 
 | |
|                                     aktpos = pos;
 | |
|                                     }
 | |
|                                         // Text Zusatzinfo nicht gefunden bzw. nicht mehr gefunden, letzten Kommentar ausgeben
 | |
|                                     else
 | |
|                                     {
 | |
|                                         midstr(zusatzinfo_ausgabe, zusatzinfo_inbetriebnahme, aktpos , length_of_string);
 | |
|                                     StrArrayWrite( handleStringArr_Zusatzinfo, i+1, zusatzinfo_ausgabe);
 | |
|                                         ende_von_string = length_of_string;
 | |
|                                     }
 | |
| 
 | |
|                                 }
 | |
|               //zusatzinfo_inbetriebnahme = "";
 | |
|               //zusatzinfo_inbetriebnahme = zusatzinfotext;
 | |
| 
 | |
|               //infobox ( "Zusatzinfo Inbetriebnahme", zusatzinfotext );
 | |
| 
 | |
|               // 10 sec Anzeige auf dem Schirm
 | |
|               callstatemachine ( WARNUNG_FEHLER_DARSTELLUNG );
 | |
| 
 | |
|               // StringArray wird geloescht
 | |
|               StrArrayDestroy ( handleStringArr_Zusatzinfo );
 | |
| 
 | |
| 
 | |
| 
 | |
|              message_box_close();
 | |
|              returnstatemachine();
 | |
|           }
 | |
|      }
 | |
|   }
 | |
| }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE WARNUNG_FEHLER_DARSTELLUNG()
 | |
| {
 | |
|   INIT
 | |
|   {
 | |
| //    setcolor( 1, 4 );   // rot mit schwarzer Schrift
 | |
| //    action_box_open( fehler_inbetriebnahme, warnung_inbetriebnahme, "" );
 | |
|     action_box_meldung_inbetriebnahme ( fehler_inbetriebnahme, warnung_inbetriebnahme );
 | |
|     // 10 sec. Anzeige auf dem Schirm
 | |
|     delay ( 10000 );
 | |
|     action_box_close();
 | |
|     returnstatemachine();
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| STATEMACHINE AUSWERTUNG()     // Schritt 13, Prüfablauf auswerten
 | |
| {
 | |
|     INIT
 | |
|     {
 | |
|         
 | |
|       if (( zuendung_ein_test == TRUE ) && ( status_motor_aus == TRUE ) && 
 | |
|           ( werte_va_schreiben == TRUE ) && ( werte_ha_schreiben == TRUE ) && ( werte_quer_schreiben == TRUE ) &&
 | |
|           ( werte_va_lernen == TRUE ) && ( werte_ha_lernen == TRUE ) && ( werte_quer_lernen == TRUE ) &&
 | |
|           ( sg_reset == TRUE ) && ( fehlerspeicher_loeschen == TRUE ) && ( status_leerlauf == TRUE ) &&
 | |
|           ( status_erhoehte_drehzahl == TRUE ) && ( start_inbetriebnahme_okay == TRUE ) &&
 | |
|           ( inbetriebnahme == TRUE ))
 | |
|        {
 | |
|            ARS_TEST_OK = TRUE;
 | |
|            setcolor(1,10);      // Bildschirm grün
 | |
|            message_box_open("Ende Püfablauf","","Prüfung i.O.");
 | |
|            delay(1500);
 | |
|            returnstatemachine();
 | |
|        }
 | |
|       else  // *********** Pruefung nicht OKAY   *************
 | |
|        {
 | |
|            ARS_TEST_OK = FALSE;
 | |
|            setcolor(1,4);       // Bildschirm rot
 | |
| 
 | |
|            message_box_open("Ende Püfablauf","","Prüfung n.i.O.");
 | |
|            delay(1500);
 | |
|            returnstatemachine();
 | |
|        }
 | |
|     }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| 
 | |
| // Zuendung an/aus
 | |
| STATEMACHINE STATUS_KL15()
 | |
| {
 | |
|   bool kl_15_ein = FALSE;
 | |
|   // Ausschaltzeit 30 sec.
 | |
|   int zaehler = 30;  
 | |
|   string zaehler_txt = "";
 | |
| 
 | |
|   INIT
 | |
|   {
 | |
| //     setcolor( 1, 8 );   // gelb mit schwarzer Schrift
 | |
| //     action_box_open( "Bitte Zuendung einschalten" ,"" ,"" );
 | |
|      setstate( STATUS_KLEMME15_AUS );
 | |
|   }
 | |
| 
 | |
|   STATUS_KLEMME15_AUS
 | |
|   {
 | |
|     INPAapiJob( "UTILITY", "STATUS_ZUENDUNG", "", "" );
 | |
|     INPAapiResultDigital( kl_15_ein, "STAT_ZUENDUNG", 1 );
 | |
|          
 | |
|     if ( kl_15_ein == TRUE )
 | |
|     {
 | |
|       zuendung_ein_test = TRUE;
 | |
|       digitalout(FALSE,7,62,"","i.O.");
 | |
|       action_box_close();
 | |
|       //delay( 1500 );
 | |
|       returnstatemachine();
 | |
|     }
 | |
|     else   // *****  Zuendung ist faelschlicherweise aus ***********
 | |
|     {
 | |
|       setcolor( 1, 8 );   // gelb mit schwarzer Schrift
 | |
|       action_box_open( "Bitte Zuendung einschalten" ,"" ,"" );
 | |
| 
 | |
|       if ( zaehler > 0 )    // wenn Zuendung nach 30 sec. nicht ein ist, dann Ende
 | |
|       {
 | |
|         zaehler = zaehler - 1;
 | |
|         delay(1000);
 | |
|         setstate( STATUS_KLEMME15_AUS );
 | |
| 
 | |
|         inttostring( zaehler, zaehler_txt );
 | |
|         ftextout( "verbleibende Einschaltzeit", 26, 40, 1, 1 );     
 | |
|         meldung_4( zaehler_txt );
 | |
| 
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|        zuendung_ein_test = FALSE;
 | |
|        fehlertext_1 = "Zuendung ist aus";
 | |
|        delay( 2000 );
 | |
|        action_box_close();
 | |
|        returnstatemachine();
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| ///
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ///
 | |
| 
 | |
| // end of :#include "inb_70.src"
 | |
| 
 | |
| // *****************************************************
 | |
| // ********   Bildschirm-Manager-Funktionen*************
 | |
| // *****************************************************
 | |
| 
 | |
| ScriptInit()
 | |
| {}
 | |
| 
 | |
| // ****************************************************
 | |
| // ***             M e n ue a u f b a u              ***
 | |
| // ****************************************************
 | |
| // **************************
 | |
| // *** Statusmenue         ***
 | |
| // **************************
 | |
| // wird ueber F5 aktiviert 'Status lesen'
 | |
| MENU m_status()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Status lesen");
 | |
|   }
 | |
|   
 | |
|   ITEM( 1 ,"SG Reset")  
 | |
|   {
 | |
|     setscreen( s_sgreset, TRUE );
 | |
|     setmenu( m_sgreset ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 2 ,"erw. Ident")  
 | |
|   {
 | |
|     toggle_1 = 1;
 | |
|     setscreen( s_ars_ident, TRUE );
 | |
|     setmenu( m_ars_ident );
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"CAN Sig")  
 | |
|   {
 | |
|     setscreen( s_can_signale_uebersicht, TRUE );
 | |
|     setmenu( m_can_signale ) ;
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 4 ,"Ventile")  
 | |
|   {
 | |
| 
 | |
|     setscreen( s_ventile_status, TRUE );
 | |
|     setmenu( m_ventile_status ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 5 ,"Sensorabgl.")  
 | |
|   {
 | |
|     setscreen( s_sensorabgleich, TRUE );
 | |
|     setmenu( m_sensorabgleich_status ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 6 ,"Sensoren")  
 | |
|   {
 | |
|     setscreen( s_stati_sensor, TRUE);
 | |
|     setmenu(  m_stati_sensor ) ;
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 7 ,"Versorgungen")  
 | |
|   {
 | |
|     setscreen( s_versorgungen, TRUE);
 | |
|     setmenu(  m_stati_versorgungen ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 11 ,"AIF aktuell")  
 | |
|   {
 | |
|     setscreen( s_aif_aktuell_lesen, TRUE );
 | |
|     setmenu( m_aif_aktuell_lesen ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 12 ,"AIF Tabelle")  
 | |
|   {
 | |
|     setscreen( s_aif_tabelle_lesen, TRUE );
 | |
|     setmenu( m_aif_tabelle_lesen ) ;
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 13 ,"PAF DAF")  
 | |
|   {
 | |
|     setscreen( s_paf_daf_indizes, TRUE );
 | |
|     setmenu( m_paf_daf_indizes ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 14 ,"Höhenst.abgl.")  
 | |
|   {
 | |
|     setscreen( s_hoehenstandabgleich,TRUE);
 | |
|     setmenu( m_hoehenstandabgleich_status ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 8 ,"Drucken")  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_main, TRUE );
 | |
|     setmenu( m_main );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** Steuernmenue        ***
 | |
| // **************************
 | |
| // wird ueber F6 aktiviert 'Ansteuern'
 | |
| MENU m_steuern()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Steuern");
 | |
|   }
 | |
|  
 | |
|   ITEM( 1 ,"Inbetriebnahme")  
 | |
|   {
 | |
|     // Implementierung des Screens und des Menues
 | |
|     // siehe include File 'INB_ARS.SRC'
 | |
|     setscreen( s_inbetriebnahme,TRUE);
 | |
|     setmenu( m_inbetriebnahme ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 2 ,"Cockpit")  
 | |
|   {
 | |
|     setscreen( s_cockpit, TRUE );
 | |
|     setmenu( m_cockpit ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Mehr Ventile")  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     rv_ein_aus = FALSE;
 | |
|     ramp_mode_ein_aus = FALSE;
 | |
|     strom_va_1 = 0;
 | |
|     strom_ha_1 = 0;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|     setmenu( m_mehr_ventile_steuern ) ;
 | |
|   }
 | |
|   
 | |
|   ITEM( 4 ,"Ventile bestr." )  
 | |
|   {
 | |
|     setscreen( s_ventile_steuern, TRUE );
 | |
|     setmenu( m_ventile_steuern ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 5 ,"Rampenlogik")  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     rv_ein_aus = FALSE;
 | |
|     ramp_mode_ein_aus = FALSE;
 | |
|     strom_va_1 = 0;
 | |
|     strom_ha_1 = 0;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|     setmenu( m_rampen_steuern ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 6 ,"Sensorabgl.")  
 | |
|   {
 | |
|     setscreen( s_sensorabgleich, TRUE );
 | |
|     setmenu( m_sensorabgleich_steuern ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 7 ,"Höhenst.abgl.")  
 | |
|   {
 | |
|     setscreen( s_hoehenstandabgleich,TRUE);
 | |
|     setmenu( m_hoehenstandabgleich_steuern ) ;
 | |
|   }
 | |
| 
 | |
|   ITEM( 8 ,"Drucken")  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_main, TRUE );
 | |
|     setmenu( m_main );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| // *****************************************************
 | |
| // *********************************
 | |
| // *** ueber Menuepkt status F5 ***
 | |
| // *********************************
 | |
| // *******************************
 | |
| // *** Steuergeraete Reset     ***
 | |
| // *******************************
 | |
| // wird ueber F1 aktiviert 
 | |
| MENU m_sgreset()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Steuergeraete Reset" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "SG reset")  
 | |
|   {
 | |
|       sg_reset_einmal = TRUE;
 | |
|       setscreen( s_sgreset, TRUE );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** Identifikation     ***
 | |
| // **************************
 | |
| // wird ueber F2 aktiviert 
 | |
| MENU m_ars_ident()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Identifikation Nacharbeitung" );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *******************************
 | |
| // *** PT CAN Signale          ***
 | |
| // *******************************
 | |
| // wird ueber F3 aktiviert 
 | |
| MENU m_can_signale()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "PT CAN Signale" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "Allgemein" )  
 | |
|   {
 | |
|     allgemein = 1;
 | |
|     geschw = 0;
 | |
|     drehzahl = 0;
 | |
|     beschl = 0;
 | |
|     temperatur = 0;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "Geschw." )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 1;
 | |
|     drehzahl = 0;
 | |
|     beschl = 0;
 | |
|     temperatur = 0;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 3, "Drehzahl" )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 0;
 | |
|     drehzahl = 1;
 | |
|     beschl = 0;
 | |
|     temperatur = 0;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 4, "Beschl." )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 0;
 | |
|     drehzahl = 0;
 | |
|     beschl = 1;
 | |
|     temperatur = 0;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 5, "Temp." )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 0;
 | |
|     drehzahl = 0;
 | |
|     beschl = 0;
 | |
|     temperatur = 1;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 6, "Diverses" )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 0;
 | |
|     drehzahl = 0;
 | |
|     beschl = 0;
 | |
|     temperatur = 0;
 | |
|     diverses = 1;
 | |
|     hoehenstand = 0;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 7, "Höhenstände" )  
 | |
|   {
 | |
|     allgemein = 0;
 | |
|     geschw = 0;
 | |
|     drehzahl = 0;
 | |
|     beschl = 0;
 | |
|     temperatur = 0;
 | |
|     diverses = 0;
 | |
|     hoehenstand = 1;
 | |
|     setscreen( s_can_signale, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *******************************
 | |
| // *** Ventilemenue status     ***
 | |
| // *******************************
 | |
| // wird ueber F4 aktiviert 
 | |
| MENU m_ventile_status()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Ventile");
 | |
|   }
 | |
| 
 | |
|   // Lesen
 | |
|   ITEM( 1 ,"SV lesen")  
 | |
|   {
 | |
|     setscreen( s_sv_ventil, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 2 ,"RV lesen")  
 | |
|   {
 | |
|     setscreen( s_rv_ventil, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Prop VA lesen")  
 | |
|   {
 | |
|     setscreen( s_va_ventil, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 4 ,"Prop HA lesen")  
 | |
|   {
 | |
|     setscreen( s_ha_ventil, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ************************************
 | |
| // *** Sensorabgleichmenue 'STATUS' ***
 | |
| // ************************************
 | |
| // wird ueber F5 aktiviert 
 | |
| MENU m_sensorabgleich_status()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Sensorabgleichwerte auslesen");
 | |
|   }
 | |
| 
 | |
|   // Lesen
 | |
|   ITEM( 1 ,"Offsets lesen")  
 | |
|   {
 | |
|     setscreen( s_sensorabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| // ************************************
 | |
| // *** Sensorabgleichmenue 'STATUS' ***
 | |
| // ************************************
 | |
| // wird ueber Shift F4 aktiviert 
 | |
| MENU m_hoehenstandabgleich_status()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Höhenstandswerte auslesen");
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| // *******************************
 | |
| // *** Stati Sensoren          ***
 | |
| // *******************************
 | |
| // wird ueber F6 aktiviert 
 | |
| MENU m_stati_sensor()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Sensoren Status" );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *******************************
 | |
| // *** Versorgungen            ***
 | |
| // *******************************
 | |
| // wird ueber F7 aktiviert 
 | |
| MENU m_stati_versorgungen()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Versorgungen" );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *******************************
 | |
| // *** AIF UIF Aktuell lesen   ***
 | |
| // *******************************
 | |
| // wird ueber 'Shift F1' aktiviert 
 | |
| MENU m_aif_aktuell_lesen()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Aktuelles AIF Info; ausgelesen ueber '1A 86'" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
| 
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *******************************
 | |
| // *** AIF UIF Detail lesen    ***
 | |
| // *******************************
 | |
| // wird ueber 'Shift F2' aktiviert 
 | |
| MENU m_aif_tabelle_lesen()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "AIF Tabelle der bereits bestehenden Eintraege" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "AIF 1" )  
 | |
|   {
 | |
|     aif_nr = 1;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 2, "AIF 2" )  
 | |
|   {
 | |
|     aif_nr = 2;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 3, "AIF 3" )  
 | |
|   {
 | |
|     aif_nr = 3;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
|   ITEM( 4, "AIF 4" )  
 | |
|   {
 | |
|     aif_nr = 4;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 5, "AIF 5" )  
 | |
|   {
 | |
|     aif_nr = 5;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 6, "AIF 6" )  
 | |
|   {
 | |
|     aif_nr = 6;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
|   ITEM( 7, "AIF 7" )  
 | |
|   {
 | |
|     aif_nr = 7;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 8, "AIF 8" )  
 | |
|   {
 | |
|     aif_nr = 8;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 9, "AIF 9" )  
 | |
|   {
 | |
|     aif_nr = 9;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "AIF 10" )  
 | |
|   {
 | |
|     aif_nr = 10;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 11, "AIF 11" )  
 | |
|   {
 | |
|     aif_nr = 11;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
|   ITEM( 12, "AIF 12" )  
 | |
|   {
 | |
|     aif_nr = 12;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 13, "AIF 13" )  
 | |
|   {
 | |
|     aif_nr = 13;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
|   
 | |
|   ITEM( 14, "AIF 14" )  
 | |
|   {
 | |
|     aif_nr = 14;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 15, "AIF 15" )  
 | |
|   {
 | |
|     aif_nr = 15;
 | |
|     setscreen( s_aif_detail_lesen, TRUE );
 | |
|     setmenu( m_aif_detail_lesen );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 18, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 19, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
| 
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
|   }
 | |
| 
 | |
|   ITEM( 20, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *******************************
 | |
| // *** AIF UIF Detail lesen    ***
 | |
| // *******************************
 | |
| MENU m_aif_detail_lesen()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     if ( aif_nr != 0 )
 | |
|       setmenutitle( "Anwender Info Feld Detail lesen" );
 | |
|     else
 | |
|       setmenutitle( "Aktuelles AIF Info" );
 | |
|     
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
| 
 | |
|     if ( aif_nr != 0 )
 | |
|     {
 | |
| //      setscreen( s_aif_lesen, TRUE );
 | |
| //      setmenu( m_aif_lesen );
 | |
|       setscreen( s_aif_tabelle_lesen, TRUE );
 | |
|       setmenu( m_aif_tabelle_lesen );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       setscreen( s_status, TRUE );
 | |
|       setmenu( m_status );
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ********************************************
 | |
| // ***  PAF DAF Indizes darstellen (lesen)  ***
 | |
| // ********************************************
 | |
| // wird ueber 'Shift F3' aktiviert 
 | |
| MENU m_paf_daf_indizes()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "PAF und DAF Filenamen" );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_status, TRUE );
 | |
|     setmenu( m_status );
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** Cockpit Meldungen  ***
 | |
| // **************************
 | |
| // wird ueber F2 aktiviert 
 | |
| MENU m_cockpit()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Cockpit Meldungen" );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 1, "Ueb. ein" )  
 | |
|   {
 | |
|     toggle_1 = 1;
 | |
|     setscreen( s_cockpit_anzeige, TRUE );
 | |
|     setmenu( m_cockpit );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "Regel. ein" )  
 | |
|   {
 | |
|     toggle_2 = 2;
 | |
|     setscreen( s_cockpit_anzeige, TRUE );
 | |
|     setmenu( m_cockpit );
 | |
|   }
 | |
| 
 | |
|   ITEM( 3, "Fail Safe" )  
 | |
|   {
 | |
|     toggle_3 = 3;
 | |
|     setscreen( s_cockpit_anzeige, TRUE );
 | |
|     setmenu( m_cockpit );
 | |
|   }
 | |
| 
 | |
|   ITEM( 4, "Oelverlust" )  
 | |
|   {
 | |
|     toggle_4 = 4;
 | |
|     setscreen( s_cockpit_anzeige, TRUE );
 | |
|     setmenu( m_cockpit );
 | |
|   }
 | |
| 
 | |
|   ITEM( 5, "FS temp" )  
 | |
|   {
 | |
|     toggle_5 = 5;
 | |
|     setscreen( s_cockpit_anzeige, TRUE );
 | |
|     setmenu( m_cockpit );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern, TRUE );
 | |
|     setmenu( m_steuern );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *******************************
 | |
| // *** Ventilemenue steuern    ***
 | |
| // *** Mehrfachbestromung      ***
 | |
| // *******************************
 | |
| // wird ueber F3 aktiviert 
 | |
| MENU m_mehr_ventile_steuern()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Simultanbestromung von SV,RV,PropVA,PropHA");
 | |
|   }
 | |
|   
 | |
|   // Sicherheitsventil
 | |
|   ITEM( 1, "SV EIN" )  
 | |
|   {
 | |
|     sv_ein_aus = TRUE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "SV AUS" )  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Richtungsventil
 | |
|   ITEM( 3, "RV EIN" )  
 | |
|   {
 | |
|     rv_ein_aus = TRUE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 4, "RV AUS" )  
 | |
|   {
 | |
|     rv_ein_aus = FALSE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Propventil Voderachse (VA) bestromen
 | |
|   // Eingabe von Stromwert erforderlich
 | |
|   ITEM( 5, "PropVA EIN" )  
 | |
|   {
 | |
|     // fuer einmaligen Aufruf der SGBD
 | |
|     strom_va_1 = 1;
 | |
|     PropVA_ein_aus = TRUE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 6, "PropVA AUS" )  
 | |
|   {
 | |
|     // fuer einmaligen Aufruf der SGBD
 | |
|     strom_va_1 = 0;
 | |
|     PropVA_ein_aus = FALSE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Propventil Voderachse (HA)
 | |
|   // Eingabe von Stromwert erforderlich
 | |
|   ITEM( 7, "PropHA EIN" )  
 | |
|   {
 | |
|     strom_ha_1 = 1;
 | |
|     PropHA_ein_aus = TRUE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "PropHA AUS" )  
 | |
|   {
 | |
|     strom_ha_1 = 0;
 | |
|     PropHA_ein_aus = FALSE;
 | |
|     setscreen( s_mehr_ventile_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Shift F8
 | |
|   ITEM( 18, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     rv_ein_aus = FALSE;
 | |
|     ramp_mode_ein_aus = FALSE;
 | |
|     PropVA_ein_aus = FALSE;
 | |
|     PropHA_ein_aus = FALSE;
 | |
|     strom_va_1 = 0;
 | |
|     strom_ha_1 = 0;
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern, TRUE );
 | |
|     setmenu( m_steuern );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *******************************
 | |
| // *** Ventilemenue steuern    ***
 | |
| // ***      Rampenlogik        ***
 | |
| // *******************************
 | |
| // wird ueber F3 aktiviert 
 | |
| MENU m_rampen_steuern()
 | |
| {
 | |
|   int int_eingabe_tmp;
 | |
|   int int_eingabe_tmp2;
 | |
| 
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Rampenlogik fuer Ventilansteuerung");
 | |
|   }
 | |
|   
 | |
|   // Sicherheitsventil
 | |
|   ITEM( 1, "SV EIN" )  
 | |
|   {
 | |
|     sv_ein_aus = TRUE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "SV AUS" )  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Richtungsventil
 | |
|   ITEM( 3, "RV EIN" )  
 | |
|   {
 | |
|     rv_ein_aus = TRUE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 4, "RV AUS" )  
 | |
|   {
 | |
|     rv_ein_aus = FALSE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Propventil Voderachse (VA) bestromen
 | |
|   // Eingabe von Rampenrichtung erforderlich
 | |
|   ITEM( 5, "PropVA EIN" )  
 | |
|   {
 | |
|     // fuer einmaligen Aufruf der SGBD
 | |
|     PropVA_ein_aus = TRUE;
 | |
| 
 | |
|     int_eingabe_tmp = va_ramp_art;
 | |
|     inputint( int_eingabe_tmp, "Proportionalventil VA", 
 | |
|              "Rampenrichtung (0 = Halt, 1 = Auf, 2 = Ab)", 0, 2 );
 | |
|     getinputstate( input_state_VA );
 | |
|     if ( input_state_VA == 0 ) {   va_ramp_art  = int_eingabe_tmp; }
 | |
|     // Dialog schliessen
 | |
|     userboxclose( 0 );
 | |
|     viewclose();
 | |
| 
 | |
|     if(0 == va_ramp_zeit)
 | |
|     {
 | |
|         inputint( int_eingabe_tmp, "Proportionalventil VA", 
 | |
|                   "Zeit ist Null, Neueingabe in 0.01 s", 0, 6000 );
 | |
|         getinputstate( input_state_VA );
 | |
|         if ( input_state_VA == 0 ) {   va_ramp_zeit  = int_eingabe_tmp; }
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|     }
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 6, "PropVA AUS" )  
 | |
|   {
 | |
|     // fuer einmaligen Aufruf der SGBD
 | |
|     PropVA_ein_aus = FALSE;
 | |
|     va_ramp_art = 0;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   // Propventil Voderachse (HA)
 | |
|   // Eingabe von Stromwert erforderlich
 | |
|   ITEM( 7, "PropHA EIN" )  
 | |
|   {
 | |
|     PropHA_ein_aus = TRUE;
 | |
| 
 | |
|     int_eingabe_tmp = ha_ramp_art;
 | |
|     inputint( int_eingabe_tmp, "Proportionalventil HA", 
 | |
|              "Rampenrichtung (0 = Halt, 1 = Auf, 2 = Ab)", 0, 2 );
 | |
|     getinputstate( input_state_VA );
 | |
|     if ( input_state_VA == 0 ) {   ha_ramp_art  = int_eingabe_tmp; }
 | |
|     // Dialog schliessen
 | |
|     userboxclose( 0 );
 | |
|     viewclose();
 | |
| 
 | |
|     if(0 == ha_ramp_zeit)
 | |
|     {
 | |
|         inputint( int_eingabe_tmp, "Proportionalventil HA", 
 | |
|                   "Zeit ist Null, Neueingabe in 0.01 s", 0, 6000 );
 | |
|         getinputstate( input_state_VA );
 | |
|         if ( input_state_VA == 0 ) {   ha_ramp_zeit  = int_eingabe_tmp; }
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|     }
 | |
| 
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "PropHA AUS" )  
 | |
|   {
 | |
|     PropHA_ein_aus = FALSE;
 | |
|     ha_ramp_art = 0;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 11, "Rampe EIN" )  
 | |
|   {
 | |
|     ramp_mode_ein_aus = TRUE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 12, "Rampe AUS" )  
 | |
|   {
 | |
|     ramp_mode_ein_aus = FALSE;
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 13, "Vorgabe Strom" )  
 | |
|   {
 | |
|     int_eingabe_tmp = va_ramp_wert;
 | |
|     int_eingabe_tmp2 = ha_ramp_wert;
 | |
|     if ((TRUE == ramp_mode_ein_aus)&&(0 != rampenvorgabe))
 | |
|     {    // Vorgabenwechsen --> Warnung mit ausgeben!
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Strom", 
 | |
|                     "Steuerstrom in mA, Rampe wird automatisch deaktiviert!", 
 | |
|                     "Proportionalventil VA", "Proportionalventil HA", 0, 3000, 0, 3000);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               rampenvorgabe = 0;
 | |
|               warnung_erfolgt = FALSE;
 | |
|               ramp_mode_ein_aus = FALSE;
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|          }
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|          rampenvorgabe = 0;
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Strom", 
 | |
|                     "Steuerstrom in mA", "Proportionalventil VA", "Proportionalventil HA",
 | |
|                     0, 3000, 0, 3000);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|               warnung_erfolgt = FALSE;
 | |
|          }
 | |
|     }
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 14, "Vorgabe Druck" )  
 | |
|   {
 | |
|     int_eingabe_tmp = va_ramp_wert;
 | |
|     int_eingabe_tmp2 = ha_ramp_wert;
 | |
|     if ((TRUE == ramp_mode_ein_aus)&&(1 != rampenvorgabe))
 | |
|     {    // Vorgabenwechsen --> Warnung mit ausgeben!
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Druck", 
 | |
|                     "Steuerdruck in 0.1 bar, Rampe wird automatisch deaktiviert!",
 | |
|                     "Proportionalventil VA", "Proportionalventil HA", 0, 2500, 0, 2500);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               rampenvorgabe = 1;
 | |
|               ramp_mode_ein_aus = FALSE;
 | |
|               warnung_erfolgt = FALSE;
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|          }
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|          rampenvorgabe = 1;
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Druck", 
 | |
|                     "Steuerdruck in 0.1 bar", "Proportionalventil VA", "Proportionalventil HA",
 | |
|                     0, 2500, 0, 2500);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|               warnung_erfolgt = FALSE;
 | |
|          }
 | |
|     }
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 15, "Vorgabe TV" )  
 | |
|   {
 | |
|     int_eingabe_tmp = va_ramp_wert;
 | |
|     int_eingabe_tmp2 = ha_ramp_wert;
 | |
|     if ((TRUE == ramp_mode_ein_aus)&&(2 != rampenvorgabe))
 | |
|     {    // Vorgabenwechsen --> Warnung mit ausgeben!
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Tastverhältnis", 
 | |
|                     "Tastverhältnis in 0.1 %, Rampe wird automatisch deaktiviert!", 
 | |
|                     "Proportionalventil VA", "Proportionalventil HA", 0, 1000, 0, 1000);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               rampenvorgabe = 2;
 | |
|               ramp_mode_ein_aus = FALSE;
 | |
|               warnung_erfolgt = FALSE;
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|          }
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|          rampenvorgabe = 2;
 | |
|          input2int( int_eingabe_tmp, int_eingabe_tmp2, "Rampenvorgabe Tastverhältnis", 
 | |
|                     "Tastverhältnis in 0.1 %", "Proportionalventil VA", "Proportionalventil HA",
 | |
|                     0, 1000, 0, 1000);
 | |
|          getinputstate( input_state_VA );
 | |
|          if ( input_state_VA == 0 )
 | |
|          { // Eingabe wurde mit OK abgeschlossen, Eingabe uebernehmen
 | |
|               va_ramp_wert = int_eingabe_tmp;
 | |
|               ha_ramp_wert = int_eingabe_tmp2;
 | |
|               warnung_erfolgt = FALSE;
 | |
|          }
 | |
|     }
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
|   
 | |
|   ITEM( 16, "Rampenzeit" )  
 | |
|   {
 | |
|     int_eingabe_tmp = va_ramp_zeit;
 | |
|     int_eingabe_tmp2 = ha_ramp_zeit;
 | |
|     input2int( int_eingabe_tmp, int_eingabe_tmp2, "Vorgabe Rampenzeit",
 | |
|                    "Rampenzeit in 0.01 s", "Proportionalventil VA", "Proportionalventil HA",
 | |
|                    0, 6000, 0, 6000);
 | |
| 
 | |
|     getinputstate( input_state_VA );
 | |
|     if ( input_state_VA == 0 )
 | |
|     { // Eingabe uebernehmen
 | |
|      va_ramp_zeit = int_eingabe_tmp;
 | |
|      ha_ramp_zeit = int_eingabe_tmp2;
 | |
|     }
 | |
|     // Dialog schliessen
 | |
|     userboxclose( 0 );
 | |
|     viewclose();
 | |
|     
 | |
|     setscreen( s_rampen_steuern, TRUE );
 | |
|   }
 | |
|   // Shift F8
 | |
|   ITEM( 18, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     rv_ein_aus = FALSE;
 | |
|     ramp_mode_ein_aus = FALSE;
 | |
|     PropVA_ein_aus = FALSE;
 | |
|     PropHA_ein_aus = FALSE;
 | |
|     strom_va_1 = 0;
 | |
|     strom_ha_1 = 0;
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern, TRUE );
 | |
|     setmenu( m_steuern );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *******************************
 | |
| // *** Ventilemenue steuern    ***
 | |
| // *** Einzelbestromung        ***
 | |
| // *******************************
 | |
| // wird ueber F4 aktiviert 
 | |
| MENU m_ventile_steuern()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Ventile konstant und dauerhaft bestromen");
 | |
|   }
 | |
| 
 | |
| 
 | |
|   // Ventile ansteuern, bestromen
 | |
|   ITEM( 4 ,"SV bestrom")  
 | |
|   {
 | |
|     strom_sv_ventil = 0;
 | |
|     setscreen( s_sv_schreiben, TRUE);
 | |
|     setmenu( m_sv_ventil_schreiben );
 | |
|   }
 | |
|   
 | |
|   ITEM( 5 ,"RV bestrom")  
 | |
|   {
 | |
|     strom_rv_ventil = 0;
 | |
|     setscreen( s_rv_schreiben, TRUE);
 | |
|     setmenu( m_rv_ventil_schreiben );
 | |
|   }
 | |
| 
 | |
|   ITEM( 6 ,"PropVA bestrom")  
 | |
|   {
 | |
|     strom_va_ventil = 0;
 | |
|     setscreen( s_va_schreiben, TRUE);
 | |
|     setmenu( m_va_ventil_schreiben );
 | |
|   }
 | |
|   
 | |
|   ITEM( 7 ,"PropHA bestrom")  
 | |
|   {
 | |
|     strom_ha_ventil = 0;
 | |
|     setscreen( s_ha_schreiben, TRUE);
 | |
|     setmenu( m_ha_ventil_schreiben );
 | |
|   }
 | |
|   
 | |
|   ITEM( 1, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern, TRUE );
 | |
|     setmenu( m_steuern );
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ************************************
 | |
| // *** Sicherheitsventil schreiben  ***
 | |
| // ************************************
 | |
| MENU m_sv_ventil_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Sicherheitsventil bestromen" );
 | |
|   }
 | |
| 
 | |
|   // 
 | |
|   ITEM( 1 ,"Strom mF")  
 | |
|   {
 | |
|     strom_sv_1 = 1;
 | |
|     setscreen( s_sv1_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 2 ,"Strom oF")  
 | |
|   {
 | |
|     strom_sv_2 = 1;
 | |
|     setscreen( s_sv2_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Hochlauf")  
 | |
|   {
 | |
|     strom_sv_3 = 1;
 | |
|     setscreen( s_sv3_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 4 ,"PushHold")  
 | |
|   {
 | |
|     // Sicherheitsventil wird nur einmal aufgerufen
 | |
|     // wird nach nochmaligem Druecken erneut ausgefuehrt
 | |
|     // nach 2 sec. wird die Bestromung eingestellt
 | |
|     strom_sv_4 = 1;
 | |
|     setscreen( s_sv4_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 5 ,"Dauer PH")  
 | |
|   {
 | |
|     // Sicherheitsventil wird immer wieder zyklisch aufgerufen
 | |
|     setscreen( s_sv_ventil_pushhold_dauer_schreiben, TRUE);
 | |
|     setmenu( m_sv_ventil_pushhold_dauer_schreiben );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_ventile_steuern, TRUE );
 | |
|     setmenu( m_ventile_steuern );
 | |
| 
 | |
|     strom_sv_1 = 0;
 | |
|     strom_sv_2 = 0;
 | |
|     strom_sv_3 = 0;
 | |
|     strom_sv_4 = 0;
 | |
|     
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ************************************
 | |
| // *** Sicherheitsventil schreiben  ***
 | |
| // ************************************
 | |
| MENU m_sv_ventil_pushhold_dauer_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Sicherheitsventil wird dauerbestromt" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "EIN" )  
 | |
|   {
 | |
|     sv_ein_aus = TRUE;
 | |
|     setscreen( s_sv_ventil_pushhold_dauer_schreiben, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "AUS" )  
 | |
|   {
 | |
|     sv_ein_aus = FALSE;
 | |
|     setscreen( s_sv_ventil_pushhold_dauer_schreiben, TRUE );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_sv_schreiben, TRUE );
 | |
|     setmenu( m_sv_ventil_schreiben );
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ************************************
 | |
| // ***  Richtungsventil schreiben   ***
 | |
| // ************************************
 | |
| MENU m_rv_ventil_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Richtungsventil bestromen" );
 | |
|   }
 | |
| 
 | |
|   // 
 | |
|   ITEM( 1 ,"Strom mF")  
 | |
|   {
 | |
|     strom_rv_1 = 1;
 | |
|     setscreen( s_rv1_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 2 ,"Strom oF")  
 | |
|   {
 | |
|     strom_rv_2 = 1;
 | |
|     setscreen( s_rv2_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Hochlauf")  
 | |
|   {
 | |
|     strom_rv_3 = 1;
 | |
|     setscreen( s_rv3_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 4 ,"PushHold")  
 | |
|   {
 | |
|     strom_rv_4 = 1;
 | |
|     setscreen( s_rv4_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 5 ,"Dauer PH")  
 | |
|   {
 | |
|     // Sicherheitsventil wird immer wieder zyklisch aufgerufen
 | |
|     setscreen( s_rv_ventil_pushhold_dauer_schreiben, TRUE);
 | |
|     setmenu( m_rv_ventil_pushhold_dauer_schreiben );
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_ventile_steuern, TRUE );
 | |
|     setmenu( m_ventile_steuern );
 | |
| 
 | |
|     strom_rv_1 = 0;
 | |
|     strom_rv_2 = 0;
 | |
|     strom_rv_3 = 0;
 | |
|     strom_rv_4 = 0;
 | |
|     
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ************************************
 | |
| // *** Sicherheitsventil schreiben  ***
 | |
| // ************************************
 | |
| MENU m_rv_ventil_pushhold_dauer_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Richtungsventil wird dauerbestromt" );
 | |
|   }
 | |
| 
 | |
|   ITEM( 1, "EIN" )  
 | |
|   {
 | |
|     rv_ein_aus = TRUE;
 | |
|     setscreen( s_rv_ventil_pushhold_dauer_schreiben, TRUE );
 | |
|   }
 | |
| 
 | |
|   ITEM( 2, "AUS" )  
 | |
|   {
 | |
|     rv_ein_aus = FALSE;
 | |
|     setscreen( s_rv_ventil_pushhold_dauer_schreiben, TRUE );
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Print" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_rv_schreiben, TRUE );
 | |
|     setmenu( m_rv_ventil_schreiben );
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ************************************
 | |
| // ***  Propventil VA schreiben   ***
 | |
| // ************************************
 | |
| MENU m_va_ventil_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Proportionalventil VA bestromen" );
 | |
|   }
 | |
| 
 | |
|   // 
 | |
|   ITEM( 1 ,"Strom mF")  
 | |
|   {
 | |
|     strom_va_1 = 1;
 | |
|     setscreen( s_va1_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 2 ,"Strom oF")  
 | |
|   {
 | |
|     strom_va_2 = 1;
 | |
|     setscreen( s_va2_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Hochlauf")  
 | |
|   {
 | |
|     strom_va_3 = 1;
 | |
|     setscreen( s_va3_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_ventile_steuern, TRUE );
 | |
|     setmenu( m_ventile_steuern );
 | |
| 
 | |
|     strom_va_1 = 0;
 | |
|     strom_va_2 = 0;
 | |
|     strom_va_3 = 0;
 | |
|     
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ************************************
 | |
| // ***  Propventil HA schreiben   ***
 | |
| // ************************************
 | |
| MENU m_ha_ventil_schreiben()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle( "Proportionalventil HA bestromen" );
 | |
|   }
 | |
| 
 | |
|   // 
 | |
|   ITEM( 1 ,"Strom mF")  
 | |
|   {
 | |
|     strom_ha_1 = 1;
 | |
|     setscreen( s_ha1_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
|   ITEM( 2 ,"Strom oF")  
 | |
|   {
 | |
|     strom_ha_2 = 1;
 | |
|     setscreen( s_ha2_ventil_schreiben, TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Hochlauf")  
 | |
|   {
 | |
|     strom_ha_3 = 1;
 | |
|     setscreen( s_ha3_ventil_schreiben, TRUE);
 | |
|   }
 | |
|   
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_ventile_steuern, TRUE );
 | |
|     setmenu( m_ventile_steuern );
 | |
| 
 | |
|     strom_ha_1 = 0;
 | |
|     strom_ha_2 = 0;
 | |
|     strom_ha_3 = 0;
 | |
|     
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *************************************
 | |
| // *** Sensorabgleichmenue 'STEUERN' ***
 | |
| // *************************************
 | |
| // wird ueber F6 aktiviert 
 | |
| MENU m_sensorabgleich_steuern()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Sensorabgleichwerte festlegen");
 | |
|   }
 | |
| 
 | |
|   // Lesen
 | |
|   ITEM( 1 ,"Offsets lesen")  
 | |
|   {
 | |
|     setscreen( s_sensorabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
| 
 | |
|   // Lernen mit Grenzwertueberwachung
 | |
|   ITEM( 3 ,"Null mG")  
 | |
|   {
 | |
|     toggle_1 = 0;
 | |
|     toggle_2 = 0;
 | |
|     toggle_3 = 0;
 | |
| 
 | |
|     setscreen( s_nullpkt_lernen , TRUE);
 | |
|     setmenu( m_nullpkt_lernen );
 | |
|   }
 | |
|  
 | |
|   ITEM( 11 ,"Para HA")  
 | |
|   {
 | |
|     para_lernen_4 = 1;
 | |
|     setscreen( s_sensorabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 12 ,"Para VA")  
 | |
|   {
 | |
|     para_lernen_5 = 1;
 | |
|     setscreen( s_sensorabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 13 ,"Para AQuer")  
 | |
|   {
 | |
|     para_lernen_6 = 1;
 | |
|     setscreen( s_sensorabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
| 
 | |
|   ITEM( 9, "Zurueck" )  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern, TRUE );
 | |
|     setmenu( m_steuern );
 | |
| 
 | |
|     para_lernen_4 = 0;
 | |
|     para_lernen_5 = 0;
 | |
|     para_lernen_6 = 0;
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10, "Ende" )  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *****************************************
 | |
| // *** Höhenstandabgleichmenue 'STEUERN' ***
 | |
| // *****************************************
 | |
| // wird ueber F7 aktiviert 
 | |
| MENU m_hoehenstandabgleich_steuern()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Höhenstandslernwerte Abgleichen");
 | |
|   }
 | |
| 
 | |
|   ITEM( 1 ,"Abgl vorne li")  
 | |
|   {
 | |
|     hs_abgleichen_1 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 2 ,"Abgl vorne re")  
 | |
|   {
 | |
|     hs_abgleichen_2 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 3 ,"Abgl hinten li")  
 | |
|   {
 | |
|     hs_abgleichen_3 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 4 ,"Abgl hinten re")  
 | |
|   {
 | |
|     hs_abgleichen_4 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 11 ,"Para vorne li")  
 | |
|   {
 | |
|     hs_abgleichen_5 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 12 ,"Para vorne re")  
 | |
|   {
 | |
|     hs_abgleichen_6 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 13 ,"Para hinten li")  
 | |
|   {
 | |
|     hs_abgleichen_7 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 14 ,"Para hinten re")  
 | |
|   {
 | |
|     hs_abgleichen_8 = 1;
 | |
|     setscreen( s_hoehenstandabgleich , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
|   
 | |
|   ITEM( 9 ,"Zurueck")  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_steuern ,TRUE);
 | |
|     setmenu( m_steuern );
 | |
| 
 | |
|     hs_abgleichen_1 = 0;
 | |
|     hs_abgleichen_2 = 0;
 | |
|     hs_abgleichen_3 = 0;
 | |
|     hs_abgleichen_4 = 0;
 | |
|     hs_abgleichen_5 = 0;
 | |
|     hs_abgleichen_6 = 0;
 | |
|     hs_abgleichen_7 = 0;
 | |
|     hs_abgleichen_8 = 0;
 | |
| 
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // ****************************************
 | |
| // *** Nullpunkte der Sensoren lernen   ***
 | |
| // *** mit Grenzwertueberwachung        ***
 | |
| // ****************************************
 | |
| MENU m_nullpkt_lernen()
 | |
| {
 | |
|   INIT 
 | |
|   {
 | |
|     setmenutitle("Nullpunkte der Drucksensoren lernen");
 | |
|   }
 | |
| 
 | |
|   ITEM( 1 ,"VA lernen")  
 | |
|   {
 | |
|     toggle_1 = 1;
 | |
|     
 | |
|     setscreen( s_nullpkt_lernen , TRUE);
 | |
|   }
 | |
| 
 | |
|   // Lernen
 | |
|   ITEM( 2 ,"HA lernen")  
 | |
|   {
 | |
|     toggle_2 = 1;
 | |
| 
 | |
|     setscreen( s_nullpkt_lernen , TRUE);
 | |
|   }
 | |
| 
 | |
|   // Lernen
 | |
|   ITEM( 3 ,"Quer lernen")  
 | |
|   {
 | |
|     toggle_3 = 1;
 | |
| 
 | |
|     setscreen( s_nullpkt_lernen , TRUE);
 | |
|   }
 | |
| 
 | |
|   ITEM( 8, "Drucken" )  
 | |
|   {
 | |
|     printscreen();
 | |
|   }
 | |
|   
 | |
|   ITEM( 9 ,"Zurueck")  
 | |
|   {
 | |
|     userboxclose(0);
 | |
|     viewclose();
 | |
|     setscreen( s_sensorabgleich ,TRUE);
 | |
|     setmenu( m_sensorabgleich_steuern );
 | |
| 
 | |
|     toggle_1 = 0;
 | |
|     toggle_2 = 0;
 | |
|     toggle_3 = 0;
 | |
| 
 | |
|   }
 | |
| 
 | |
|   ITEM( 10 ,"Ende")  
 | |
|   {
 | |
|     exit();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *****************************************************
 | |
| // *****************************************************
 | |
| 
 | |
| 
 | |
| // ****************************************************
 | |
| // ***             S c r e e n a u f b a u          ***
 | |
| // ****************************************************
 | |
| // **************************
 | |
| // *** Statusscreen       ***
 | |
| // **************************
 | |
| // wird ueber F5 aktiviert 'STATUS'
 | |
| SCREEN s_status()
 | |
| {
 | |
|   // Initialisierung
 | |
|   string text_var = "";
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
| 
 | |
|   ftextout("Status lesen", 1, 0, 1, 0 );
 | |
|   ftextout("",2,0,0,0);
 | |
| 
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|    LINE("","")
 | |
|    {
 | |
|       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, 53, 0, 0 );
 | |
|       ftextout( "Tag / Monat / Jahr", 1, 68, 0, 0 );
 | |
| //    ftextout( "/", 1, 55, 0, 1 );
 | |
|     
 | |
|       INPAapiResultText( text_var, "ID_DATUM_TAG", 1, "" );
 | |
|       ftextout( text_var, 1, 55, 0, 1 );
 | |
| 
 | |
|       INPAapiResultText(text_var,"ID_DATUM_MONAT",1,"");
 | |
|       ftextout(text_var, 1, 58, 0, 1 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "ID_DATUM_JAHR", 1, "" );
 | |
|       ftextout( text_var, 1, 61, 0, 1 );
 | |
| 
 | |
|       // linke Seite des Bildschirms
 | |
|       ftextout( "< F1 >  SG Reset"                            ,  3, 5, 0, 1 );
 | |
|       ftextout( "< F2 >  erweiterte Identifikation"           ,  5, 5, 0, 1 );
 | |
|       ftextout( "< F3 >  CAN Signale"     
 | |
|                           ,  7, 5, 0, 1 );
 | |
|       ftextout( "< F4 >  Ventile"                             ,  9, 5, 0, 1 );
 | |
|       ftextout( "< F5 >  Sensorabgleichwerte ( lesen )"       , 11, 5 ,0 ,1 );
 | |
|       //
 | |
|       ftextout( "< F6 >  Sensoren"                            , 13, 5, 0, 1 );
 | |
|       ftextout( "< F7 >  Versorgungen"                        , 15, 5, 0, 1 );
 | |
|       //
 | |
|       ftextout( "< F8 >  Bildschirmdruck"                     , 19, 5, 0, 1 );
 | |
|       ftextout( "< F9 >  Zurueck"                             , 21, 5, 0, 1 );
 | |
|       ftextout( "< F10 > Ende"                                , 23, 5, 0, 1 );
 | |
|       //
 | |
|       //
 | |
|       // rechte Seite des Bildschirms
 | |
|       ftextout( "<Shift> + < F1 >  AIF aktuell (1A 86)"       , 3, 45, 0, 1 );
 | |
|       ftextout( "<Shift> + < F2 >  AIF Tabelle"               , 5, 45, 0, 1 );
 | |
|       ftextout( "<Shift> + < F3 >  PAF DAF"                   , 7, 45, 0, 1 );
 | |
| 
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|    }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** Steuernscreen      ***
 | |
| // **************************
 | |
| // wurde ueber F6 aktiviert 'Ansteuern'
 | |
| SCREEN s_steuern()
 | |
| {
 | |
| //  ftextout("ARS Inbetriebnahme und Pruefung", 2,5,2,5);
 | |
|   // Initialisierung
 | |
|   string text_var = "";
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
| 
 | |
|   ftextout("Ansteuern",1,0,1,0);
 | |
|   ftextout("",2,0,0,0);
 | |
| 
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|    LINE("","")
 | |
|    {
 | |
|       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( "Tag / Monat / Jahr", 1, 68, 0, 0 );
 | |
| //    ftextout( "/", 1, 55, 0, 1 );
 | |
|     
 | |
|       INPAapiResultText( text_var, "ID_DATUM_TAG", 1, "" );
 | |
|       ftextout( text_var, 1, 55, 0, 1 );
 | |
| 
 | |
|       INPAapiResultText(text_var,"ID_DATUM_MONAT",1,"");
 | |
|       ftextout(text_var, 1, 58, 0, 1 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "ID_DATUM_JAHR", 1, "" );
 | |
|       ftextout( text_var, 1, 61, 0, 1 );
 | |
| 
 | |
|       ftextout( "< F1 >  Inbetriebnahmeablauf"                   ,  3, 5, 0, 1 );
 | |
|       ftextout( "< F2 >  Cockpit Meldungen"                      ,  5, 5, 0, 1 );
 | |
|       ftextout( "< F3 >  Ventile Mehrfachbestromung"           ,  7, 5, 0, 1 );
 | |
|       ftextout( "< F4 >  Ventile Einzelbestromung"             ,  9, 5, 0, 1 );
 | |
|       ftextout( "< F5 >  Rampenlogik fuer Ventilansteuerung" , 11, 5 ,0 ,1 );
 | |
|       ftextout( "< F6 >  Sensorabgleichwerte ( lernen )"         , 13, 5 ,0 ,1 );
 | |
|       ftextout( "< F7 >  Höhenstandabgleichwerte ( lernen )"     , 15, 5, 0, 1 );
 | |
|       //
 | |
|       ftextout( "< F8 >  Bildschirmdruck"                        , 19, 5, 0, 1 );
 | |
|       ftextout( "< F9 >  Zurueck"                                , 21, 5, 0, 1 );
 | |
|       ftextout( "< F10 > Ende"                                   , 23, 5, 0, 1 );
 | |
| 
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
|    }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *****************************
 | |
| // *** Statusscreen Anzeigen ***
 | |
| // *****************************
 | |
| // ******************************
 | |
| // *** Steuergeraete Reset    ***
 | |
| // ******************************
 | |
| // wird ueber F1 aktiviert 'SG reset'
 | |
| SCREEN s_sgreset()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   string text_var = "";
 | |
|     
 | |
|   ftextout( "Steuergeraete Reset durchfuehren", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 0 ,0 );
 | |
| 
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|       if ( sg_reset_einmal == TRUE )
 | |
|       {
 | |
|         sg_reset_einmal = FALSE;
 | |
|         INPAapiJob( sgbd, "STEUERGERAETE_RESET", "", "" );
 | |
|         INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|         ftextout( "Reset war erfolgreich", 1, 0, 1, 1 );
 | |
|         ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|         delay(2000);
 | |
|       }
 | |
|   }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** Identscreen        ***
 | |
| // **************************
 | |
| // wird ueber F2 aktiviert 'erw. Ident'
 | |
| SCREEN s_ars_ident()
 | |
| {
 | |
|   string text_1A87 = "";
 | |
|   string text_1A91 = "";
 | |
|   string text_zus = "";
 | |
|   ftextout( "erweiterte Identifikations Informationen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
| 
 | |
|     // Linke Seite auf dem Bildschirm
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "IDENT_HWNR_PHYS_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "physikalische Hardwarenummer (1A 87)", 0, 0, 0, 0 );
 | |
|     ftextout( ":", 0, 29, 0, 0 );
 | |
|     INPAapiResultText( text_1A87, "HWNR_PHYS", 1, "" );
 | |
|     ftextout( text_1A87, 0, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Herstelldatum
 | |
|     INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "SG-Herstelldatum (1A 9D)", 2, 0, 0, 0 );
 | |
|     ftextout( ":", 2, 29, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "ID_DATUM_TAG", 1, "" );
 | |
|     ftextout( text_var, 2, 31, 0, 0 );
 | |
|     ftextout( ".", 2, 33, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "ID_DATUM_MONAT", 1, "" );
 | |
|     ftextout( text_var, 2, 35, 0, 0 );
 | |
|     ftextout( ".", 2, 37, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "ID_DATUM_JAHR", 1, "" );
 | |
|     ftextout( text_var, 2, 39, 0, 0 );
 | |
|     
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Hardware Referenz auslesen
 | |
|     INPAapiJob( sgbd, "HARDWARE_REFERENZ_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "gelesene HW Ref.(22 2502)", 4, 0, 0, 0 );
 | |
|     ftextout( ":", 4, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "HARDWARE_REFERENZ", 1, "" );
 | |
|     ftextout( text_var, 4, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Varaintenindex, BMW Teilenummer; Hardware* Nummer
 | |
|     INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Varianten-Index (1A 97)", 6, 0, 0, 0 );
 | |
|     ftextout( ":", 6, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_VAR_INDEX", 1, "" );
 | |
|     ftextout( text_var, 6, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
|     ftextout( "BMW Teilenummer = HW*Nr (1A 91)", 8, 0, 0, 0 );
 | |
|     ftextout( ":", 8, 29, 0, 0 );
 | |
|     INPAapiResultText( text_1A91, "ID_BMW_NR", 1, "" );
 | |
|     ftextout( text_1A91, 8, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Programm Refz. auslesen
 | |
|     INPAapiJob( sgbd, "PROGRAMM_REFERENZ_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "gelesene Prg. Ref.(22 2503)", 10, 0, 0, 0 );
 | |
|     ftextout( ":", 10, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "PROGRAMM_REFERENZ", 1, "" );
 | |
|     ftextout( text_var, 10, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Versionsnummers MCV, OSV, FSV, RES
 | |
|     INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "MCV (1A 9F)", 12, 0, 0, 0 );
 | |
|     ftextout( ":", 12, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_SW_NR_MCV", 1, "" );
 | |
|     ftextout( text_var, 12, 31, 0, 0 );
 | |
|     ftextout( "Nachrichtenkatalog", 12, 36, 0, 0 );
 | |
| 
 | |
|     ftextout( "FSV (1A 9F)", 14, 0, 0, 0 );
 | |
|     ftextout( ":", 14, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_SW_NR_FSV", 1, "" );
 | |
|     ftextout( text_var, 14, 31, 0, 0 );
 | |
|     ftextout( "Funktionssoftware", 14, 36, 0, 0 );
 | |
| 
 | |
|     ftextout( "OSV (1A 9F)", 16, 0, 0, 0 );
 | |
|     ftextout( ":", 16, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_SW_NR_OSV", 1, "" );
 | |
|     ftextout( text_var, 16, 31, 0, 0 );
 | |
|     ftextout( "Betriebssystem", 16, 36, 0, 0 );
 | |
| 
 | |
|     ftextout( "RES (1A 9F)", 18, 0, 0, 0 );
 | |
|     ftextout( ":", 18, 29, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_SW_NR_RES", 1, "" );
 | |
|     ftextout( text_var, 18, 31, 0, 0 );
 | |
|     ftextout( "SoftwareNummer", 18, 36, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Zusbaunummer
 | |
|     INPAapiJob( sgbd, "AIF_LESEN", "0", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "ZusBauNummer (23 xx xx xx 07 40)", 20, 0, 0, 0 );
 | |
|     ftextout( ":", 20, 29, 0, 0 );
 | |
|     ftextout( "Teilergebnis des AnwenderInfoFeldes", 21, 0, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_zus, "AIF_ZB_NR", 1, "" );
 | |
|     ftextout( text_zus, 20, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Daten Referenz auslesen
 | |
|     INPAapiJob( sgbd, "DATEN_REFERENZ_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "ERROR_NO_DREF" );
 | |
| 
 | |
|     ftextout( "gelesene Daten Ref.(22 2504)", 23, 0, 0, 0 );
 | |
|     ftextout( ":", 23, 29, 0, 0 );
 | |
| 
 | |
|     //INPAapiResultText( text_var, "DATEN_REFERENZ", 1, "" );
 | |
|     ftextout( "ERROR_NO_DREF", 23, 31, 0, 0 );
 | |
| 
 | |
| 
 | |
|     // Rechte Seite auf dem Bildschirm
 | |
|     //
 | |
|     //
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // letztes Progrmmierdatum
 | |
|     INPAapiJob( sgbd, "IDENT_PD_LESEN", "", "" );
 | |
|     // TT.MM.JJJJ
 | |
|     ftextout( "letztes Prog.datum (1A 99)", 0, 53, 0, 0 );
 | |
|     ftextout( ":", 0, 73, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "ID_DATUM", 1, "" );
 | |
|     ftextout( text_var, 0, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Tag an dem mit Cabi und CBD Codierdatensatz progra. wurde
 | |
|     INPAapiJob( sgbd, "DATENSATZ_COD_DATUM", "", "" );
 | |
|     // TT.MM.JJ
 | |
|     ftextout( "CBD Codierdatum vom", 2, 53, 0, 0 );
 | |
|     ftextout( ":", 2, 73, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "COD_DATUM_TAG", 1, "" );
 | |
|     ftextout( text_var, 2, 75, 0, 0 );
 | |
|     ftextout( ".", 2, 77, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "COD_DATUM_MONAT", 1, "" );
 | |
|     ftextout( text_var, 2, 78, 0, 0 );
 | |
|     ftextout( ".", 2, 80, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "COD_DATUM_JAHR", 1, "" );
 | |
|     ftextout( text_var, 2, 81, 0, 0 );
 | |
| 
 | |
|     // Datensatzdatum
 | |
|     // TT.MM.JJJJ
 | |
|     ftextout( "Codierdatensatz vom", 4, 53, 0, 0 );
 | |
|     ftextout( ":", 4, 73, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "DATENSATZ_DATUM_TAG", 1, "" );
 | |
|     ftextout( text_var, 4, 75, 0, 0 );
 | |
|     ftextout( ".", 4, 77, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "DATENSATZ_DATUM_MONAT", 1, "" );
 | |
|     ftextout( text_var, 4, 78, 0, 0 );
 | |
|     ftextout( ".", 4, 80, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "DATENSATZ_DATUM_JAHR", 1, "" );
 | |
|     ftextout( text_var, 4, 81, 0, 0 );
 | |
| 
 | |
|     
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // SGBD Version
 | |
|     INPAapiJob( sgbd, "INFO", "", "" );
 | |
|   
 | |
|     ftextout( "SGBD-Version", 6, 53, 0, 0 );
 | |
|     ftextout( ":", 6, 73, 0, 0 );
 | |
|     ftextout( sgbd_revision, 6, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Lieferantenindex, Codierindex, Diagnoseindex
 | |
|     INPAapiJob( sgbd, "IDENT", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Lieferant", 8, 53, 0, 0 );
 | |
|     ftextout( ":", 8, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_LIEF_TEXT", 1, "" );
 | |
|     ftextout( text_var, 8, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Lieferantennummer (1A 9E)", 10, 53, 0, 0 );
 | |
|     ftextout( ":", 10, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_LIEF_NR", 1, "" );
 | |
|     ftextout( text_var, 10, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Codier-Index (1A 9B)", 12, 53, 0, 0 );
 | |
|     ftextout( ":", 12, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_COD_INDEX", 1, "" );
 | |
|     ftextout( text_var, 12, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Diagnose-Index (1A 9C)", 14, 53, 0, 0 );
 | |
|     ftextout( ":", 14, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_DIAG_INDEX", 1, "" );
 | |
|     ftextout( text_var, 14, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Aenderungsindex auslesen
 | |
|     INPAapiJob( sgbd, "C_AEI_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Aenderungsindex (22 3FFF)", 16, 53, 0, 0 );
 | |
|     ftextout( ":", 16, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "COD_AE_INDEX", 1, "" );
 | |
|     ftextout( text_var, 16, 75, 0, 0 );
 | |
|     
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Fahrgestellnummer lesen
 | |
|     INPAapiJob( sgbd, "C_FG_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     ftextout( "Fahrgestellnr. (7 stellig)", 18, 53, 0, 0 );
 | |
|     ftextout( ":", 18, 73, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "FG_NR", 1, "" );
 | |
|     ftextout( text_var, 18, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Seriennummernummer lesen
 | |
|     INPAapiJob( sgbd, "SERIENNUMMER_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     ftextout( "Seriennr. (1A 89) (9 stellig)", 20, 53, 0, 0 );
 | |
|     ftextout( ":", 20, 73, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "SERIENNUMMER", 1, "" );
 | |
|     ftextout( text_var, 20, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Hardwaremusternummer auslesen
 | |
|     INPAapiJob( sgbd, "IDENT_VMECUHVN_LESEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "HardwareNr.(1A 9A)", 23, 53, 0, 0 );
 | |
|     ftextout( ":", 23, 73, 0, 0 );
 | |
|     INPAapiResultText( text_var, "ID_HW_NR", 1, "" );
 | |
|     ftextout( text_var, 23, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Nummerngleichheit pruefen
 | |
| /*    if ( ( text_1A87 != text_1A91 || text_1A87 != text_zus || text_1A91 != text_zus ) && toggle_1 == 1 )
 | |
|     {
 | |
|       infobox( "Einnummernstrategie", "Nummern sind NICHT identisch; 1A87 <--> 1A91 <--> ZusBau" );
 | |
|       // mehrmaligen Aufruf verhindern
 | |
|       toggle_1 = 0;
 | |
|     }*/
 | |
|     
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *********************************
 | |
| // *** PT CAN Signale Uebersicht ***
 | |
| // *********************************
 | |
| // wird ueber F3 aktiviert 
 | |
| SCREEN s_can_signale_uebersicht()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "PT CAN Signale", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 0, 0 );
 | |
|   
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   INPAapiResultText( text_var, "STAT_ALIVE_ZAEHLER_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "SG Status", 5, 50, 0, 0 );
 | |
|   ftextout( ":", 5, 58 , 0, 0 );
 | |
| 
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|      
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 60, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ftextout( "< F1 Allgemein>"                                  ,1, 5, 0, 0 );
 | |
|     ftextout( "Zuendung, Anlasser, EDCK, ABS, DSC"             ,1, 25, 0, 0 );
 | |
|  
 | |
|     ftextout( "< F2 Geschwindigkeit>"                            ,3, 5, 0, 0 );
 | |
|     ftextout( "Fahrzeuggeschw., Radgeschw. VL, VR, HL, HR"     ,3, 25, 0, 0 );
 | |
|     
 | |
|     ftextout( "< F3 Drehzahl>"                                   ,5, 5, 0, 0 );
 | |
|     ftextout( "Motordrehzahl, Fehler Motordrehzahl"            ,5, 25, 0, 0 );
 | |
| 
 | |
|     ftextout( "< F4 Beschleunigung>"                             ,7, 5, 0, 0 );
 | |
|     ftextout( "DSC Querbeschl., DSC Winkelbeschl."             ,7, 25, 0, 0 );
 | |
|                                                                  
 | |
|     ftextout( "< F5 Temperatur>"                           ,9, 5, 0, 0 );
 | |
|     ftextout( "Außen-,Motor-, Innentemperatur"           ,9, 25, 0, 0 );
 | |
| 
 | |
|     ftextout( "< F6 Diverses>"                                             ,11, 5, 0, 0 );
 | |
|     ftextout( "Kilometerstand, Lenkradwinkel, Rotorposition, Codierung"  ,11, 25, 0, 0 );
 | |
| 
 | |
|     ftextout( "< F7 Höhenstände>"                                          ,13, 5, 0, 0 );
 | |
|     ftextout( "Höhenstände"                                              ,13, 25, 0, 0 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| // **************************
 | |
| // *** PT CAN Signale     ***
 | |
| // **************************
 | |
| // wird ueber F3 aktiviert 
 | |
| SCREEN s_can_signale()
 | |
| {
 | |
|   int    offset_vl = 0;
 | |
|   int    offset_vr = 0;
 | |
|   int    offset_hl = 0;
 | |
|   int    offset_hr = 0;
 | |
|   int    steigung_vl = 0;
 | |
|   int    steigung_vr = 0;
 | |
|   int    steigung_hl = 0;
 | |
|   int    steigung_hr = 0;
 | |
|   int    nullpunkt_vl = 0;
 | |
|   int    nullpunkt_vr = 0;
 | |
|   int    nullpunkt_hl = 0;
 | |
|   int    nullpunkt_hr = 0;
 | |
|   int    abw_vl = 0;
 | |
|   int    abw_vr = 0;
 | |
|   int    abw_hl = 0;
 | |
|   int    abw_hr = 0;
 | |
|   real   tmpr = 0;
 | |
|   real   tmpr_steig = 0;
 | |
|   real   tmpr_null  = 0;
 | |
|   string tmps = "";
 | |
|   string tmpn = "";
 | |
|   string offset_einh    = "no response";
 | |
|   string offset_einh2   = "Einheitenfehler";
 | |
|   string steigung_einh  = "no response";
 | |
|   string nullpunkt_einh = "no response";
 | |
|   
 | |
|   string chk_jobstatus="";
 | |
|   string err_jobstatus  = "none";
 | |
| 
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "PT CAN Signale", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 0, 0 );
 | |
|   
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   INPAapiResultText( text_var, "STAT_ALIVE_ZAEHLER_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "SG Status", 5, 50, 0, 0 );
 | |
|   ftextout( ":", 5, 58 , 0, 0 );
 | |
| 
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|      
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 60, 0, 0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( allgemein == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_SIGNALE_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Zuendung", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_KL15_NR_WERT", 1, "" );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_KL15_TEXT", 1, "" );
 | |
|       ftextout( text_var, 1, 35, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Anlasser", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_KL50_NR_WERT", 1, "" );
 | |
|       ftextout( text_var, 2, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_KL50_TEXT", 1, "" );
 | |
|       ftextout( text_var, 2, 35, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Status DSC", 3, 1, 0, 0 );
 | |
|       ftextout( ":", 3, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_DSC_WERT", 1, "" );
 | |
|       ftextout( text_var, 3, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_DSC_EINH", 1, "" );
 | |
|       ftextout( text_var, 3, 35, 0, 0 );
 | |
| 
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
| /*      ftextout( "CAN Fehler Status Quitt Mot. ARS", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "FEHLER_QUITT_MOTOR_ARS_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "FEHLER_QUITT_MOTOR_ARS_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );*/
 | |
| 
 | |
|       ftextout( "CAN Fehler Klemme 15 (Zuendung)", 11, 1, 0, 0 );
 | |
|       ftextout( ":", 11, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KL15_WERT", 1, "" );
 | |
|       ftextout( text_var, 11, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KL15_TEXT", 1, "" );
 | |
|       ftextout( text_var, 11, 42, 0, 0 );
 | |
|       
 | |
|       ftextout( "CAN Fehler Klemme 50 (Anlasser)", 12, 1, 0, 0 );
 | |
|       ftextout( ":", 12, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KL50_WERT", 1, "" );
 | |
|       ftextout( text_var, 12, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KL50_TEXT", 1, "" );
 | |
|       ftextout( text_var, 12, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Fehler Status DSC", 13, 1, 0, 0 );
 | |
|       ftextout( ":", 13, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DSC_WERT", 1, "" );
 | |
|       ftextout( text_var, 13, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DSC_TEXT", 1, "" );
 | |
|       ftextout( text_var, 13, 42, 0, 0 );
 | |
|     }    
 | |
| 
 | |
|     if ( geschw == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_GESCHWINDIGKEIT_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert Fahrzeuggeschwindigkeit", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_GESCHWINDIGKEIT_FZG_WERT", 1, "" );
 | |
|       // 
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "3.1" , text_var );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_GESCHWINDIGKEIT_FZG_EINH", 1, "" );
 | |
|       ftextout( text_var, 1, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
|       ftextout( "CAN Fehler Geschw. Fzg.", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_GESCHWINDIGKEIT_FZG_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_GESCHWINDIGKEIT_FZG_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );
 | |
| 
 | |
|     }
 | |
| 
 | |
|     if ( drehzahl == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_DREHZAHL_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert Motordrehzahl", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_DREHZAHL_MOTOR_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "4.1" , text_var );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_DREHZAHL_MOTOR_EINH", 1, "" );
 | |
|       ftextout( text_var, 1, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Fehler Motordrehzahl", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_DREHZAHL_MOTOR_FEHLER_WERT", 1, "" );
 | |
|       ftextout( text_var, 2, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_DREHZAHL_MOTOR_FEHLER_EINH", 1, "" );
 | |
|       ftextout( text_var, 2, 50, 0, 0 );
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
|       ftextout( "CAN Fehler Drehzahl Motor", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DREHZAHL_MOTOR_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DREHZAHL_MOTOR_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Fehler Drehzahl Motor Fehler", 11, 1, 0, 0 );
 | |
|       ftextout( ":", 11, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DREHZAHL_MOTOR_FEHLER_WERT", 1, "" );
 | |
|       ftextout( text_var, 11, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_DREHZAHL_MOTOR_FEHLER_TEXT", 1, "" );
 | |
|       ftextout( text_var, 11, 42, 0, 0 );
 | |
|     
 | |
|     }    
 | |
|     
 | |
|     if ( beschl == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_BESCHLEUNIGUNG_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert DSC Querbeschl.", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_QUERBESCHL_DSC_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "1.3" , text_var );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_QUERBESCHL_DSC_EINH", 1, "" );
 | |
|       ftextout( text_var, 1, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert DSC Winkelbeschl.", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_WINKELGESCHW_DSC_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "3.3" , text_var );
 | |
|       ftextout( text_var, 2, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_WINKELGESCHW_DSC_EINH", 1, "" );
 | |
|       ftextout( text_var, 2, 50, 0, 0 );
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
|       ftextout( "CAN Fehler Beschl.FZG Quer DSC", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_QUERBESCHL_DSC_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_QUERBESCHL_DSC_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Fehler Winkelgeschw. Gier DSC", 11, 1, 0, 0 );
 | |
|       ftextout( ":", 11, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_WINKELGESCHW_DSC_WERT", 1, "" );
 | |
|       ftextout( text_var, 11, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_WINKELGESCHW_DSC_TEXT", 1, "" );
 | |
|       ftextout( text_var, 11, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiJob( sgbd, "STATUS_ROSE_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Fehler STATUS ROSE ARS", 12, 1, 0, 0 );
 | |
|       ftextout( ":", 12, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_QUERBESCHL_ROSE_WERT", 1, "" );
 | |
|       ftextout( text_var, 12, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_QUERBESCHL_ROSE_TEXT", 1, "" );
 | |
|       ftextout( text_var, 12, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Wert ROSE Querbeschl.", 3, 1, 0, 0 );
 | |
|       ftextout( ":", 3, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_QUERBESCHL_ROSE_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "1.3" , text_var );
 | |
|       ftextout( text_var, 3, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_QUERBESCHL_ROSE_EINH", 1, "" );
 | |
|       ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
|     }
 | |
| 
 | |
|     if ( temperatur == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_TEMP_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert Aussentemperatur", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_AUSSENTEMPERATUR_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 2 Vorkommastellen, 2 Nachkommastellen
 | |
|       realtostring ( zahl_var, "2.2" , text_var );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_AUSSENTEMPERATUR_EINH", 1, "" );
 | |
|       ftextout( text_var, 1, 50, 0, 0 );
 | |
|     
 | |
|       ftextout( "CAN Wert Motortemperatur", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_MOTORTEMPERATUR_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 2 Vorkommastellen, 2 Nachkommastellen
 | |
|       realtostring ( zahl_var, "2.2" , text_var );
 | |
|       ftextout( text_var, 2, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_MOTORTEMPERATUR_EINH", 1, "" );
 | |
|       ftextout( text_var, 2, 50, 0, 0 );
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
|       ftextout( "CAN Fehler Aussentemperatur", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_AUSSENTEMPERATUR_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_AUSSENTEMPERATUR_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Fehler Motortemperatur", 11, 1, 0, 0 );
 | |
|       ftextout( ":", 11, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_MOTORTEMPERATUR_WERT", 1, "" );
 | |
|       ftextout( text_var, 11, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_MOTORTEMPERATUR_TEXT", 1, "" );
 | |
|       ftextout( text_var, 11, 42, 0, 0 );
 | |
| 
 | |
|       /* zusätzlich Steuergeräte Innentemperatur */
 | |
|       INPAapiJob( sgbd, "STATUS_SG_TEMP", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Steuergerät Innentemperatur", 4, 1, 0, 0 );
 | |
|       ftextout( ":", 4, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_SG_TEMP_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 2 Vorkommastellen, 2 Nachkommastellen
 | |
|       realtostring ( zahl_var, "2.2" , text_var );
 | |
|       ftextout( text_var, 4, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_SG_TEMP_EINH", 1, "" );
 | |
|       ftextout( text_var, 4, 50, 0, 0 );
 | |
|     }    
 | |
|     
 | |
|     if ( diverses == 1 )
 | |
|     {
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_DIVERSES_ARS", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert Kilometerstand", 1, 1, 0, 0 );
 | |
|       ftextout( ":", 1, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_KILOMETERSTAND_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "6.1" , text_var );
 | |
|       ftextout( text_var, 1, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_KILOMETERSTAND_EINH", 1, "" );
 | |
|       ftextout( text_var, 1, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Lenkradwinkel", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_LENKRADWINKEL_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "3.1" , text_var );
 | |
|       ftextout( text_var, 2, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_LENKRADWINKEL_EINH", 1, "" );
 | |
|       ftextout( text_var, 2, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Wert Fehler Lenkradwinkel", 3, 1, 0, 0 );
 | |
|       ftextout( ":", 3, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_LENKRADWINKEL_FEHLER_NR", 1, "" );
 | |
|       ftextout( text_var, 3, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_LENKRADWINKEL_FEHLER_TEXT", 1, "" );
 | |
|       clearrect(9,40,1,40);
 | |
|       ftextout( text_var, 3, 42, 0, 0 );
 | |
| 
 | |
|       /*  CAN Fehler Darstellung  */
 | |
|       ftextout( "CAN Fehler Kilometerstand", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KILOMETERSTAND_WERT", 1, "" );
 | |
|       ftextout( text_var, 10, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_KILOMETERSTAND_TEXT", 1, "" );
 | |
|       ftextout( text_var, 10, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Fehler Lenkradwinkel", 11, 1, 0, 0 );
 | |
|       ftextout( ":", 11, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_LENKRADWINKEL_WERT", 1, "" );
 | |
|       ftextout( text_var, 11, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_LENKRADWINKEL_TEXT", 1, "" );
 | |
|       ftextout( text_var, 11, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Fehler Lenkradwinkel Fehler", 12, 1, 0, 0 );
 | |
|       ftextout( ":", 12, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_LENKRADWINKEL_FEHLER_WERT", 1, "" );
 | |
|       ftextout( text_var, 12, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_LENKRADWINKEL_FEHLER_TEXT", 1, "" );
 | |
|       ftextout( text_var, 12, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       /*zusätzlich Rotor Position */
 | |
|       INPAapiJob( sgbd, "STATUS_CAN_ROTOR_POSITION", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "CAN Wert Rotorposition", 4, 1, 0, 0 );
 | |
|       ftextout( ":", 4, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_ROTOR_POSITION_ACTUAL_VALUE_WERT", 1, "" );
 | |
|       stringtoreal( text_var, zahl_var );
 | |
|       // 4 Vorkommastellen, 1 Nachkommastellen
 | |
|       realtostring ( zahl_var, "6.1" , text_var );
 | |
|       ftextout( text_var, 4, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_ROTOR_POSITION_ACTUAL_VALUE_EINH", 1, "" );
 | |
|       ftextout( text_var, 4, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Wert Status Rotorposition", 5, 1, 0, 0 );
 | |
|       ftextout( ":", 5, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_ROTOR_POSITION_STAT_AFS_WERT", 1, "" );
 | |
|       ftextout( text_var, 5, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_ROTOR_POSITION_STAT_AFS_TEXT", 1, "" );
 | |
|       clearrect(11,40,1,40);
 | |
|       ftextout( text_var, 5, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Wert Codierstring 2", 6, 1, 0, 0 );
 | |
|       ftextout( ":", 6, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_CODSTR2_WERT", 1, "" );
 | |
|       ftextout( text_var, 6, 32, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "STAT_CODSTR2_TEXT", 1, "" );
 | |
|       ftextout( text_var, 6, 42, 0, 0 );
 | |
| 
 | |
| 
 | |
|       ftextout( "CAN Fehler Rotorposition", 13, 1, 0, 0 );
 | |
|       ftextout( ":", 13, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_ROTOR_POSITION_ACTUAL_VALUE_WERT", 1, "" );
 | |
|       ftextout( text_var, 13, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_ROTOR_POSITION_ACTUAL_VALUE_TEXT", 1, "" );
 | |
|       ftextout( text_var, 13, 42, 0, 0 );
 | |
| 
 | |
|       ftextout( "CAN Fehler Status Rotorposition", 14, 1, 0, 0 );
 | |
|       ftextout( ":", 14, 30, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_ROTOR_POSITION_STAT_WERT", 1, "" );
 | |
|       ftextout( text_var, 14, 32, 0, 0 );
 | |
|       INPAapiResultText( text_var, "STAT_FEHLER_ROTOR_POSITION_STAT_TEXT", 1, "" );
 | |
|       ftextout( text_var, 14, 42, 0, 0 );
 | |
| 
 | |
|     }
 | |
| 
 | |
|     if ( hoehenstand == 1 )
 | |
|     {
 | |
| 
 | |
|        INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "1", "" );
 | |
|        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|        if(chk_jobstatus == "OKAY")
 | |
|        {
 | |
|            INPAapiResultInt(  steigung_vl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|            INPAapiResultInt(  nullpunkt_vl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|            INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|            INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|        }
 | |
|        else {
 | |
|            err_jobstatus = chk_jobstatus;
 | |
|        }
 | |
| 
 | |
|        INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "2", "" );
 | |
|        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|        if(chk_jobstatus == "OKAY")
 | |
|        {
 | |
|            INPAapiResultInt(  steigung_vr,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|            INPAapiResultInt(  nullpunkt_vr,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|        }
 | |
|        else {
 | |
|            err_jobstatus = chk_jobstatus;
 | |
|        }
 | |
| 
 | |
|        INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "3", "" );
 | |
|        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|        if(chk_jobstatus == "OKAY")
 | |
|        {
 | |
|            INPAapiResultInt(  steigung_hl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|            INPAapiResultInt(  nullpunkt_hl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|        }
 | |
|        else {
 | |
|            err_jobstatus = chk_jobstatus;
 | |
|        }
 | |
| 
 | |
|        INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "4", "" );
 | |
|        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|        if(chk_jobstatus == "OKAY")
 | |
|        {
 | |
|            INPAapiResultInt(  steigung_hr,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|            INPAapiResultInt(  nullpunkt_hr,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|        }
 | |
| 
 | |
|        INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_HGLV", "", "" );
 | |
|        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|        if(chk_jobstatus == "OKAY")
 | |
|        {
 | |
|            INPAapiResultInt(  offset_vl,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_FLH_WERT", 1 );
 | |
|            INPAapiResultInt(  offset_vr,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_FRH_WERT", 1 );
 | |
|            INPAapiResultInt(  offset_hl,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_RLH_WERT", 1 );
 | |
|            INPAapiResultInt(  offset_hr,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_RRH_WERT", 1 );
 | |
|            INPAapiResultText( offset_einh, "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_EINH", 1, "" );
 | |
|        }
 | |
|        else {
 | |
|            err_jobstatus = chk_jobstatus;
 | |
|        }
 | |
| 
 | |
|        // Ausgabe der Sensorwerte
 | |
|        ftextout( "Sensornullpunkt Höhenstand VR", 6, 1, 0, 0 );
 | |
|        ftextout( ":", 6, 22, 0, 0 );
 | |
|        inttoreal(nullpunkt_vr, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 6, 24, 0, 0 );
 | |
|        ftextout( nullpunkt_einh, 6, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensorsteigung Höhenstand VR", 7, 1, 0, 0 );
 | |
|        ftextout( ":", 7, 22, 0, 0 );
 | |
|        inttoreal(steigung_vr, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 7, 24, 0, 0 );
 | |
|        ftextout( steigung_einh, 7, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensornullpunkt Höhenstand VL", 3, 1, 0, 0 );
 | |
|        ftextout( ":", 3, 22, 0, 0 );
 | |
|        inttoreal(nullpunkt_vl, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 3, 24, 0, 0 );
 | |
|        ftextout( nullpunkt_einh, 3, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensorsteigung Höhenstand VL", 4, 1, 0, 0 );
 | |
|        ftextout( ":", 4, 22, 0, 0 );
 | |
|        inttoreal(steigung_vl, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 4, 24, 0, 0 );
 | |
|        ftextout( steigung_einh, 4, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensornullpunkt Höhenstand HR", 12, 1, 0, 0 );
 | |
|        ftextout( ":", 12, 22, 0, 0 );
 | |
|        inttoreal(nullpunkt_hr, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 12, 24, 0, 0 );
 | |
|        ftextout( nullpunkt_einh, 12, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensorsteigung Höhenstand HR", 13, 1, 0, 0 );
 | |
|        ftextout( ":", 13, 22, 0, 0 );
 | |
|        inttoreal(steigung_hr, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 13, 24, 0, 0 );
 | |
|        ftextout( steigung_einh, 13, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensornullpunkt Höhenstand HL", 9, 1, 0, 0 );
 | |
|        ftextout( ":", 9, 22, 0, 0 );
 | |
|        inttoreal(nullpunkt_hl, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 9, 24, 0, 0 );
 | |
|        ftextout( nullpunkt_einh, 9, 30, 0, 0 );
 | |
| 
 | |
|        ftextout( "Sensorsteigung Höhenstand HL", 10, 1, 0, 0 );
 | |
|        ftextout( ":", 10, 22, 0, 0 );
 | |
|        inttoreal(steigung_hl, tmpr);
 | |
|        realtostring( tmpr, "5.0",text_var );
 | |
|        ftextout( text_var, 10, 24, 0, 0 );
 | |
|        ftextout( steigung_einh, 10, 30, 0, 0 );
 | |
| 
 | |
|        // Ausgabe Offsetwerte
 | |
|        ftextout( "Offset VL", 3, 55, 0, 0 );
 | |
|        ftextout( ":", 3, 62, 0, 0 );
 | |
|        inttoreal(offset_vl, tmpr);
 | |
|        inttoreal(steigung_vl, tmpr_steig);
 | |
|        inttoreal(nullpunkt_vl, tmpr_null);
 | |
|        offset_einh2 = offset_einh;
 | |
|        if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|        {   // umskalieren von mV auf mm
 | |
|            tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|            offset_einh2 = "mm";
 | |
|        }
 | |
|        realtostring (tmpr, "4.2", tmps);
 | |
|        ftextout( tmps+" "+offset_einh2, 3, 64, 0, 0 );
 | |
| 
 | |
|        ftextout( "Offset VR",6, 55, 0, 0 );
 | |
|        ftextout( ":", 6, 62, 0, 0 );
 | |
|        inttoreal(offset_vr, tmpr);
 | |
|        inttoreal(steigung_vr, tmpr_steig);
 | |
|        inttoreal(nullpunkt_vr, tmpr_null);
 | |
|        offset_einh2 = offset_einh;
 | |
|        if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|        {   // umskalieren von mV auf mm
 | |
|            tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|            offset_einh2 = "mm";
 | |
|        }
 | |
|        realtostring (tmpr, "4.2", tmps);
 | |
|        ftextout( tmps+" "+offset_einh2, 6, 64, 0, 0 );
 | |
| 
 | |
|        ftextout( "Offset HL", 9, 55, 0, 0 );
 | |
|        ftextout( ":", 9, 62, 0, 0 );
 | |
|        inttoreal(offset_hl, tmpr);
 | |
|        inttoreal(steigung_hl, tmpr_steig);
 | |
|        inttoreal(nullpunkt_hl, tmpr_null);
 | |
|        offset_einh2 = offset_einh;
 | |
|        if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|        {   // umskalieren von mV auf mm
 | |
|            tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|            offset_einh2 = "mm";
 | |
|        }
 | |
|        realtostring (tmpr, "4.2", tmps);
 | |
|        ftextout( tmps+" "+offset_einh2, 9, 64, 0, 0 );
 | |
| 
 | |
|        ftextout( "Offset HR", 12, 55, 0, 0 );
 | |
|        ftextout( ":", 12, 62, 0, 0 );
 | |
|        inttoreal(offset_hr, tmpr);
 | |
|        inttoreal(steigung_hr, tmpr_steig);
 | |
|        inttoreal(nullpunkt_hr, tmpr_null);
 | |
|        offset_einh2 = offset_einh;
 | |
|        if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|        {   // umskalieren von mV auf mm
 | |
|            tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|            offset_einh2 = "mm";
 | |
|        }
 | |
|        realtostring (tmpr, "4.2", tmps);
 | |
|        ftextout( tmps+" "+offset_einh2, 12, 64, 0, 0 );
 | |
|        }
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   Ventile Status       ***
 | |
| // ******************************
 | |
| SCREEN s_ventile_status()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Ventile", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 0, 0 );
 | |
|   
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   INPAapiResultText( text_var, "STAT_ALIVE_ZAEHLER_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "SG Status", 5, 50, 0, 0 );
 | |
|   ftextout( ":", 5, 58 , 0, 0 );
 | |
| 
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|      
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 60, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|   
 | |
|     ftextout( "< F1 >  Sicherheitsventil lesen"         ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  Richtungsventil lesen"           ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Proportionalventil VA lesen"        ,7, 5, 0, 1 );
 | |
|     ftextout( "< F4 >  Proportionalventil HA lesen"        ,9, 5, 0, 1 );
 | |
|   
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   SV Ventil            ***
 | |
| // ******************************
 | |
| SCREEN s_sv_ventil()
 | |
| {
 | |
|   real strom_sv_ventil;
 | |
|   real stat_querbesch;
 | |
|   real stat_pwm_ventil;
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Sicherheitsventil", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|     ftextout( ":", 5, 27, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|     ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|     // 'Fehlerzustaende' des Sicherheitsventils
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 5, 40, 0, 0 );
 | |
| 
 | |
| 
 | |
|     ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|     ftextout( ":", 7, 27, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
|     ftextout( "Soll Strom Sicherheitsventil", 10, 5, 0, 0 );
 | |
|     ftextout( ":", 10, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_sv_ventil, "STAT_SOLLSTROM_SICHVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_sv_ventil, 10, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_SOLLSTROM_SICHVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 65, 0, 0 );
 | |
| 
 | |
|     ftextout( "Status PWM Sicherheitsventil", 13, 5, 0, 0 );
 | |
|     ftextout( ":", 13, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( stat_pwm_ventil, "STAT_PWM_SICHVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max          Format
 | |
|     analogout( stat_pwm_ventil, 13, 30, 0, 100, 0, 100, "3.1" );
 | |
| 
 | |
|     // Einheit [%]
 | |
|     INPAapiResultText( text_var, "STAT_PWM_SICHVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|     //************************************************************
 | |
|     // physikalischer Wert
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (physik.)", 17, 5, 0, 0 );
 | |
|     ftextout( ":", 17, 27, 0, 0 );
 | |
|     // Querbeschleunigung auslesen
 | |
|     INPAapiResultAnalog( stat_querbesch, "STAT_QUERBESCHL_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max           Format
 | |
|     analogout( stat_querbesch, 17, 30, -20, 20, -20, 20, "5.3" );
 | |
| 
 | |
|     // Einheit [g] / [m/s2]
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 17, 65, 0, 0 );
 | |
| 
 | |
| /*
 | |
|     //************************************************************
 | |
|     // Rohwert
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (Roh)", 20, 5, 0, 0 );
 | |
|     ftextout( ":", 20, 27, 0, 0 );
 | |
|     // Querbeschleunigung auslesen
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHLSEN_WERT", 1, "" );
 | |
|     ftextout( text_var, 20, 30, 0, 0 );
 | |
| 
 | |
|     // Einheit [10bit] Rohwert
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHLSEN_TEXT", 1, "" );
 | |
|     ftextout( text_var, 20, 40, 0, 0 );
 | |
| */
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   RV Ventil            ***
 | |
| // ******************************
 | |
| SCREEN s_rv_ventil()
 | |
| {
 | |
|   real strom_rv_ventil;
 | |
|   real stat_pwm_ventil;
 | |
|   real stat_querbesch;
 | |
|   real stat_schaltstellung_RV;
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Richtungsventile", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
| 
 | |
|     //************************************************************
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|     ftextout( ":", 5, 27, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );    
 | |
|     ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 5, 40, 0, 0 );
 | |
| 
 | |
| 
 | |
|     ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|     ftextout( ":", 7, 27, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Soll Strom Richtungsventil", 10, 5, 0, 0 );
 | |
|     ftextout( ":", 10, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_rv_ventil, "STAT_SOLLSTROM_RICHTVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_rv_ventil, 10, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_SOLLSTROM_RICHTVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Status PWM Richtungsventil", 13, 5, 0, 0 );
 | |
|     ftextout( ":", 13, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( stat_pwm_ventil, "STAT_PWM_RICHTVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_pwm_ventil, 13, 30, 0, 100, 0, 100, "3.1" );
 | |
| 
 | |
|     // Einheit [%]
 | |
|     INPAapiResultText( text_var, "STAT_PWM_RICHTVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 65, 0, 0 );
 | |
| 
 | |
|     //************************************************************
 | |
| 
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (physik.)", 17, 5, 0, 0 );
 | |
|     ftextout( ":", 17, 27, 0, 0 );
 | |
|     // Querbeschleunigung auslesen
 | |
|     INPAapiResultAnalog( stat_querbesch, "STAT_QUERBESCHL_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max           Format
 | |
|     analogout( stat_querbesch, 17, 30, -20, 20, -20, 20, "5.3" );
 | |
| 
 | |
|     // Einheit [g] / [m/s2]
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 17, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     //************************************************************
 | |
|     // Schaltstellung RV [ -1, 0, 1 ]
 | |
|     ftextout( "Schaltstellung RV", 21, 5, 0, 0 );
 | |
|     ftextout( ":", 21, 27, 0, 0 );
 | |
|     // Schaltstellung RV auslesen
 | |
|     INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max           Format
 | |
|     //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|     analogout( stat_schaltstellung_RV, 21, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|     // Einheit [Zustand]
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 21, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ******************************
 | |
| // ***   VA Ventil            ***
 | |
| // ******************************
 | |
| SCREEN s_va_ventil()
 | |
| {
 | |
|   real stat_istdruck_ventil;
 | |
|   real stat_pwm_ventil;
 | |
|   real strom_va_ventil;
 | |
|   real stat_querbesch;
 | |
|   string text_var = "";
 | |
| 
 | |
| 
 | |
|   ftextout( "Proportionalventil VA", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Propventil VA", 5, 5, 0, 0 );
 | |
|     ftextout( ":", 5, 27, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|     ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 5, 40, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Steuerstrom Propventil VA", 7, 5, 0, 0 );
 | |
|     ftextout( ":", 7, 27, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_va_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Soll Strom Propventil VA", 10, 5, 0, 0 );
 | |
|     ftextout( ":", 10, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_va_ventil, "STAT_SOLLSTROM_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_va_ventil, 10, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_SOLLSTROM_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "PWM Propventil VA", 13, 5, 0, 0 );
 | |
|     ftextout( ":", 13, 27, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_pwm_ventil, "STAT_PWM_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_pwm_ventil, 13, 30, 0, 100, 0, 100, "3.1" );
 | |
| 
 | |
|     // Einheit [%]
 | |
|     INPAapiResultText( text_var, "STAT_PWM_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 65, 0, 0 );
 | |
| 
 | |
|     //************************************************************
 | |
| 
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|     // Ist Druck VA
 | |
|     ftextout( "Ist Druck VA", 16, 5, 0, 0 );
 | |
|     ftextout( ":", 16, 27, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_istdruck_ventil, 16, 30, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 16, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (physik.)", 23, 5, 0, 0 );
 | |
|     ftextout( ":", 23, 27, 0, 0 );
 | |
|     // Querbeschleunigung auslesen
 | |
|     INPAapiResultAnalog( stat_querbesch, "STAT_QUERBESCHL_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max           Format
 | |
|     analogout( stat_querbesch, 23, 30, -20, 20, -20, 20, "5.3" );
 | |
| 
 | |
|     // Einheit [g] / [m/s2]
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 23, 65, 0, 0 );
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   HA Ventil            ***
 | |
| // ******************************
 | |
| SCREEN s_ha_ventil()
 | |
| {
 | |
|   real stat_istdruck_ventil;
 | |
|   real stat_pwm_ventil;
 | |
|   real strom_ha_ventil;
 | |
|   real stat_querbesch;
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Proportionalventil HA", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Propventil HA", 5, 5, 0, 0 );
 | |
|     ftextout( ":", 5, 27, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|     ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 5, 40, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Steuerstrom Propventil HA", 7, 5, 0, 0 );
 | |
|     ftextout( ":", 7, 27, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_ha_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Soll Strom Propventil VA", 10, 5, 0, 0 );
 | |
|     ftextout( ":", 10, 27, 0, 0 );
 | |
|     //Soll Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_ha_ventil, "STAT_SOLLSTROM_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_ha_ventil, 10, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_SOLLSTROM_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "PWM Propventil HA", 13, 5, 0, 0 );
 | |
|     ftextout( ":", 13, 27, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_pwm_ventil, "STAT_PWM_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_pwm_ventil, 13, 30, 0, 100, 0, 100, "3.1" );
 | |
| 
 | |
|     // Einheit [%]
 | |
|     INPAapiResultText( text_var, "STAT_PWM_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|     //************************************************************
 | |
| 
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|     // Ist Druck HA
 | |
|     ftextout( "Ist Druck HA", 16, 5, 0, 0 );
 | |
|     ftextout( ":", 16, 27, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_istdruck_ventil, 16, 30, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 16, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (physik.)", 23, 5, 0, 0 );
 | |
|     ftextout( ":", 23, 27, 0, 0 );
 | |
|     // Querbeschleunigung auslesen
 | |
|     INPAapiResultAnalog( stat_querbesch, "STAT_QUERBESCHL_SW_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max           Format
 | |
|     analogout( stat_querbesch, 23, 30, -20, 20, -20, 20, "5.3" );
 | |
| 
 | |
|     // Einheit [g] / [m/s2]
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 23, 65, 0, 0 );
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***    Ventilabgleich      ***
 | |
| // ******************************
 | |
| SCREEN s_sensorabgleich()
 | |
| {
 | |
|   real stat_offsetdruck_ventil;
 | |
|   real stat_offsetquerbesch;
 | |
|   real stat_dynoffsetquerbesch;
 | |
|   real stat_sensorpara;
 | |
|   real tmpr = 0;
 | |
|   int stat_steigung;
 | |
|   string text_var = "";
 | |
| 
 | |
|   int sensor_nullpunkt = 0;
 | |
|   int sensor_steigung = 0;
 | |
|   int input_state_key_1 = 0;
 | |
|   
 | |
|   string err_jobstatus = "";
 | |
|   string chk_jobstatus = "";
 | |
|   string sensor_nullpunkt_einh = "";
 | |
|   string sensor_steigung_einh = "";
 | |
|   string tmpn = "";
 | |
|   string tmps = "";
 | |
| 
 | |
|         
 | |
|   ftextout( "Sensorabgleich", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
| 
 | |
|     // gelernter Offset Wert lesen fuer Nullpunkt Druck VA
 | |
|     INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_VA", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|     // Druck VA
 | |
|     ftextout( "Arbeitsnullpunkt fuer Druck VA", 1, 1, 0, 0 );
 | |
|     ftextout( ":", 1, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_offsetdruck_ventil, "STAT_NULLPUNKT_OFFSET_DRUCK_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_offsetdruck_ventil, 1, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_DRUCK_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 1, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     // gelernter Offset Wert lesen fuer Nullpunkt Druck HA
 | |
|     INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_HA", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|     // Druck HA
 | |
|     ftextout( "Arbeitsnullpunkt fuer Druck HA", 3, 1, 0, 0 );
 | |
|     ftextout( ":", 3, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_offsetdruck_ventil, "STAT_NULLPUNKT_OFFSET_DRUCK_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_offsetdruck_ventil, 3, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_DRUCK_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 3, 75, 0, 0 );
 | |
| 
 | |
|     // gelernter Offset Wert lesen fuer Querbeschleunigung
 | |
|     INPAapiJob( sgbd, "STATUS_OFFSET_QUERBESCH", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Arbeitsnullpunkt fuer Querbeschleunigung", 5, 1, 0, 0 );
 | |
|     ftextout( ":", 5, 35, 0, 0 );
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Dynamischer Nullpunkt für Querbeschleunigung",7, 1, 0, 0 );
 | |
|     ftextout( ":", 7, 35, 0, 0 );
 | |
| 
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_offsetquerbesch, "STAT_NULLPUNKT_OFFSET_QUERBESCH_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_offsetquerbesch, 5, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [mV]
 | |
|     INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_QUERBESCH_EINH", 1, "" );
 | |
|     ftextout( text_var, 5, 75, 0, 0 );
 | |
| 
 | |
|     INPAapiResultAnalog( stat_dynoffsetquerbesch, "STAT_DYN_OFFSET_QUERBESCH_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_dynoffsetquerbesch, 7, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [mV]
 | |
|     INPAapiResultText( text_var, "STAT_DYN_OFFSET_QUERBESCH_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 75, 0, 0 );
 | |
| 
 | |
|     // Sensorparameter Druck VA lesen
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_VA", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     // 
 | |
|     ftextout( "Sensornullpunkt Druck VA", 10, 1, 0, 0 );
 | |
|     ftextout( ":", 10, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_sensorpara, "STAT_SENSOR_NULLPKT_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_sensorpara, 10, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [mV]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_NULLPKT_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Sensorsteigung Druck VA", 12, 1, 0, 0 );
 | |
|     ftextout( ":", 12, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultInt( stat_steigung, "STAT_SENSOR_STEIGUNG_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     //analogout( stat_sensorpara, 12, 37, 0, 32000, 0, 32000, "5.1" );
 | |
|     inttoreal(stat_steigung, tmpr);
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 12, 37, 0, 0 );
 | |
| 
 | |
|     // Einheit [mueVolt/bar]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_STEIGUNG_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 12, 42, 0, 0 );
 | |
| 
 | |
|     // Sensorparameter Druck HA lesen
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HA", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     // 
 | |
|     ftextout( "Sensornullpunkt Druck HA", 16, 1, 0, 0 );
 | |
|     ftextout( ":", 16, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_sensorpara, "STAT_SENSOR_NULLPKT_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_sensorpara, 16, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [mV]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_NULLPKT_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 16, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Sensorsteigung Druck HA", 18, 1, 0, 0 );
 | |
|     ftextout( ":", 18, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultInt( stat_steigung, "STAT_SENSOR_STEIGUNG_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|    // analogout( stat_sensorpara, 18, 37, 0, 32000, 0, 32000, "5.1" );
 | |
|     inttoreal(stat_steigung, tmpr);
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 18, 37, 0, 0 );
 | |
| 
 | |
| 
 | |
|     // Einheit [mueVolt/bar]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_STEIGUNG_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 18, 42, 0, 0 );
 | |
| 
 | |
|     // gelernter Offset Wert lesen fuer Querbeschleunigung
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_WERTE_QUERBESCH", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     // 
 | |
|     ftextout( "Sensornullpkt Querbesch", 22, 1, 0, 0 );
 | |
|     ftextout( ":", 22, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultAnalog( stat_sensorpara, "STAT_SENSOR_NULLPKT_AQUER_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_sensorpara, 22, 37, 0, 3000, 0, 3000, "5.1" );
 | |
| 
 | |
|     // Einheit [mV]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_NULLPKT_AQUER_EINH", 1, "" );
 | |
|     ftextout( text_var, 22, 75, 0, 0 );
 | |
| 
 | |
|     ftextout( "Sensorsteigung Querbesch", 24, 1, 0, 0 );
 | |
|     ftextout( ":", 24, 35, 0, 0 );
 | |
|     //
 | |
|     INPAapiResultInt( stat_steigung, "STAT_SENSOR_STEIGUNG_AQUER_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     //analogout( stat_sensorpara, 24, 37, 0, 32000, 0, 32000, "5.1" );
 | |
|     inttoreal(stat_steigung, tmpr);
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 24, 37, 0, 0 );
 | |
| 
 | |
|     // Einheit [mVolt/g]
 | |
|     INPAapiResultText( text_var, "STAT_SENSOR_STEIGUNG_AQUER_EINH", 1, "" );
 | |
|     ftextout( text_var, 24, 42, 0, 0 );
 | |
| 
 | |
|     if ( para_lernen_4 == 1 )
 | |
|     {
 | |
|       para_lernen_4 = 0;
 | |
| 
 | |
|       INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_VA", "", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|               INPAapiResultInt( sensor_nullpunkt, "STAT_SENSOR_NULLPKT_VA_WERT", 1 );
 | |
|           INPAapiResultText( sensor_nullpunkt_einh, "STAT_SENSOR_NULLPKT_VA_EINH", 1, "" );
 | |
|           INPAapiResultInt( sensor_steigung, "STAT_SENSOR_STEIGUNG_VA_WERT", 1 );
 | |
|           INPAapiResultText( sensor_steigung_einh, "STAT_SENSOR_STEIGUNG_VA_EINH", 1, "" );     
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
|       input2int( sensor_nullpunkt, sensor_steigung, "VA Sensorabgleich", "Parameter schreiben:", "Sensornullpunkt:", "Sensorsteigung:", 0, 1500 , 0, 25000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(sensor_nullpunkt, tmpn);
 | |
|         inttostring(sensor_steigung, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_VA", tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Werte ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     if ( para_lernen_5 == 1 )
 | |
|     {
 | |
|       para_lernen_5 = 0;
 | |
| 
 | |
|       INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HA", "", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|               INPAapiResultInt( sensor_nullpunkt, "STAT_SENSOR_NULLPKT_HA_WERT", 1 );
 | |
|           INPAapiResultText( sensor_nullpunkt_einh, "STAT_SENSOR_NULLPKT_HA_EINH", 1, "" );
 | |
|           INPAapiResultInt( sensor_steigung, "STAT_SENSOR_STEIGUNG_HA_WERT", 1 );
 | |
|           INPAapiResultText( sensor_steigung_einh, "STAT_SENSOR_STEIGUNG_HA_EINH", 1, "" );     
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
|       input2int( sensor_nullpunkt, sensor_steigung, "HA Sensorabgleich", "Parameter schreiben:", "Sensornullpunkt:", "Sensorsteigung:", 0, 1500 , 0, 25000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(sensor_nullpunkt, tmpn);
 | |
|         inttostring(sensor_steigung, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HA", tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Werte ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     if ( para_lernen_6 == 1 )
 | |
|     {
 | |
|       para_lernen_6 = 0;
 | |
| 
 | |
|       INPAapiJob( sgbd, "STATUS_NEUE_WERTE_QUERBESCH", "", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|               INPAapiResultInt( sensor_nullpunkt, "STAT_SENSOR_NULLPKT_AQUER_WERT", 1 );
 | |
|           INPAapiResultText( sensor_nullpunkt_einh, "STAT_SENSOR_NULLPKT_AQUER_EINH", 1, "" );
 | |
|           INPAapiResultInt( sensor_steigung, "STAT_SENSOR_STEIGUNG_AQUER_WERT", 1 );
 | |
|           INPAapiResultText( sensor_steigung_einh, "STAT_SENSOR_STEIGUNG_AQUER_EINH", 1, "" );     
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
|       input2int( sensor_nullpunkt, sensor_steigung, "AQuer Sensorabgleich", "Parameter schreiben:", "Sensornullpunkt:", "Sensorsteigung:", 0, 4000 , 0, 5000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(sensor_nullpunkt, tmpn);
 | |
|         inttostring(sensor_steigung, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_WERTE_QUERBESCH", tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Werte ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***    Höhenstandabgleich  ***
 | |
| // ******************************
 | |
| SCREEN s_hoehenstandabgleich()
 | |
| {
 | |
|   int    offset_vl = 0;
 | |
|   int    offset_vr = 0;
 | |
|   int    offset_hl = 0;
 | |
|   int    offset_hr = 0;
 | |
|   int    steigung_vl = 0;
 | |
|   int    steigung_vr = 0;
 | |
|   int    steigung_hl = 0;
 | |
|   int    steigung_hr = 0;
 | |
|   int    nullpunkt_vl = 0;
 | |
|   int    nullpunkt_vr = 0;
 | |
|   int    nullpunkt_hl = 0;
 | |
|   int    nullpunkt_hr = 0;
 | |
|   int    abw_vl = 0;
 | |
|   int    abw_vr = 0;
 | |
|   int    abw_hl = 0;
 | |
|   int    abw_hr = 0;
 | |
|   real   tmpr = 0;
 | |
|   real   tmpr_steig = 0;
 | |
|   real   tmpr_null  = 0;
 | |
|   string tmps = "";
 | |
|   string tmpn = "";
 | |
|   string offset_einh    = "no response";
 | |
|   string offset_einh2   = "Einheitenfehler";
 | |
|   string steigung_einh  = "no response";
 | |
|   string nullpunkt_einh = "no response";
 | |
|   
 | |
| 
 | |
|   string text_var= "";
 | |
|   string chk_jobstatus="";
 | |
|   string err_jobstatus  = "none";
 | |
|   int    input_state_key_1 = 0;
 | |
|   int    input_state_key_2 = 0;
 | |
|   int    input_state_key_3 = 0;
 | |
|   int    input_state_key_4 = 0;
 | |
|   
 | |
|   ftextout("Höhenstandabgleichwerte",1,0,1,0);
 | |
|   ftextout("",3,0,0,0);
 | |
|   LINE("","")
 | |
|   {
 | |
|     ftextout("aktuelle Abgleichwerte",1,0,0,1);
 | |
|     // aktuelle Werte lesen
 | |
|     INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_HGLV", "", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|     if(chk_jobstatus == "OKAY")
 | |
|     {
 | |
|         INPAapiResultInt(  offset_vl,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_FLH_WERT", 1 );
 | |
|         INPAapiResultInt(  offset_vr,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_FRH_WERT", 1 );
 | |
|         INPAapiResultInt(  offset_hl,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_RLH_WERT", 1 );
 | |
|         INPAapiResultInt(  offset_hr,   "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_RRH_WERT", 1 );
 | |
|         INPAapiResultText( offset_einh, "STAT_NULLPUNKT_OFFSET_DRUCK_HGLV_EINH", 1, "" );
 | |
|     }
 | |
|     else {
 | |
|         err_jobstatus = chk_jobstatus;
 | |
|     }
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "1", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|     if(chk_jobstatus == "OKAY")
 | |
|     {
 | |
|         INPAapiResultInt(  steigung_vl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|         INPAapiResultInt(  nullpunkt_vl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|         INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|         INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|     }
 | |
|     else {
 | |
|         err_jobstatus = chk_jobstatus;
 | |
|     }
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "2", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|     if(chk_jobstatus == "OKAY")
 | |
|     {
 | |
|         INPAapiResultInt(  steigung_vr,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|         INPAapiResultInt(  nullpunkt_vr,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|     }
 | |
|     else {
 | |
|         err_jobstatus = chk_jobstatus;
 | |
|     }
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "3", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|     if(chk_jobstatus == "OKAY")
 | |
|     {
 | |
|         INPAapiResultInt(  steigung_hl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|         INPAapiResultInt(  nullpunkt_hl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|     }
 | |
|     else {
 | |
|         err_jobstatus = chk_jobstatus;
 | |
|     }
 | |
| 
 | |
|     INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "4", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|     if(chk_jobstatus == "OKAY")
 | |
|     {
 | |
|         INPAapiResultInt(  steigung_hr,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|         INPAapiResultInt(  nullpunkt_hr,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|     }
 | |
|     // Aktuelle Werte darstellen
 | |
|     // Parameter
 | |
|     ftextout( "Wert Sensornullpunkt VL", 3, 1, 0, 0 );
 | |
|         ftextout( "Offset: ", 2, 55, 0, 0 );
 | |
|         ftextout( "Differenz zw. Sensornullpunkt", 2, 60, 0, 0 );
 | |
|     ftextout( "und gelernter Nulllage", 3, 60, 0, 0 );
 | |
|     ftextout( ":", 3, 17, 0, 0 );
 | |
|     inttoreal(nullpunkt_vl, tmpr);
 | |
|     analogout( tmpr, 3, 18, 0, 5000, 0, 5000, "" );
 | |
|     ftextout( nullpunkt_einh, 3, 49, 0, 0 );
 | |
| 
 | |
|     ftextout( "Steigung VL", 5, 1, 0, 0 );
 | |
|     ftextout( ":", 5, 17, 0, 0 );
 | |
|     inttoreal(steigung_vl, tmpr);
 | |
| //    analogout( tmpr, 5, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 5, 18, 0, 0 );
 | |
|     ftextout( steigung_einh, 5, 23, 0, 0 );
 | |
| 
 | |
|     ftextout( "Wert Sensornullpunkt VR", 8, 1, 0, 0 );
 | |
|     ftextout( ":", 8, 17, 0, 0 );
 | |
|     inttoreal(nullpunkt_vr, tmpr);
 | |
|     analogout( tmpr, 8, 18, 0, 5000, 0, 5000, "" );
 | |
|     ftextout( nullpunkt_einh, 8, 49, 0, 0 );
 | |
| 
 | |
|     ftextout( "Steigung VR", 10, 1, 0, 0 );
 | |
|     ftextout( ":", 10, 17, 0, 0 );
 | |
|     inttoreal(steigung_vr, tmpr);
 | |
| //    analogout( tmpr, 10, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 10, 18, 0, 0 );
 | |
|     ftextout( steigung_einh, 10, 23, 0, 0 );
 | |
| 
 | |
|     ftextout( "Wert Sensornullpunkt HL", 13, 1, 0, 0 );
 | |
|     ftextout( ":", 13, 17, 0, 0 );
 | |
|     inttoreal(nullpunkt_hl, tmpr);
 | |
|     analogout( tmpr, 13, 18, 0, 5000, 0, 5000, "" );
 | |
|     ftextout( nullpunkt_einh, 13, 49, 0, 0 );
 | |
| 
 | |
|     ftextout( "Steigung HL", 15, 1, 0, 0 );
 | |
|     ftextout( ":", 15, 17, 0, 0 );
 | |
|     inttoreal(steigung_hl, tmpr);
 | |
| //    analogout( tmpr, 15, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 15, 18, 0, 0 );
 | |
|         ftextout( steigung_einh, 15, 23, 0, 0 );
 | |
| 
 | |
|     ftextout( "Wert Sensornullpunkt HR", 18, 1, 0, 0 );
 | |
|     ftextout( ":", 18, 17, 0, 0 );
 | |
|     inttoreal(nullpunkt_hr, tmpr);
 | |
|     analogout( tmpr, 18, 18, 0, 5000, 0, 5000, "" );
 | |
|     ftextout( nullpunkt_einh, 18, 49, 0, 0 );
 | |
| 
 | |
|     ftextout( "Steigung HR", 20, 1, 0, 0 );
 | |
|     ftextout( ":", 20, 17, 0, 0 );
 | |
|     inttoreal(steigung_hr, tmpr);
 | |
| //    analogout( tmpr, 20, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //    tmpr= tmpr/1000;
 | |
|     realtostring( tmpr, "5.0",text_var );
 | |
|     ftextout( text_var, 20, 18, 0, 0 );
 | |
|     ftextout( steigung_einh, 20, 23, 0, 0 );
 | |
| 
 | |
|     // Offsetwerte
 | |
|     ftextout( "Offset VL", 5, 55, 0, 0 );
 | |
|     ftextout( ":", 5, 62, 0, 0 );
 | |
|     inttoreal(offset_vl, tmpr);
 | |
|     inttoreal(steigung_vl, tmpr_steig);
 | |
|     inttoreal(nullpunkt_vl, tmpr_null);
 | |
|     offset_einh2 = offset_einh;
 | |
|     if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|     {   // umskalieren von mV auf mm
 | |
|         tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|         offset_einh2 = "mm";
 | |
|     }
 | |
|     realtostring (tmpr, "4.2", tmps);
 | |
|     ftextout( tmps+" "+offset_einh2, 5, 64, 0, 0 );
 | |
| 
 | |
|     ftextout( "Offset VR",10, 55, 0, 0 );
 | |
|     ftextout( ":", 10, 62, 0, 0 );
 | |
|     inttoreal(offset_vr, tmpr);
 | |
|     inttoreal(steigung_vr, tmpr_steig);
 | |
|     inttoreal(nullpunkt_vr, tmpr_null);
 | |
|     offset_einh2 = offset_einh;
 | |
|     if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|     {   // umskalieren von mV auf mm
 | |
|         tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|         offset_einh2 = "mm";
 | |
|     }
 | |
|     realtostring (tmpr, "4.2", tmps);
 | |
|     ftextout( tmps+" "+offset_einh2, 10, 64, 0, 0 );
 | |
| 
 | |
|     ftextout( "Offset HL", 15, 55, 0, 0 );
 | |
|     ftextout( ":", 15, 62, 0, 0 );
 | |
|     inttoreal(offset_hl, tmpr);
 | |
|     inttoreal(steigung_hl, tmpr_steig);
 | |
|     inttoreal(nullpunkt_hl, tmpr_null);
 | |
|     offset_einh2 = offset_einh;
 | |
|     if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|     {   // umskalieren von mV auf mm
 | |
|         tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|         offset_einh2 = "mm";
 | |
|     }
 | |
|     realtostring (tmpr, "4.2", tmps);
 | |
|     ftextout( tmps+" "+offset_einh2, 15, 64, 0, 0 );
 | |
| 
 | |
|     ftextout( "Offset HR", 20, 55, 0, 0 );
 | |
|     ftextout( ":", 20, 62, 0, 0 );
 | |
|     inttoreal(offset_hr, tmpr);
 | |
|     inttoreal(steigung_hr, tmpr_steig);
 | |
|     inttoreal(nullpunkt_hr, tmpr_null);
 | |
|     offset_einh2 = offset_einh;
 | |
|     if ((steigung_einh == "mV/m") && (offset_einh == "mV"))
 | |
|     {   // umskalieren von mV auf mm
 | |
|         tmpr = (tmpr - tmpr_null)/ tmpr_steig * 1000;
 | |
|         offset_einh2 = "mm";
 | |
|     }
 | |
|     realtostring (tmpr, "4.2", tmps);
 | |
|     ftextout( tmps+" "+offset_einh2, 20, 64, 0, 0 );
 | |
| 
 | |
|     if(err_jobstatus != "none")
 | |
|     {
 | |
|         ftextout( "Diagnosefehler", 8, 70, 0, 0);
 | |
|         ftextout( err_jobstatus, 10, 70, 0, 0);
 | |
|         ftextout( "Codierung prüfen!", 12, 70, 0, 0 );
 | |
|     }
 | |
|   }
 | |
|   LINE ( "","" )
 | |
|   {
 | |
|     if(hs_abgleichen_1 == 1)
 | |
|     {
 | |
|            hs_abgleichen_1 = 0; 
 | |
|       inputint( abw_vl, "Höhenstandabgleich", "aktuelle Abweichung von Nulllage (Ausgefedert positiv) vorne links:", -200, 200 );
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(abw_vl, tmps);
 | |
|         INPAapiJob( sgbd, "START_OFFSET_WERTE_HGLV", "1;"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "Nulllagenabweichung zu groß! Spannung bei Nulllage außerhalb des Sensorbereichs" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|         if(hs_abgleichen_2 == 1)
 | |
|     {
 | |
|           hs_abgleichen_2 = 0;  
 | |
|       inputint( abw_vr, "Höhenstandabgleich", "aktuelle Abweichung von Nulllage (Ausgefedert positiv) vorne rechts:", -200, 200 );
 | |
|       getinputstate( input_state_key_2 );
 | |
|       if ( input_state_key_2 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_2  == 0 )
 | |
|       {
 | |
|         inttostring(abw_vr, tmps);
 | |
|         INPAapiJob( sgbd, "START_OFFSET_WERTE_HGLV", "2;"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" ){} 
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "Nulllagenabweichung zu groß! Spannung bei Nulllage außerhalb des Sensorbereichs" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|         if(hs_abgleichen_3 == 1)
 | |
|     {
 | |
|       hs_abgleichen_3 = 0; 
 | |
|       inputint( abw_hl, "Höhenstandabgleich", "aktuelle Abweichung von Nulllage (Ausgefedert positiv) hinten links:", -200, 200 );
 | |
|       getinputstate( input_state_key_3 );
 | |
|       if ( input_state_key_3 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_3  == 0 )
 | |
|       {
 | |
|         inttostring(abw_hl, tmps);
 | |
|         INPAapiJob( sgbd, "START_OFFSET_WERTE_HGLV", "3;"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" ) {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "Nulllagenabweichung zu groß! Spannung bei Nulllage außerhalb des Sensorbereichs" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|         if(hs_abgleichen_4 == 1)
 | |
|     {
 | |
|           hs_abgleichen_4 = 0;  
 | |
|       inputint( abw_hr, "Höhenstandabgleich", "aktuelle Abweichung von Nulllage (Ausgefedert positiv) hinten rechts:", -200, 200 );
 | |
|       getinputstate( input_state_key_4 );
 | |
|       if ( input_state_key_4 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_4  == 0 )
 | |
|       {
 | |
|         inttostring(abw_hr, tmps);
 | |
|         INPAapiJob( sgbd, "START_OFFSET_WERTE_HGLV", "4;"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "Nulllagenabweichung zu groß! Spannung bei Nulllage außerhalb des Sensorbereichs" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     if(hs_abgleichen_5 == 1)
 | |
|     {
 | |
|           hs_abgleichen_5 = 0; 
 | |
| 
 | |
|           INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "1", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|           INPAapiResultInt(  steigung_vl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|           INPAapiResultInt(  nullpunkt_vl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|           INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|           INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
| 
 | |
|       input2int( nullpunkt_vl, steigung_vl, "Höhenstandabgleich", "vorne links:", "Sensornullpunkt:", "Sensorsteigung:", 0, 5000 , -30000, 30000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(nullpunkt_vl, tmpn);
 | |
|         inttostring(steigung_vl, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HGLV", "1;"+tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     if(hs_abgleichen_6 == 1)
 | |
|     {
 | |
|           hs_abgleichen_6 = 0; 
 | |
| 
 | |
|           INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "2", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|           INPAapiResultInt(  steigung_vr,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|           INPAapiResultInt(  nullpunkt_vr,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|           INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|           INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
| 
 | |
|       input2int( nullpunkt_vr, steigung_vr, "Höhenstandabgleich", "vorne rechts:", "Sensornullpunkt:", "Sensorsteigung:", 0, 5000 , -30000, 30000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(nullpunkt_vr, tmpn);
 | |
|         inttostring(steigung_vr, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HGLV", "2;"+tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     if(hs_abgleichen_7 == 1)
 | |
|     {
 | |
|           hs_abgleichen_7 = 0; 
 | |
| 
 | |
|           INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "3", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|           INPAapiResultInt(  steigung_hl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|           INPAapiResultInt(  nullpunkt_hl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|           INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|           INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
| 
 | |
|       input2int( nullpunkt_hl, steigung_hl, "Höhenstandabgleich", "hinten links:", "Sensornullpunkt:", "Sensorsteigung:", 0, 5000 , -30000, 30000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(nullpunkt_hl, tmpn);
 | |
|         inttostring(steigung_hl, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HGLV", "3;"+tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     if(hs_abgleichen_8 == 1)
 | |
|     {
 | |
|           hs_abgleichen_8 = 0; 
 | |
| 
 | |
|           INPAapiJob( sgbd, "STATUS_NEUE_SENSOR_WERTE_HGLV", "4", "" );
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
|       if(chk_jobstatus == "OKAY")
 | |
|       {
 | |
|           INPAapiResultInt(  steigung_vl,   "STAT_SENSOR_STEIGUNG_HGLV_WERT", 1 );
 | |
|           INPAapiResultInt(  nullpunkt_vl,  "STAT_SENSOR_NULLPKT_HGLV_WERT", 1 );
 | |
|           INPAapiResultText( steigung_einh, "STAT_SENSOR_STEIGUNG_HGLV_EINH", 1, "" );
 | |
|           INPAapiResultText( nullpunkt_einh, "STAT_SENSOR_NULLPKT_HGLV_EINH", 1, "" );
 | |
|       }
 | |
|       else {
 | |
|           err_jobstatus = chk_jobstatus;
 | |
|       }
 | |
| 
 | |
|       input2int( nullpunkt_hr, steigung_hr, "Höhenstandabgleich", "hinten rechts:", "Sensornullpunkt:", "Sensorsteigung:", 0, 5000 , -30000, 30000);
 | |
|       getinputstate( input_state_key_1 );
 | |
|       if ( input_state_key_1 == 1 )
 | |
|       {   // Eingabe 1 wurde mit Abbruch abgeschlossen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|       }
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_key_1  == 0 )
 | |
|       {
 | |
|         inttostring(nullpunkt_hr, tmpn);
 | |
|         inttostring(steigung_hr, tmps);
 | |
|         INPAapiJob( sgbd, "START_LERNEN_NEUE_SENSOR_WERTE_HGLV", "4;"+tmpn+";"+tmps, "" );
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )  {}
 | |
| 
 | |
|         else if( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         infobox ( "Wert ausserhalb zulässigen Bereichs", "" );  
 | |
| 
 | |
|         else 
 | |
|         {
 | |
|             infobox ( "Fehler", "Fehlertyp: "+chk_jobstatus );
 | |
|             userboxclose( 0 );
 | |
|             viewclose();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|   }
 | |
| }
 | |
| // ***************************
 | |
| // *** Stati Sensoren ARS  ***
 | |
| // ***************************
 | |
| // wird ueber F6 aktiviert 'Sensoren'
 | |
| SCREEN s_stati_sensor()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   string text_var = "";
 | |
|   real zahl_var;  
 | |
| 
 | |
|   // 5 Volt / 10bit --> 5 Volt /1024
 | |
|   real EinBitVoltWert = 0.0048828125;
 | |
|   real SensorWert_VA_roh;
 | |
|   real SensorWert_VA;
 | |
|   real SensorWert_HA_roh;
 | |
|   real SensorWert_HA;
 | |
| 
 | |
|   real SensorWert_RV_roh;
 | |
|   real SensorWert_RV;
 | |
|   real SensorWert_QU_roh;
 | |
|   real SensorWert_QU;
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Sensoren", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Drucksensor VA", 1, 1, 0, 0 );
 | |
|     ftextout( ":", 1, 35, 0, 0 );
 | |
|     // Ausgabe des Telegrammwertes
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_WERT", 1, "" );
 | |
|     ftextout( text_var, 1, 37, 0, 0 );
 | |
|     
 | |
|     // Fehlertext fuer den Sensor
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 1, 45, 0, 0 );
 | |
| 
 | |
|     ftextout( "Status Drucksensor HA", 3, 1, 0, 0 );
 | |
|     ftextout( ":", 3, 35, 0, 0 );
 | |
|     // Ausgabe des Telegrammwertes
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 37, 0, 0 );
 | |
|     
 | |
|     // Fehlertext fuer den Sensor
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 45, 0, 0 );
 | |
| 
 | |
|     ftextout( "Status Schaltstellungssensor", 5, 1, 0, 0 );
 | |
|     ftextout( ":", 5, 35, 0, 0 );
 | |
|     // Ausgabe des Telegrammwertes
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_WERT", 1, "" );
 | |
|     ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|     // Fehlertext fuer den Sensor
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_TEXT", 1, "" );
 | |
|     ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
|     ftextout( "Status Querbeschleunigungssensor", 7, 1, 0, 0 );
 | |
|     ftextout( ":", 7, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHLSEN_WERT", 1, "" );
 | |
|     ftextout( text_var, 7, 37, 0, 0 );
 | |
|     
 | |
|     // Fehlertext fuer den Sensor
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHLSEN_TEXT", 1, "" );
 | |
|     ftextout( text_var, 7, 45, 0, 0 );
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Ausgabe des Telegrammwertes
 | |
|     // Druck VA
 | |
|     ftextout( "Druck VA (Spg. Roh)", 9, 1, 0, 0 );
 | |
|     ftextout( ":", 9, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_SW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "3.3" , text_var );
 | |
|     ftextout( text_var, 9, 37, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 9, 45, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 9, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 9, 71, 0, 0 );
 | |
| 
 | |
|     
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Druck HA
 | |
|     ftextout( "Druck HA (Spg. Roh)", 11, 1, 0, 0 );
 | |
|     ftextout( ":", 11, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_SW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "3.3" , text_var );
 | |
|     ftextout( text_var, 11, 37, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 11, 45, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 11, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 11, 71, 0, 0 );
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Schaltstellung RV
 | |
|     ftextout( "Schaltstellung RV (Spg. Roh)", 13, 1, 0, 0 );
 | |
|     ftextout( ":", 13, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_SW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "1.0" , text_var );
 | |
|     ftextout( text_var, 13, 37, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 45, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 13, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 13, 71, 0, 0 );
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Querbeschleunigung
 | |
|     ftextout( "Querbeschleunigung (Spg. Roh)", 15, 1, 0, 0 );
 | |
|     ftextout( ":", 15, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 15, 37, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 15, 45, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 15, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_QUERBESCHL_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 15, 71, 0, 0 );
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
|     ////////////////////////////////////////////////////////////////////////////////
 | |
|     
 | |
|     // Oelstand
 | |
|     ftextout( "Oelstand (Spg. Roh)", 17, 1, 0, 0 );
 | |
|     ftextout( ":", 17, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_OELSTAND_SW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "1.0" , text_var );
 | |
|     ftextout( text_var, 17, 37, 0, 0 );
 | |
|     
 | |
|     INPAapiResultText( text_var, "STAT_OELSTAND_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 17, 45, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_OELSTAND_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 17, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( text_var, "STAT_OELSTAND_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 17, 71, 0, 0 );
 | |
| 
 | |
|     // Weckleitung
 | |
|     ftextout( "Weckleitung", 19, 1, 0, 0 );
 | |
|     ftextout( ":", 19, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_WECKLEITUNG_HW_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     realtostring ( zahl_var, "1.0" , text_var );
 | |
|     ftextout( text_var, 19, 37, 0, 0 );
 | |
|     
 | |
|     // Pegel
 | |
|     INPAapiResultText( text_var, "STAT_WECKLEITUNG_HW_EINH", 1, "" );
 | |
|     ftextout( text_var, 19, 45, 0, 0 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ****************************
 | |
| // ***  Stati Versorgungen  ***
 | |
| // ****************************
 | |
| // wird ueber F7 aktiviert 'Versorgungen'
 | |
| SCREEN s_versorgungen()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Versorgungen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
|   
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "STATUS_VERSORGUNGEN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Versorgung Klemme 30 (Batterie)", 1, 1, 0, 0 );
 | |
|     ftextout( ":", 1, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_KLEMME30_WERT", 1, "" );
 | |
|     // 
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     // 2 Vorkommastellen, 3 Nachkommastellen
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 1, 37, 0, 0 );
 | |
|     
 | |
|     // Einheit [Volt]
 | |
|     INPAapiResultText( text_var, "STAT_KLEMME30_EINH", 1, "" );
 | |
|     ftextout( text_var, 1, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|     ftextout( "Versorgung Schaltstellungssensor", 3, 1, 0, 0 );
 | |
|     ftextout( ":", 3, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_SCHALTSEN_WERT", 1, "" );
 | |
| 
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     // 2 Vorkommastellen, 3 Nachkommastellen
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 3, 37, 0, 0 );
 | |
|     
 | |
|     // Einheit [Volt]
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_SCHALTSEN_EINH", 1, "" );
 | |
|     ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Versorgung Drucksensor VA", 5, 1, 0, 0 );
 | |
|     ftextout( ":", 5, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_VA_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     // 2 Vorkommastellen, 3 Nachkommastellen
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 5, 37, 0, 0 );
 | |
|     
 | |
|     // Einheit [Volt]
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Versorgung Drucksensor HA", 7, 1, 0, 0 );
 | |
|     ftextout( ":", 7, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_HA_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     // 2 Vorkommastellen, 3 Nachkommastellen
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 7, 37, 0, 0 );
 | |
|     
 | |
|     // Einheit [Volt]
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 7, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|     ftextout( "Versorgung Querbeschleunigungssensor", 9, 1, 0, 0 );
 | |
|     ftextout( ":", 9, 35, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_QUERBESCHL_WERT", 1, "" );
 | |
|     stringtoreal( text_var, zahl_var );
 | |
|     // 2 Vorkommastellen, 3 Nachkommastellen
 | |
|     realtostring ( zahl_var, "2.3" , text_var );
 | |
|     ftextout( text_var, 9, 37, 0, 0 );
 | |
|     
 | |
|     // Einheit [Volt]
 | |
|     INPAapiResultText( text_var, "STAT_VERSORGUNG_QUERBESCHL_EINH", 1, "" );
 | |
|     ftextout( text_var, 9, 50, 0, 0 );
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *****************************
 | |
| // *** Steuerscreen Anzeigen ***
 | |
| // *****************************
 | |
| // ********************************
 | |
| // *** Cockpit Auswahl Screen   ***
 | |
| // ********************************
 | |
| // wird ueber F2 aktiviert 'Cockpit'
 | |
| SCREEN s_cockpit()
 | |
| {
 | |
|   string text_var = "";
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
| 
 | |
|   ftextout("Cockpit Meldungen absetzen",1,0,1,0);
 | |
|   ftextout("",2,0,0,0);
 | |
| 
 | |
|   // zeigt Alive Zaehler an
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   ftextout( "SG Status", 3, 50, 0, 0 );
 | |
|   ftextout( ":", 3, 58 , 0, 0 );
 | |
|   
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|    
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 60, 0, 0 );
 | |
| 
 | |
|   LINE("","")
 | |
|   {
 | |
|     ftextout( "< F1 >  Ueberwachung eingeschraenkt"        ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  eingeschraenkter Regelkomfort"      ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Fail Safe"                          ,7, 5, 0, 1 );
 | |
|     ftextout( "< F4 >  Oelverlust"                         ,9, 5, 0, 1 );
 | |
|     ftextout( "< F5 >  Fail Safe temporaer"               ,11, 5, 0, 1 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *********************************
 | |
| // *** Cockpit Meldungsanzeige   ***
 | |
| // *********************************
 | |
| SCREEN s_cockpit_anzeige()
 | |
| {
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   // Ueberwachung eingeschraenkt
 | |
|   if ( toggle_1 == 1 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "JA","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     INPAapiJob( sgbd, "STEUERN_ARS_CHECKCONTROL", "1", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       INPAapiResultText( text_var, "CHECK_CONTROL_MELDUNG_TEXT", 1, "" );
 | |
|       // ( Text in der Menueleiste, auszugebender Text )
 | |
|       infobox ( text_var, "Meldung wurde erfolgreich ans Cockpit gesendet" );
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );  
 | |
|     else
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
| 
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "NEIN","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     toggle_1 = 0;
 | |
|   }
 | |
| 
 | |
|   // eingeschraaenkter Regelkomfort
 | |
|   if ( toggle_2 == 2 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "JA","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     INPAapiJob( sgbd, "STEUERN_ARS_CHECKCONTROL", "2", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       INPAapiResultText( text_var, "CHECK_CONTROL_MELDUNG_TEXT", 1, "" );
 | |
|       // ( Text in der Menueleiste, auszugebender Text )
 | |
|       infobox ( text_var, "Meldung wurde erfolgreich ans Cockpit gesendet" );
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|     else
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
| 
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "NEIN","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|  
 | |
|     toggle_2 = 0;
 | |
|   }
 | |
|   
 | |
|   // Fail Safe
 | |
|   if ( toggle_3 == 3 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "JA","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     INPAapiJob( sgbd, "STEUERN_ARS_CHECKCONTROL", "3", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       INPAapiResultText( text_var, "CHECK_CONTROL_MELDUNG_TEXT", 1, "" );
 | |
|       // ( Text in der Menueleiste, auszugebender Text )
 | |
|       infobox ( text_var, "Meldung wurde erfolgreich ans Cockpit gesendet" );
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|     else
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
| 
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "NEIN","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     toggle_3 = 0;
 | |
|   }
 | |
| 
 | |
|   // Oelverlust
 | |
|   if ( toggle_4 == 4 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "JA","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     INPAapiJob( sgbd, "STEUERN_ARS_CHECKCONTROL", "4", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       INPAapiResultText( text_var, "CHECK_CONTROL_MELDUNG_TEXT", 1, "" );
 | |
|       // ( Text in der Menueleiste, auszugebender Text )
 | |
|       infobox ( text_var, "Meldung wurde erfolgreich ans Cockpit gesendet" );
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|     else
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
| 
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "NEIN","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     
 | |
|     toggle_4 = 0;
 | |
|   }
 | |
| 
 | |
|   // Fail Safe temporaer
 | |
|   if ( toggle_5 == 5 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "JA","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     INPAapiJob( sgbd, "STEUERN_ARS_CHECKCONTROL", "5", "" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       INPAapiResultText( text_var, "CHECK_CONTROL_MELDUNG_TEXT", 1, "" );
 | |
|       // ( Text in der Menueleiste, auszugebender Text )
 | |
|       infobox ( text_var, "Meldung wurde erfolgreich ans Cockpit gesendet" );
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|     else
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
| 
 | |
|     INPAapiJob( sgbd, "FS_SPERREN", "NEIN","" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     
 | |
|     toggle_5 = 0;
 | |
|   }
 | |
| 
 | |
|   setscreen( s_cockpit, TRUE );
 | |
| 
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   Ventile Steuern      ***
 | |
| // *** Mehrfachbestromung     ***
 | |
| // ******************************
 | |
| // wird ueber F3 aktiviert 'Ansteuern'
 | |
| SCREEN s_mehr_ventile_steuern()
 | |
| {
 | |
|   int status_ars;
 | |
|   bool warnung_va_erfolgt = FALSE;
 | |
|   bool warnung_ha_erfolgt = FALSE;
 | |
|   
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   real stat_istdruck_va;
 | |
|   real stat_istdruck_ha;
 | |
|   real mgl_restdruck;
 | |
|   real mgl_reststrom;
 | |
|   real eingabe_tmp;
 | |
|   
 | |
|   //string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   ftextout( "Simultanbestromung der Ventile SV, RV, PropVA, PropHA", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 1, 0 );
 | |
|   
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   // Sicherheitsventil und Richtungsventil
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Sicherheitsventil
 | |
|     ftextout( "Sicherheitsventil wird dauerbestromt", 1, 0, 0, 0 );
 | |
|     digitalout( sv_ein_aus, 1, 30, "Ein", "Aus" );
 | |
|   
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|     ftextout( "Status Sicherheitsventil", 3, 0, 0, 0 );
 | |
|     ftextout( ":", 3, 22, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 23, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 30, 0, 0 );
 | |
|   
 | |
|     ftextout( "Steuerstrom Sicherheitsventil", 5, 0, 0, 0 );
 | |
|     ftextout( ":", 5, 22, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_sv_ventil, 6, 0, 0, 3, 0, 3, "5.3" );
 | |
|   
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 35, 0, 0 );
 | |
|   
 | |
|   
 | |
|     // Sicherheitsventil
 | |
|     // Taste 'EIN' wurde gedrueckt
 | |
|     if ( sv_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 9, 1, 0, 0 );
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_PUSHHOLD", "", "" );
 | |
|   //      INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         sv_ein_aus = TRUE;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt (SV)", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
| //          setscreen( s_sv_schreiben, TRUE );
 | |
|         setscreen( s_steuern, TRUE );
 | |
|         setmenu( m_steuern );
 | |
|         sv_ein_aus = FALSE;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt (SV) --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
| //          setscreen( s_sv_schreiben, TRUE );
 | |
|         setscreen( s_steuern, TRUE );
 | |
|         setmenu( m_steuern );
 | |
|         sv_ein_aus = FALSE;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|   
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Richtungsventil
 | |
|     ftextout( "Richtungsventil wird dauerbestromt", 1, 45, 0, 0 );
 | |
|     //ftextout( "", 3, 0, 0, 0 );
 | |
|     digitalout( rv_ein_aus, 1, 75, "Ein", "Aus" );
 | |
|   
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   
 | |
|     ftextout( "Status Richtungsventil", 3, 45, 0, 0 );
 | |
|     ftextout( ":", 3, 67, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 68, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 75, 0, 0 );
 | |
|   
 | |
|   
 | |
|     ftextout( "Steuerstrom Richtungsventil", 5, 45, 0, 0 );
 | |
|     ftextout( ":", 5, 67, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_rv_ventil, 6, 45, 0, 3, 0, 3, "5.3" );
 | |
|   
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 80, 0, 0 );
 | |
|   
 | |
| 
 | |
|     if ( rv_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 9, 45, 0, 0 );
 | |
| 
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_PUSHHOLD", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         rv_ein_aus = TRUE;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt (RV)", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_steuern, TRUE );
 | |
|         setmenu( m_steuern );
 | |
|         rv_ein_aus = FALSE;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt (RV) --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_steuern, TRUE );
 | |
|         setmenu( m_steuern );
 | |
|         rv_ein_aus = FALSE;
 | |
|       }
 | |
|     }
 | |
|  
 | |
|   }
 | |
|   //ende Line Sicherheitsventil und Richtungsventil
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ftextout( "", 0, 0, 1, 0 );
 | |
|   }
 | |
| 
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   // Propventil VA mit Fehlerpruefung UND
 | |
|   // Propventil HA mit Fehlerpruefung
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     // vorab alle notwendigen Grenzen berechnen:
 | |
|     //
 | |
|     // Roter Bereich VA abhaengig vom Istdruck HA
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     INPAapiResultAnalog( stat_istdruck_ha, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|     INPAapiResultAnalog( stat_istdruck_va, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     mgl_restdruck = 180;
 | |
|     mgl_reststrom = 0.453 + (0.0069375 * (180 - stat_istdruck_ha));
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Propventil VA mit Fehlerpruefung 
 | |
|     ftextout( "Proportionalventil VA wird dauerbestromt", 1, 0, 0, 0 );
 | |
|     digitalout( PropVA_ein_aus, 1, 30, "Ein", "Aus" );
 | |
|     ftextout( "Status Propventil VA", 3, 0, 0, 0 );
 | |
|     ftextout( ":", 3, 22, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 23, 0, 0 );
 | |
|     
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 30, 0, 0 );
 | |
| 
 | |
| 
 | |
|     ftextout( "Steuerstrom Propventil VA", 5, 0, 0, 0 );
 | |
|     ftextout( ":", 5, 22, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     // Beschriftungen loeschen, neu ausgeben
 | |
|     clearrect (20,0,2,30);
 | |
|     analogout( strom_va_ventil, 6, 0, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
| 
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 35, 0, 0 );
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Ist Druck VA
 | |
|     ftextout( "Ist Druck VA", 9, 0, 0, 0 );
 | |
|     ftextout( ":", 9, 22, 0, 0 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( stat_istdruck_va, 10, 0, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 35, 0, 0 );
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     
 | |
|     // Taste 'EIN' wurde gedrueckt
 | |
|     if ( PropVA_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 14, 0, 0, 0 );
 | |
|     
 | |
|       if ( strom_va_1 == 1 )
 | |
|       {
 | |
|         //strom_var = "";
 | |
|         strom_var_va = "";
 | |
|         // zweimaliger Aufruf wird verhindert, Eingabe darf nur einmal aufgerufen werden
 | |
|         strom_va_1 = 0;
 | |
|         inputint( strom_va_mA, "Proportionalventil VA", "Steuerstrom in mA", 0, 3000 );
 | |
|         //
 | |
|         getinputstate( input_state_VA );
 | |
|         // Eingabe wurde mit Abbruch abgeschlossen
 | |
|         if ( input_state_VA == 1 )
 | |
|         {
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|         }
 | |
|         // Eingabe wurde mit OK abgeschlossen
 | |
|         else if ( input_state_VA == 0 )
 | |
|         {
 | |
|           // Variablenumwandlung int --> string
 | |
|           //inttostring( strom_va_mA, strom_var );        
 | |
|           inttostring( strom_va_mA, strom_var_va );        
 | |
|           // Dialog schliessen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|         }
 | |
|       }
 | |
|     
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_VA == 0 )
 | |
|       {
 | |
|         ftextout( "Proportionalventil VA bestromen MIT Fehlerpruefung", 13, 1, 0, 0 );
 | |
|         // Ventil faellt nach 2 sec wieder auf '0' Ampere zurueck
 | |
|         // Dauerbestromung sicherstellen bei Taste 'EIN'
 | |
|         // Strom Ausgabe mit Fehlerpruefung
 | |
|         //INPAapiJob( sgbd, "STEUERN_PVVA_PWM_MIT_FP", strom_var, "" );
 | |
|         INPAapiJob( sgbd, "STEUERN_PVVA_PWM_MIT_FP", strom_var_va, "" );
 | |
|       
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )
 | |
|         {
 | |
|           strom_va_1 = 0;
 | |
|           PropVA_ein_aus = TRUE;
 | |
|         }
 | |
|         else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         {
 | |
|           infobox ( "Randbedingungen wurden verletzt (PropVA)", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|           setscreen( s_steuern, TRUE );
 | |
|           setmenu( m_steuern );
 | |
|           PropVA_ein_aus = FALSE;
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           infobox ( "Randbedingungen wurden verletzt (PropVA) --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|           setscreen( s_steuern, TRUE );
 | |
|           setmenu( m_steuern );
 | |
|           PropVA_ein_aus = FALSE;
 | |
|   
 | |
|         }
 | |
|       }
 | |
|       strom_va_1 = 0;
 | |
| 
 | |
|       if (( sv_ein_aus == TRUE ) && ( PropVA_ein_aus == TRUE ) && ( PropHA_ein_aus == TRUE ))
 | |
|       {
 | |
|         stringtoreal( strom_var_va , eingabe_tmp );
 | |
|         if(eingabe_tmp > (mgl_reststrom*1000))
 | |
|         {
 | |
|            if(warnung_va_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil VA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_va_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|               warnung_va_erfolgt = FALSE;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // konstante Werte fuer Hinterachsgrenzen
 | |
|     mgl_restdruck = 180 - (stat_istdruck_va - stat_istdruck_ha);
 | |
|     mgl_reststrom = 0.453 + (0.0069375 * mgl_restdruck );
 | |
| 
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Propventil HA mit Fehlerpruefung
 | |
| 
 | |
|     ftextout( "Proportionalventil HA wird dauerbestromt", 1, 45, 0, 0 );
 | |
|     digitalout( PropHA_ein_aus, 1, 75, "Ein", "Aus" );
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Propventil HA", 3, 45, 0, 0 );
 | |
|     ftextout( ":", 3, 67, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 68, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 75, 0, 0 );
 | |
|   
 | |
|   
 | |
|     ftextout( "Steuerstrom Propventil HA", 5, 45, 0, 0 );
 | |
|     ftextout( ":", 5, 67, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     // Beschriftungen loeschen, neu ausgeben
 | |
|     clearrect (20,45,2,30);
 | |
|     analogout( strom_ha_ventil, 6, 45, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
|   
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 80, 0, 0 );
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     // Ist Druck HA
 | |
|     ftextout( "Ist Druck HA", 9, 45, 0, 0 );
 | |
|     ftextout( ":", 9, 67, 0, 0 );
 | |
| 
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     // Beschriftungen loeschen, neu ausgeben
 | |
|     clearrect (25,45,2,30);
 | |
|     analogout( stat_istdruck_ha, 10, 45, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|     // Einheit [bar]
 | |
|     INPAapiResultText( text_var, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|     ftextout( text_var, 10, 80, 0, 0 );
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     
 | |
|     if ( PropHA_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 14, 45, 0, 0 );
 | |
| 
 | |
|       if ( strom_ha_1 == 1 )
 | |
|       {
 | |
|         strom_var_ha = "";
 | |
|         strom_ha_1 = 0;
 | |
|         inputint( strom_ha_mA, "Proportionalventil HA", "Steuerstrom in mA", 0, 3000 );
 | |
|         //
 | |
|         getinputstate( input_state_HA );
 | |
|         // Eingabe wurde mit Abbruch abgeschlossen
 | |
|         if ( input_state == 1 )
 | |
|         {
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|         }
 | |
|         // Eingabe wurde mit OK abgeschlossen
 | |
|         else if ( input_state_HA == 0 )
 | |
|         {
 | |
|           // Variablenumwandlung int --> string
 | |
|           //inttostring( strom_ha_mA, strom_var );        
 | |
|           inttostring( strom_ha_mA, strom_var_ha );        
 | |
|           // Dialog schliessen
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       // nur bei OK ausfuehren
 | |
|       if ( input_state_HA == 0 )
 | |
|       {
 | |
|         ftextout( "Proportionalventil HA bestromen MIT Fehlerpruefung", 13, 45, 0, 0 );
 | |
|         // Strom Ausgabe mit Fehlerpruefung
 | |
|         //INPAapiJob( sgbd, "STEUERN_PVHA_PWM_MIT_FP", strom_var, "" );
 | |
|         INPAapiJob( sgbd, "STEUERN_PVHA_PWM_MIT_FP", strom_var_ha, "" );
 | |
|   
 | |
|         INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|         if ( chk_jobstatus == "OKAY" )
 | |
|         {
 | |
|           strom_ha_1 = 0;
 | |
|           PropHA_ein_aus = TRUE;
 | |
|         }
 | |
|         else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|         {
 | |
|           infobox ( "Randbedingungen wurden verletzt (PropHA)", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|           setscreen( s_steuern, TRUE );
 | |
|           setmenu( m_steuern );
 | |
|           PropHA_ein_aus = FALSE;
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           infobox ( "Randbedingungen wurden verletzt (PropHA) --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|           userboxclose( 0 );
 | |
|           viewclose();
 | |
|           setscreen( s_steuern, TRUE );
 | |
|           setmenu( m_steuern );
 | |
|           PropHA_ein_aus = FALSE;
 | |
|         }
 | |
|       }
 | |
|   
 | |
|       strom_ha_1 = 0;
 | |
| 
 | |
|       if (( sv_ein_aus == TRUE ) && ( PropVA_ein_aus == TRUE ) && ( PropHA_ein_aus == TRUE ))
 | |
|       {
 | |
|         stringtoreal( strom_var_ha , eingabe_tmp );
 | |
|         if(eingabe_tmp > (mgl_reststrom*1000))
 | |
|         {
 | |
|            if(warnung_ha_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil HA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_ha_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|               warnung_ha_erfolgt = FALSE;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     
 | |
|   }
 | |
|   // Ende 'Line' PropVA und PropHA
 | |
|   
 | |
| 
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************
 | |
| // ***   Ventile Steuern      ***
 | |
| // ***    Rampenlogik         ***
 | |
| // ******************************
 | |
| // wird ueber F5 aktiviert 'Ansteuern'
 | |
| SCREEN s_rampen_steuern()
 | |
| {
 | |
|   int status_ars;
 | |
| 
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   real stat_istdruck_va;
 | |
|   real stat_istdruck_ha;
 | |
|   real mgl_restdruck;
 | |
|   real mgl_reststrom;
 | |
|   real eingabe_tmp;
 | |
|   real r_min = 0;
 | |
|   real r_max = 0;
 | |
|   
 | |
|   int int_eingabe_tmp;
 | |
|   
 | |
|   string text_var = "";
 | |
|   string text_var2 = "";
 | |
|   string chk_jobstatus = "";
 | |
|   string job_parameter = "";
 | |
|   string text_tmp = "";
 | |
|   string text_va_druck_einh = "";
 | |
|   string text_ha_druck_einh = "";
 | |
| 
 | |
|   ftextout( "Rampenlogik fuer Ventilansteuerung", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 1, 0 );
 | |
|   
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   // Sicherheitsventil und Richtungsventil
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Sicherheitsventil
 | |
|     ftextout( "Sicherheitsventil bei Rampe", 1, 0, 0, 0 );
 | |
|     digitalout( sv_ein_aus, 1, 30, "Ein", "Aus" );
 | |
|   
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|     ftextout( "Status Sicherheitsventil", 3, 0, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 23, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 30, 0, 0 );
 | |
|   
 | |
|     ftextout( "Steuerstrom Sicherheitsventil:", 5, 0, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_sv_ventil, 6, 0, 0, 3, 0, 3, "5.3" );
 | |
|   
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 35, 0, 0 );
 | |
|   
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Richtungsventil
 | |
|     ftextout( "Richtungsventil bei Rampe", 1, 45, 0, 0 );
 | |
|     //ftextout( "", 3, 0, 0, 0 );
 | |
|     digitalout( rv_ein_aus, 1, 75, "Ein", "Aus" );
 | |
|   
 | |
|     INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Richtungsventil:", 3, 45, 0, 0 );
 | |
|     ftextout( ":", 3, 67, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 68, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 75, 0, 0 );
 | |
|   
 | |
|   
 | |
|     ftextout( "Steuerstrom Richtungsventil:", 5, 45, 0, 0 );
 | |
|     // Stromwert auslesen
 | |
|     INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|     //                         Zl, Sp, min  max    Format
 | |
|     analogout( strom_rv_ventil, 6, 45, 0, 3, 0, 3, "5.3" );
 | |
|   
 | |
|     // Einheit [Ampere]
 | |
|     INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|     ftextout( text_var, 6, 80, 0, 0 );
 | |
|   }
 | |
|   //ende Line Sicherheitsventil und Richtungsventil
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ftextout( "", 0, 0, 1, 0 );
 | |
|   }
 | |
| 
 | |
|   ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   // Propventil VA UND
 | |
|   // Propventil HA
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     // vorab alle notwendigen Grenzen berechnen:
 | |
|     //
 | |
|     // Roter Bereich VA abhaengig vom Istdruck HA
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
|     INPAapiResultAnalog( stat_istdruck_ha, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|     INPAapiResultAnalog( stat_istdruck_va, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|     INPAapiResultText( text_va_druck_einh, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|     INPAapiResultText( text_ha_druck_einh, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     mgl_restdruck = 180;
 | |
|     mgl_reststrom = 0.453 + (0.0069375 * (180 - stat_istdruck_ha));
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Propventil VA 
 | |
|     ftextout( "Proportionalventil VA bei Rampe", 1, 0, 0, 0 );
 | |
|     digitalout( PropVA_ein_aus, 1, 30, "Ein", "Aus" );
 | |
|     ftextout( "Status Propventil VA:", 3, 0, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 23, 0, 0 );
 | |
|     
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 30, 0, 0 );
 | |
| 
 | |
|     ftextout("Rampenzeit:", 4, 0,0,0);
 | |
|     inttoreal(va_ramp_zeit, eingabe_tmp);
 | |
|     eingabe_tmp= eingabe_tmp/100;
 | |
|     realtostring( eingabe_tmp, "3.2",text_var );
 | |
|     strcat(text_var2, text_var, " s");
 | |
|     ftextout( text_var2, 4, 23,0,0);
 | |
|     if(0 == va_ramp_art) { ftextout( "Stop            ", 4, 30,0,0); }
 | |
|     else if(1 == va_ramp_art) { ftextout("Aufwaerts   ", 4, 30,0,0); }
 | |
|     else if(2 == va_ramp_art) { ftextout("Abwaerts    ", 4, 30,0,0); }
 | |
|     else { ftextout("Ungueltig    ", 4, 30,0,0); }
 | |
| 
 | |
|     if(0 == rampenvorgabe) 
 | |
|     {    // Vorgabe ueber Strom
 | |
|          ftextout( "Rampenobergrenze (Strom):", 5, 0, 0, 0);
 | |
|          inttoreal(va_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp= eingabe_tmp/1000;
 | |
|          realtostring( eingabe_tmp, "3.3",text_var );
 | |
|          ftextout( text_var, 5, 23,0,0);
 | |
|          ftextout( "Ampere", 5,30,0,0);
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,0,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( strom_va_ventil, 6, 0, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
|          // Einheit [Ampere]
 | |
|          INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|          ftextout( text_var, 6, 35, 0, 0 );
 | |
| 
 | |
|          // Ist Druck VA
 | |
|          ftextout( "Ist Druck VA:", 8, 0, 0, 0 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (23,0,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( stat_istdruck_va, 9, 0, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_va_druck_einh, 9, 35, 0, 0 );
 | |
|     }
 | |
|     else if(1 == rampenvorgabe)
 | |
|     {    // Vorgabe ueber Druck
 | |
|          ftextout( "Rampenobergrenze (Druck):", 5, 0, 0, 0);
 | |
|          inttoreal(va_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp= eingabe_tmp/10;
 | |
|          realtostring( eingabe_tmp, "3.1",text_var );
 | |
|          ftextout( text_var, 5, 23,0,0);
 | |
|          ftextout( "[bar]", 5,30,0,0);
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,0,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( stat_istdruck_va, 6, 0, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_va_druck_einh, 6, 35, 0, 0 );
 | |
|     }
 | |
|     else if(2 == rampenvorgabe)
 | |
|     {    // Vorgabe ueber TV
 | |
|          ftextout( "Rampenobergrenze (Tastverhaeltnis):", 5, 0, 0, 0);
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,0,2,30);
 | |
|          inttoreal(va_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp = eingabe_tmp/10;
 | |
|          analogout( eingabe_tmp, 6, 0, 0, 100, 0, 100, "3.3" );
 | |
|          // Einheit [%]
 | |
|          ftextout( "[%]", 6, 35, 0, 0 );
 | |
|     }
 | |
| 
 | |
|     if(0 != rampenvorgabe) 
 | |
|     {    // fuer Druck und TV:
 | |
|          INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|          INPAapiCheckJobStatus( "OKAY" );
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|          ftextout( "Steuerstrom Propventil VA:", 8, 0, 0, 0);
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (23,0,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( strom_va_ventil, 9, 0, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
|          // Einheit [Ampere]
 | |
|          INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|          ftextout( text_var,9, 35, 0, 0 );
 | |
|     }
 | |
|     if(2 == rampenvorgabe)
 | |
|     {    // nur bei TV:
 | |
|          // Ist Druck VA
 | |
|          ftextout( "Ist Druck VA:", 11, 0, 0, 0 );
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (26,0,2,30);
 | |
|          analogout( stat_istdruck_va, 12, 0, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_va_druck_einh, 12, 35, 0, 0 );
 | |
|     }
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Taste 'EIN' wurde gedrueckt
 | |
|     if ( PropVA_ein_aus == TRUE )
 | |
|     {
 | |
|       if (TRUE == ramp_mode_ein_aus)
 | |
|       {
 | |
|         inttoreal(va_ramp_wert, eingabe_tmp);
 | |
|         if((0 == rampenvorgabe) && (eingabe_tmp > (mgl_reststrom*1000)))
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil VA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else if((1 == rampenvorgabe) && (eingabe_tmp > (mgl_restdruck*10)))
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil VA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else if(2 == rampenvorgabe)
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil VA: Vorsicht!",
 | |
|                          "Keine Ueberpruefung der Grenzwerte bei Vorgabe TV");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // konstante Werte fuer Hinterachsgrenzen
 | |
|     mgl_restdruck = 180 - (stat_istdruck_va - stat_istdruck_ha);
 | |
|     mgl_reststrom = 0.453 + (0.0069375 * mgl_restdruck );
 | |
| 
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|     // Propventil HA mit Fehlerpruefung
 | |
| 
 | |
|     ftextout( "Proportionalventil HA bei Rampe", 1, 45, 0, 0 );
 | |
|     digitalout( PropHA_ein_aus, 1, 75, "Ein", "Aus" );
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
|     INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     ftextout( "Status Propventil HA:", 3, 45, 0, 0 );
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|     ftextout( text_var, 3, 68, 0, 0 );
 | |
|   
 | |
|     // Einheit [Zustand (ein/aus)]
 | |
|     INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|     ftextout( text_var, 3, 75, 0, 0 );
 | |
|   
 | |
|     ftextout("Rampenzeit", 4, 45,0,0);
 | |
|     inttoreal(ha_ramp_zeit, eingabe_tmp);
 | |
|     eingabe_tmp= eingabe_tmp/100;
 | |
|     realtostring( eingabe_tmp, "3.2",text_var );
 | |
|     strcat(text_var2, text_var, " s");
 | |
|     ftextout( text_var2, 4, 68,0,0);
 | |
|     if(0 == ha_ramp_art) { ftextout( "Stop            ", 4, 75,0,0); }
 | |
|     else if(1 == ha_ramp_art) { ftextout("Aufwaerts   ", 4, 75,0,0); }
 | |
|     else if(2 == ha_ramp_art) { ftextout("Abwaerts    ", 4, 75,0,0); }
 | |
|     else { ftextout("Ungueltig    ", 4, 75,0,0); }
 | |
| 
 | |
|     ftextout( "Rampenwert Propventil HA:", 5, 45, 0, 0);
 | |
|     
 | |
|     if(0 == rampenvorgabe) 
 | |
|     {    // Vorgabe ueber Strom
 | |
|          ftextout( "Rampenobergrenze (Strom):", 5, 45, 0, 0);
 | |
|          inttoreal(ha_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp= eingabe_tmp/1000;
 | |
|          realtostring( eingabe_tmp, "3.3",text_var );
 | |
|          ftextout( text_var, 5, 68,0,0);
 | |
|          ftextout( "Ampere", 5,75,0,0);
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,45,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( strom_ha_ventil, 6, 45, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
|          // Einheit [Ampere]
 | |
|          INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|          ftextout( text_var, 6, 80, 0, 0 );
 | |
| 
 | |
|          // Ist Druck VA
 | |
|          ftextout( "Ist Druck HA:", 8, 45, 0, 0 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (23,45,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( stat_istdruck_ha, 9, 45, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_ha_druck_einh, 9, 80, 0, 0 );
 | |
|     }
 | |
|     else if(1 == rampenvorgabe)
 | |
|     {    // Vorgabe ueber Druck
 | |
|          ftextout( "Rampenobergrenze (Druck):", 5, 45, 0, 0);
 | |
|          inttoreal(ha_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp= eingabe_tmp/10;
 | |
|          realtostring( eingabe_tmp, "3.1",text_var );
 | |
|          ftextout( text_var, 5, 68,0,0);
 | |
|          ftextout( "[bar]", 5,75,0,0);
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,45,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( stat_istdruck_ha, 6, 45, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_ha_druck_einh, 6, 80, 0, 0 );
 | |
|     }
 | |
|     else if(2 == rampenvorgabe)
 | |
|     {    // Vorgabe ueber TV
 | |
|          ftextout( "Rampenobergrenze (Tastverhaeltnis):", 5, 75, 0, 0);
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (20,45,2,30);
 | |
|          inttoreal(ha_ramp_wert, eingabe_tmp);
 | |
|          eingabe_tmp = eingabe_tmp/10;
 | |
|          analogout( eingabe_tmp, 6, 45, 0, 100, 0, 100, "3.3" );
 | |
|          // Einheit [%]
 | |
|          ftextout( "[%]", 6, 80, 0, 0 );
 | |
|     }
 | |
| 
 | |
|     if(0 != rampenvorgabe) 
 | |
|     {    // fuer Druck und TV:
 | |
|          INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|          INPAapiCheckJobStatus( "OKAY" );
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|          ftextout( "Steuerstrom Propventil HA:", 8, 45, 0, 0);
 | |
|          // Stromwert auslesen
 | |
|          INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (23,45,2,30);
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          analogout( strom_ha_ventil, 9, 45, 0, 3, 0, mgl_reststrom, "5.3" );
 | |
|          // Einheit [Ampere]
 | |
|          INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|          ftextout( text_var,9, 80, 0, 0 );
 | |
|     }
 | |
|     if(2 == rampenvorgabe)
 | |
|     {    // nur bei TV:
 | |
|          // Ist Druck HA
 | |
|          ftextout( "Ist Druck HA:", 11, 45, 0, 0 );
 | |
|          //                         Zl, Sp, min  max    Format
 | |
|          // Loeschen der Einheitentexte um 'verschmieren' zu verhindern
 | |
|          clearrect (26,45,2,30);
 | |
|          analogout( stat_istdruck_ha, 12, 45, -2, 250, -2, mgl_restdruck, "3.3" );
 | |
| 
 | |
|          // Einheit [bar]
 | |
|          ftextout( text_ha_druck_einh, 12, 80, 0, 0 );
 | |
|     }
 | |
| 
 | |
|     ///////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|     // Sicherheitsventil oder Richtungsventil
 | |
|     if (   (sv_ein_aus == TRUE)     || (rv_ein_aus == TRUE)
 | |
|          ||(PropVA_ein_aus == TRUE) || (PropHA_ein_aus == TRUE))
 | |
|     {
 | |
|       if( FALSE == ramp_mode_ein_aus )
 | |
|       {
 | |
|          ftextout( "Rampe aktivieren durch <Shift> + <F1>", 14, 25, 0, 0 );
 | |
|          // Ansteuerung durch Rampenlogik Job spaeter
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|          ftextout( "Rampenansteuerung aktiv!", 14, 30, 0, 0 );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // Taste 'EIN' wurde gedrueckt
 | |
|     if ( PropHA_ein_aus == TRUE )
 | |
|     {
 | |
|       if (TRUE == ramp_mode_ein_aus)
 | |
|       {
 | |
|         inttoreal(ha_ramp_wert, eingabe_tmp);
 | |
|         if((0 == rampenvorgabe) && (eingabe_tmp > (mgl_reststrom*1000)))
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil HA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else if((1 == rampenvorgabe) && (eingabe_tmp > (mgl_restdruck*10)))
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil HA: Vorsicht!",
 | |
|                          "Vorgeschriebene Grenzwerte ueberschritten, "+CRLF+
 | |
|                          "Schaedigung des Fahrwerks moeglich");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|         else if(2 == rampenvorgabe)
 | |
|         {
 | |
|            if(warnung_erfolgt == FALSE)
 | |
|            {  // falls noch nicht erfolgt, dann warnung ausgeben
 | |
|               messagebox("Proportionalventil HA: Vorsicht!",
 | |
|                          "Keine Ueberpruefung der Grenzwerte bei Vorgabe TV");
 | |
|               warnung_erfolgt = TRUE;
 | |
|            }
 | |
|         }
 | |
|       }
 | |
| 
 | |
|     }
 | |
| 
 | |
| //      ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 14, 45, 0, 0 );
 | |
| 
 | |
|     // Eigentlichen Diagnoseaufruf starten
 | |
|     if(TRUE == ramp_mode_ein_aus)
 | |
|     {
 | |
|        // Parameter1: Diag Ramp Ctrl Status
 | |
|        int_eingabe_tmp = 0;
 | |
|        if(0==ha_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp +  1; } // HA Halt
 | |
|        if(1==ha_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp +  4; } // HA Auf
 | |
|        if(2==ha_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp +  2; } // HA Ab
 | |
|        if(0==va_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp +  8; } // VA Halt
 | |
|        if(1==va_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp + 32; } // VA Auf
 | |
|        if(2==va_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp + 16; } // VA Ab
 | |
|        if(4==ha_ramp_art) {  int_eingabe_tmp = int_eingabe_tmp + 64; } // HA zusammen mit VA
 | |
|        inttostring(int_eingabe_tmp, text_tmp);
 | |
|        strcat(job_parameter, text_tmp, ";");
 | |
|        // Parameter2,3: Diag Ramp Time VA, HA
 | |
|        inttostring(va_ramp_zeit, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, ";");
 | |
|        inttostring(ha_ramp_zeit, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, ";");
 | |
|        // Parameter4,5: Diag Ramp Time VA, HA
 | |
|        inttostring(va_ramp_wert, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, ";");
 | |
|        inttostring(ha_ramp_wert, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, ";");
 | |
|        // Parameter6: Diag Ramp RV FS Status
 | |
|        int_eingabe_tmp = 0;
 | |
|        if(TRUE == sv_ein_aus) {  int_eingabe_tmp = int_eingabe_tmp +  4; } // HA Halt
 | |
|        if(TRUE == rv_ein_aus) {  int_eingabe_tmp = int_eingabe_tmp + 16; } // HA Halt
 | |
|        inttostring(int_eingabe_tmp, text_tmp);
 | |
|        strcat(job_parameter, job_parameter, text_tmp);
 | |
| 
 | |
|        INPAapiJob( sgbd, "STEUERN_RAMPE_PARAMETER", job_parameter, "OKAY" );
 | |
|        // Momentan kein Errorhandling
 | |
|        // Parameter: Status Wort
 | |
|        int_eingabe_tmp = 8;  // Rampenmode aktiv
 | |
|        if(0==rampenvorgabe) {  int_eingabe_tmp = int_eingabe_tmp + 32; } // Strom
 | |
|        if(1==rampenvorgabe) {  int_eingabe_tmp = int_eingabe_tmp + 16; } // Druck
 | |
|        if(2==rampenvorgabe) {  int_eingabe_tmp = int_eingabe_tmp + 64; } // TV
 | |
|        inttostring(int_eingabe_tmp, job_parameter);
 | |
|        INPAapiJob( sgbd, "STEUERN_RAMPE_DIAGSTAT_SETZEN", job_parameter, "OKAY" );
 | |
|     }
 | |
|   }
 | |
| 
 | |
|     ////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
|   // Ende 'Line' Rampenlogik
 | |
| }
 | |
| 
 | |
| 
 | |
| // ******************************
 | |
| // ***   Ventile Steuern      ***
 | |
| // ******************************
 | |
| // wird ueber F4 aktiviert 'Steuern'
 | |
| SCREEN s_ventile_steuern()
 | |
| {
 | |
|   int status_ars;
 | |
|   real stat_alive;
 | |
|   real zahl_var;  
 | |
|   string text_var = "";
 | |
| 
 | |
|   ftextout( "Ventile", 1, 0, 1, 0 );
 | |
|   ftextout( "", 2, 0, 0, 0 );
 | |
|   
 | |
|   INPAapiJob( sgbd, "STATUS_CAN_ALIVE_ARS", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   ftextout( "SG AliveZaehler", 3, 2, 0, 0 );
 | |
|   ftextout( ":", 3, 15 , 0, 0 );
 | |
|   INPAapiResultAnalog( stat_alive, "STAT_ALIVE_ZAEHLER_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_alive, 3, 17, 0, 15, 0, 15, "2" );
 | |
|   
 | |
|   INPAapiResultText( text_var, "STAT_ALIVE_ZAEHLER_TEXT", 1, "" );
 | |
|   ftextout( text_var, 3, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "SG Status", 5, 50, 0, 0 );
 | |
|   ftextout( ":", 5, 58 , 0, 0 );
 | |
| 
 | |
|   INPAapiResultInt( status_ars , "STAT_ARS_WERT", 1 );
 | |
|      
 | |
|   INPAapiResultText( text_var, "STAT_ARS_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 60, 0, 0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     ftextout( "< F4 >  Sicherheitsventil bestromen"     ,12, 5, 0, 1 );
 | |
|     ftextout( "< F5 >  Richtungsventil bestromen"       ,14, 5, 0, 1 );
 | |
|     ftextout( "< F6 >  Proportionalventil VA bestromen"    ,16, 5, 0, 1 );
 | |
|     ftextout( "< F7 >  Proportionalventil HA bestromen"    ,18, 5, 0, 1 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *************************************
 | |
| // ***  Basisscreen zur Bestromung   ***
 | |
| // ***  des Sicherheitsventils       ***
 | |
| // *************************************
 | |
| SCREEN s_sv_schreiben()
 | |
| {
 | |
|   ftextout( "Sicherheitsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|   
 | |
|     ftextout( "< F1 >  Sicherheitsventil bestromen MIT Fehlerpruefung(2 sec.)"           ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  Sicherheitsventil bestromen OHNE Fehlerpruefung(2 sec.)"           ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Sicherheitsventil Hochlauf"                                        ,7, 5, 0, 1 );
 | |
|     ftextout( "< F4 >  Sicherheitsventil Pushhold"                                        ,9, 5, 0, 1 );
 | |
|  
 | |
|     ftextout( "< F5 >  Dauerbestromung Sicherheitsventil Pushhold"                 ,15, 5, 0, 1 );
 | |
|   }
 | |
| }
 | |
| // *************************************
 | |
| // ***  Basisscreen zur Bestromung   ***
 | |
| // ***  des Richtungsventils         ***
 | |
| // *************************************
 | |
| SCREEN s_rv_schreiben()
 | |
| {
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|   
 | |
|     ftextout( "< F1 >  Richtungsventil bestromen MIT Fehlerpruefung(2 sec.)"           ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  Richtungsventil bestromen OHNE Fehlerpruefung(2 sec.)"           ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Richtungsventil Hochlauf"                                        ,7, 5, 0, 1 );
 | |
|     ftextout( "< F4 >  Richtungsventil Pushhold"                                        ,9, 5, 0, 1 );
 | |
|  
 | |
|     ftextout( "< F5 >  Dauerbestromung Richtungsventil Pushhold"                 ,15, 5, 0, 1 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| // *************************************
 | |
| // ***  Basisscreen zur Bestromung   ***
 | |
| // ***  des Propventils VA           ***
 | |
| // *************************************
 | |
| SCREEN s_va_schreiben()
 | |
| {
 | |
|   ftextout( "Proportionalventil VA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|   
 | |
|     ftextout( "< F1 >  Proportionalventil VA bestromen MIT Fehlerpruefung(2 sec.)"           ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  Proportionalventil VA OHNE Fehlerpruefung(2 sec.)"                     ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Proportionalventil HA Hochlauf"                                        ,7, 5, 0, 1 );
 | |
|  
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // *************************************
 | |
| // ***  Basisscreen zur Bestromung   ***
 | |
| // ***  des Propventils VA           ***
 | |
| // *************************************
 | |
| SCREEN s_ha_schreiben()
 | |
| {
 | |
|   ftextout( "Proportionalventil HA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0 ,0 );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|   
 | |
|     ftextout( "< F1 >  Proportionalventil HA bestromen MIT Fehlerpruefung(2 sec.)"           ,3, 5, 0, 1 );
 | |
|     ftextout( "< F2 >  Proportionalventil HA OHNE Fehlerpruefung(2 sec.)"                     ,5, 5, 0, 1 );
 | |
|     ftextout( "< F3 >  Proportionalventil HA Hochlauf"                                        ,7, 5, 0, 1 );
 | |
|  
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Sicherheitsventile beschreiben   ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_sv1_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   ftextout( "Sicherheitsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_sv_1 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_sv_1 = 0;
 | |
|       inputint( strom_sv_mA, "Sicherheitsventil", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_sv_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Sicherheitsventil bestromen MIT Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_PWM_MIT_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_sv_1 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_sv_1 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Sicherheitsventile beschreiben   ***
 | |
| // ***   ohne Fehlerpruefung              ***
 | |
| // ******************************************
 | |
| SCREEN s_sv2_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   ftextout( "Sicherheitsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_sv_2 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_sv_2 = 0;
 | |
|       inputint( strom_sv_mA, "Sicherheitsventil", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_sv_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Sicherheitsventil bestromen OHNE Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe ohne Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_PWM_OHNE_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_sv_2 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
|   
 | |
|     strom_sv_2 = 0;
 | |
| 
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Sicherheitsventile beschreiben   ***
 | |
| // ***   Hochlaufpruefung                 ***
 | |
| // ******************************************
 | |
| SCREEN s_sv3_ventil_schreiben()
 | |
| {
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   ftextout( "Sicherheitsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_sv_3 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Sicherheitsventil Hochlaufpruefung", 1, 1, 0, 0 );
 | |
|       // Hochlaufpruefung Pruefimpuls
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_HOCHLAUFPRUEFUNG", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_sv_3 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     ftextout( "Sicherheitsventil Hochlaufpruefung", 1, 1, 0, 0 );
 | |
|     
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Sicherheitsventile beschreiben   ***
 | |
| // ***   Push Hold Ansteuerung            ***
 | |
| // ******************************************
 | |
| SCREEN s_sv4_ventil_schreiben()
 | |
| {
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   ftextout( "Sicherheitsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_sv_4 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Sicherheitsventil Push Hold Ansteuerung", 1, 1, 0, 0 );
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_PUSHHOLD", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_sv_4 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     ftextout( "Sicherheitsventil Push Hold Ansteuerung", 1, 1, 0, 0 );
 | |
|     
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Sicherheitsventile beschreiben   ***
 | |
| // ***   Push Hold Ansteuerung            ***
 | |
| // ***   Dauerbestromung                  ***
 | |
| // ******************************************
 | |
| SCREEN s_sv_ventil_pushhold_dauer_schreiben()
 | |
| {
 | |
| 
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
| 
 | |
|   ftextout( "Sicherheitsventil wird dauerbestromt", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Sicherheitsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_SICHERHEITSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Sicherheitsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_sv_ventil, "STAT_STROM_SICHVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_sv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_SICHVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Daueransteuerung", 12, 1, 1, 0 );
 | |
|   digitalout( sv_ein_aus, 12, 30, "Ein", "Aus" );
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
| 
 | |
|     if ( sv_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 1, 1, 0, 0 );
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_SV_PUSHHOLD", "", "" );
 | |
|   //      INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|   
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         sv_ein_aus = TRUE;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|         sv_ein_aus = FALSE;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_sv_schreiben, TRUE );
 | |
|         sv_ein_aus = FALSE;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Richtungsventil beschreiben      ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_rv1_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real stat_schaltstellung_RV;
 | |
|   real spg_rv_sensor;
 | |
|   
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Schaltventilsensor ( RV )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Richtungsventil", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 27, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_rv_sensor, "STAT_POSITION_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_rv_sensor, 9, 30, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Schaltstellung RV [ -1, 0, 1 ]
 | |
|   ftextout( "Schaltstellung RV", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 27, 0, 0 );
 | |
|   // Schaltstellung RV auslesen
 | |
|   INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max           Format
 | |
|   //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|   analogout( stat_schaltstellung_RV, 11, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|   // Einheit [Zustand]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|   ftextout( text_var, 11, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_rv_1 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_rv_1 = 0;
 | |
|       inputint( strom_rv_mA, "Richtungsventil", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_rv_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Richtungsventil bestromen MIT Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_PWM_MIT_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_rv_1 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_rv_1 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Richtungsventil beschreiben      ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_rv2_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_rv_sensor;
 | |
|   real stat_schaltstellung_RV;
 | |
| 
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Schaltventilsensor ( RV )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Richtungsventil", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 27, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_rv_sensor, "STAT_POSITION_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_rv_sensor, 9, 30, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Schaltstellung RV [ -1, 0, 1 ]
 | |
|   ftextout( "Schaltstellung RV", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 27, 0, 0 );
 | |
|   // Schaltstellung RV auslesen
 | |
|   INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max           Format
 | |
|   //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|   analogout( stat_schaltstellung_RV, 11, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|   // Einheit [Zustand]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|   ftextout( text_var, 11, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_rv_2 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_rv_2 = 0;
 | |
|       inputint( strom_rv_mA, "Richtungsventil", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_rv_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Richtungsventil bestromen OHNE Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_PWM_OHNE_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_rv_2 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_rv_2 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Richtungsventil beschreiben   ***
 | |
| // ***   Hochlaufpruefung                 ***
 | |
| // ******************************************
 | |
| SCREEN s_rv3_ventil_schreiben()
 | |
| {
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_rv_sensor;
 | |
|   real stat_schaltstellung_RV;
 | |
|   
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Schaltventilsensor ( RV )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Richtungsventil", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 27, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_rv_sensor, "STAT_POSITION_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_rv_sensor, 9, 30, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Schaltstellung RV [ -1, 0, 1 ]
 | |
|   ftextout( "Schaltstellung RV", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 27, 0, 0 );
 | |
|   // Schaltstellung RV auslesen
 | |
|   INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max           Format
 | |
|   //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|   analogout( stat_schaltstellung_RV, 11, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|   // Einheit [Zustand]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|   ftextout( text_var, 11, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_rv_3 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Richtungsventil Hochlaufpruefung", 1, 1, 0, 0 );
 | |
|       // Hochlaufpruefung Pruefimpuls
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_HOCHLAUFPRUEFUNG", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_rv_3 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
|     ftextout( "Richtungsventil Hochlaufpruefung", 1, 1, 0, 0 );
 | |
| 
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Richtungsventil    beschreiben   ***
 | |
| // ***   Push Hold Ansteuerung            ***
 | |
| // ******************************************
 | |
| SCREEN s_rv4_ventil_schreiben()
 | |
| {
 | |
|   string text_var = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_rv_sensor;
 | |
|   real stat_schaltstellung_RV;
 | |
|   
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Schaltventilsensor ( RV )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Richtungsventil", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 27, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_rv_sensor, "STAT_POSITION_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_rv_sensor, 9, 30, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Schaltstellung RV [ -1, 0, 1 ]
 | |
|   ftextout( "Schaltstellung RV", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 27, 0, 0 );
 | |
|   // Schaltstellung RV auslesen
 | |
|   INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max           Format
 | |
|   //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|   analogout( stat_schaltstellung_RV, 11, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|   // Einheit [Zustand]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|   ftextout( text_var, 11, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_rv_4 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Richtungsventil Push Hold Ansteuerung", 1, 1, 0, 0 );
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_PUSHHOLD", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_rv_4 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
|     ftextout( "Richtungsventil Push Hold Ansteuerung", 1, 1, 0, 0 );
 | |
| 
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Richtungsventil    beschreiben   ***
 | |
| // ***   Push Hold Ansteuerung            ***
 | |
| // ******************************************
 | |
| SCREEN s_rv_ventil_pushhold_dauer_schreiben()
 | |
| {
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_rv_sensor;
 | |
|   real stat_schaltstellung_RV;
 | |
|   
 | |
|   ftextout( "Richtungsventil bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_SCHALTVENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Richtungsventil", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 27, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 30, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_RICHTUNGSVENTIL_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 45, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Richtungsventil", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 27, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_rv_ventil, "STAT_STROM_RICHTVENT_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_rv_ventil, 7, 30, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STROM_RICHTVENT_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Schaltventilsensor ( RV )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Richtungsventil", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 27, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_rv_sensor, "STAT_POSITION_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_rv_sensor, 9, 30, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Schaltstellung RV [ -1, 0, 1 ]
 | |
|   ftextout( "Schaltstellung RV", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 27, 0, 0 );
 | |
|   // Schaltstellung RV auslesen
 | |
|   INPAapiResultAnalog( stat_schaltstellung_RV, "STAT_POSITION_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max           Format
 | |
|   //analogout( stat_schaltstellung_RV, 21, 30, -1, 1, -1, 1, "7.5" );
 | |
|   analogout( stat_schaltstellung_RV, 11, 30, -1.5, 1.5, -1, 1, "1" );
 | |
| 
 | |
|   // Einheit [Zustand]
 | |
|   INPAapiResultText( text_var, "STAT_POSITION_SW_EINH", 1, "" );
 | |
|   ftextout( text_var, 11, 65, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   ftextout( "Daueransteuerung", 16, 1, 1, 0 );
 | |
|   digitalout( rv_ein_aus, 16, 30, "Ein", "Aus" );
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( rv_ein_aus == TRUE )
 | |
|     {
 | |
|       ftextout( "Nach Taste AUS wird der Strom noch 2 sec. gehalten", 1, 1, 0, 0 );
 | |
| 
 | |
|       // Push Hold Ansteuerung
 | |
|       INPAapiJob( sgbd, "STEUERN_RV_PUSHHOLD", "", "" );
 | |
| //      INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         rv_ein_aus = TRUE;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|         rv_ein_aus = FALSE;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_rv_schreiben, TRUE );
 | |
|         rv_ein_aus = FALSE;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Propventil VA beschreiben        ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_va1_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_va_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
| 
 | |
| 
 | |
|   ftextout( "Proportionalventil VA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Propventil VA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil VA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_va_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( VA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor VA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_va_sensor, "STAT_DRUCK_VA_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_va_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_VA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   // Ist Druck VA
 | |
|   ftextout( "Ist Druck VA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_va_1 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_va_1 = 0;
 | |
|       inputint( strom_va_mA, "Proportionalventil VA", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_va_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Proportionalventil VA bestromen MIT Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_PVVA_PWM_MIT_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_va_1 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_va_1 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Propventil VA beschreiben      ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_va2_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_va_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
| 
 | |
|   ftextout( "Proportionalventil VA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Proportionalventil VA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil VA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_va_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( VA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor VA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_va_sensor, "STAT_DRUCK_VA_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_va_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_VA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   // Ist Druck VA
 | |
|   ftextout( "Ist Druck VA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_va_2 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_va_2 = 0;
 | |
|       inputint( strom_va_mA, "Proportionalventil VA", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_va_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Proportionalventil VA bestromen OHNE Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_PVVA_PWM_OHNE_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_va_2 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_va_2 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // **********************************************
 | |
| // ***   Proportionalventil VA  beschreiben   ***
 | |
| // ***   Hochlaufpruefung                     ***
 | |
| // **********************************************
 | |
| SCREEN s_va3_ventil_schreiben()
 | |
| {
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_va_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
|   ftextout( "Proportionalventil VA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Proportionalventil VA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_VA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil VA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_va_ventil, "STAT_STEUERSTROM_VA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_va_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_VA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( VA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor VA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_va_sensor, "STAT_DRUCK_VA_HW_WERT", 1 );
 | |
|   //                       Zl, Sp, min  max    Format
 | |
|   analogout( spg_va_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_VA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   // Ist Druck VA
 | |
|   ftextout( "Ist Druck VA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_VA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_VA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_va_3 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Proportionalventil VA Hochlaufpruefung", 1, 1, 0, 0 );
 | |
|       // Hochlaufpruefung Pruefimpuls
 | |
|       INPAapiJob( sgbd, "STEUERN_PVVA_HOCHLAUFPRUEFUNG", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_va_3 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_va_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
|     ftextout( "Proportionalventil VA Hochlaufpruefung", 1, 1, 0, 0 );
 | |
| 
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Propventil HA beschreiben        ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_ha1_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
|   
 | |
|   real spg_ha_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
|   ftextout( "Proportionalventil HA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Propventil HA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil HA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_ha_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( HA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor HA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_ha_sensor, "STAT_DRUCK_HA_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_ha_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_HA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Ist Druck HA
 | |
|   ftextout( "Ist Druck HA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_ha_1 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_ha_1 = 0;
 | |
|       inputint( strom_ha_mA, "Proportionalventil HA", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_ha_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Proportionalventil HA bestromen MIT Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_PVHA_PWM_MIT_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_ha_1 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_ha_1 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| // ******************************************
 | |
| // ***   Propventil HA beschreiben      ***
 | |
| // ***   mit Fehlerpruefung               ***
 | |
| // ******************************************
 | |
| SCREEN s_ha2_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_ha_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
| 
 | |
|   ftextout( "Proportionalventil HA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
| 
 | |
|   ftextout( "Status Proportionalventil HA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil HA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_ha_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( HA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor HA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_ha_sensor, "STAT_DRUCK_HA_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_ha_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_HA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Ist Druck HA
 | |
|   ftextout( "Ist Druck HA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_ha_2 == 1 )
 | |
|     {
 | |
|       strom_var = "";
 | |
|       strom_ha_2 = 0;
 | |
|       inputint( strom_ha_mA, "Proportionalventil HA", "Steuerstrom in mA", 0, 3000 );
 | |
|       //
 | |
|       getinputstate( input_state );
 | |
|       // Eingabe wurde mit Abbruch abgeschlossen
 | |
|       if ( input_state == 1 )
 | |
|       {
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|       // Eingabe wurde mit OK abgeschlossen
 | |
|       else if ( input_state == 0 )
 | |
|       {
 | |
|         // Variablenumwandlung int --> string
 | |
|         inttostring( strom_ha_mA, strom_var );        
 | |
|         // Dialog schliessen
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // nur bei OK ausfuehren
 | |
|     if ( input_state == 0 )
 | |
|     {
 | |
|       ftextout( "Proportionalventil HA  bestromen OHNE Fehlerpruefung", 1, 1, 0, 0 );
 | |
|       // Strom Ausgabe mit Fehlerpruefung
 | |
|       INPAapiJob( sgbd, "STEUERN_PVHA_PWM_OHNE_FP", strom_var, "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_ha_2 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     strom_ha_2 = 0;
 | |
|     
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| // **********************************************
 | |
| // ***   Proportionalventil HA  beschreiben   ***
 | |
| // ***   Hochlaufpruefung                     ***
 | |
| // **********************************************
 | |
| SCREEN s_ha3_ventil_schreiben()
 | |
| {
 | |
|   string strom_var = "";
 | |
|   string text_var = "";
 | |
|   string text_var_einh = "";
 | |
|   string chk_jobstatus = "";
 | |
| 
 | |
|   real spg_ha_sensor;
 | |
|   real stat_istdruck_ventil;
 | |
| 
 | |
|   ftextout( "Proportionalventil HA bestromen", 1, 0, 1, 0 );
 | |
|   ftextout( "", 3, 0, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiJob( sgbd, "STATUS_PROPORTIONAL_VENTILE", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Status Proportionalventil HA", 5, 5, 0, 0 );
 | |
|   ftextout( ":", 5, 35, 0, 0 );
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_WERT", 1, "" );
 | |
|   ftextout( text_var, 5, 37, 0, 0 );
 | |
| 
 | |
|   // Einheit [Zustand (ein/aus)]
 | |
|   INPAapiResultText( text_var, "STAT_VENTIL_HA_TEXT", 1, "" );
 | |
|   ftextout( text_var, 5, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Steuerstrom Proportionalventil HA", 7, 5, 0, 0 );
 | |
|   ftextout( ":", 7, 35, 0, 0 );
 | |
|   // Stromwert auslesen
 | |
|   INPAapiResultAnalog( strom_ha_ventil, "STAT_STEUERSTROM_HA_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( strom_ha_ventil, 7, 37, 0, 3, 0, 3, "5.3" );
 | |
| 
 | |
|   // Einheit [Ampere]
 | |
|   INPAapiResultText( text_var, "STAT_STEUERSTROM_HA_EINH", 1, "" );
 | |
|   ftextout( text_var, 7, 70, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   // anzeigen der aktuell anliegenden Spannung am Drucksensor ( HA )
 | |
|   // umgerechneter 10 bit Wert
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Spannung am Drucksensor HA", 9, 5, 0, 0 );
 | |
|   ftextout( ":", 9, 35, 0, 0 );
 | |
|   // Spannung auslesen
 | |
|   INPAapiResultAnalog( spg_ha_sensor, "STAT_DRUCK_HA_HW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( spg_ha_sensor, 9, 37, 0, 6, 0, 6, "2.3" );
 | |
| 
 | |
|   // Einheit [Volt]
 | |
|   INPAapiResultText( text_var, "STAT_DRUCK_HA_HW_EINH", 1, "" );
 | |
|   ftextout( text_var, 9, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
|   INPAapiJob( sgbd, "STATUS_ARS_SENSOREN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // Ist Druck HA
 | |
|   ftextout( "Ist Druck HA", 11, 5, 0, 0 );
 | |
|   ftextout( ":", 11, 35, 0, 0 );
 | |
|   //
 | |
|   INPAapiResultAnalog( stat_istdruck_ventil, "STAT_DRUCK_HA_SW_WERT", 1 );
 | |
|   //                         Zl, Sp, min  max    Format
 | |
|   analogout( stat_istdruck_ventil, 11, 37, -2, 250, -2, 250, "3.3" );
 | |
| 
 | |
|   // Einheit [bar]
 | |
|   INPAapiResultText( text_var_einh, "STAT_DRUCK_HA_SW_EINH", 1, "" );
 | |
|   ftextout( text_var_einh, 11, 70, 0, 0 );
 | |
|   //////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|     if ( strom_ha_3 == 1 )
 | |
|     {
 | |
| 
 | |
|       ftextout( "Proportionalventil HA Hochlaufpruefung", 1, 1, 0, 0 );
 | |
|       // Hochlaufpruefung Pruefimpuls
 | |
|       INPAapiJob( sgbd, "STEUERN_PVHA_HOCHLAUFPRUEFUNG", "", "" );
 | |
| 
 | |
|       INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
|       if ( chk_jobstatus == "OKAY" )
 | |
|       {
 | |
|         strom_ha_3 = 0;
 | |
|       }
 | |
|       else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|         userboxclose( 0 );
 | |
|         viewclose();
 | |
|         setscreen( s_ha_schreiben, TRUE );
 | |
|       }
 | |
|     }
 | |
|     ftextout( "Proportionalventil HA Hochlaufpruefung", 1, 1, 0, 0 );
 | |
| 
 | |
|   }
 | |
|   
 | |
| }
 | |
| 
 | |
| // ***************************************
 | |
| // ***  Nullpunkte der Sensoren lernen ***
 | |
| // ***  mit Grenzwertueberwachung      ***
 | |
| // ***  Anfangsbildschirm              ***
 | |
| // ***************************************
 | |
| SCREEN s_nullpkt_mitGrenz_lernen()
 | |
| {
 | |
| 
 | |
|   ftextout( "MIT GRENZWERTUEBERWACHUNG"                  ,1, 1, 0, 1 );
 | |
|   ftextout( "< F1 >  Arbeitsnullpunkt Drucksensor VA lernen"                  ,3, 5, 0, 1 );
 | |
|   ftextout( "< F2 >  Arbeitsnullpunkt Drucksensor HA lernen"                  ,5, 5, 0, 1 );
 | |
|   ftextout( "< F3 >  Arbeitsnullpunkt Querbeschleunigungssensor lernen"        ,7, 5, 0, 1 );
 | |
| 
 | |
| }
 | |
| 
 | |
| // ***************************************
 | |
| // ***  Nullpunkte der Sensoren lernen ***
 | |
| // ***  mit Grenzwertueberwachung      ***
 | |
| // ***************************************
 | |
| SCREEN s_nullpkt_lernen()
 | |
| {
 | |
|   real stat_offsetdruck_ventil;
 | |
|   real stat_offsetquerbesch;
 | |
| 
 | |
|   string chk_jobstatus = "";
 | |
|     
 | |
|   ftextout( "MIT GRENZWERTUEBERWACHUNG"                                        ,1, 1, 0, 1 );
 | |
|   ftextout( "< F1 >  Arbeitsnullpunkt Drucksensor VA lernen"                  ,3, 5, 0, 1 );
 | |
|   ftextout( "< F2 >  Arbeitsnullpunkt Drucksensor HA lernen"                  ,5, 5, 0, 1 );
 | |
|   ftextout( "< F3 >  Arbeitsnullpunkt Querbeschleunigungssensor lernen"        ,7, 5, 0, 1 );
 | |
| 
 | |
|   if ( toggle_1 == 1 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "START_OFFSET_WERTE_VA", "", "" );
 | |
| //    INPAapiCheckJobStatus( "OKAY" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
| 
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       // gelernter Offset Wert lesen fuer Nullpunkt Druck VA
 | |
|       INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_VA", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|       // Druck VA
 | |
|       ftextout( "Arbeitsnullpunkt fuer Druck VA", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 35, 0, 0 );
 | |
|       //
 | |
|       INPAapiResultAnalog( stat_offsetdruck_ventil, "STAT_NULLPUNKT_OFFSET_DRUCK_VA_WERT", 1 );
 | |
|       //                         Zl, Sp, min  max    Format
 | |
|       analogout( stat_offsetdruck_ventil, 10, 37, 0, 3000, 0, 3000, "5.1" );
 | |
|   
 | |
|       // Einheit [bar]
 | |
|       INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_DRUCK_VA_EINH", 1, "" );
 | |
|       ftextout( text_var, 10, 75, 0, 0 );
 | |
| 
 | |
|       toggle_1 = 0;
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
|     toggle_1 = 0;
 | |
|   }
 | |
|     
 | |
|   if ( toggle_2 == 1 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "START_OFFSET_WERTE_HA", "", "" );
 | |
| //    INPAapiCheckJobStatus( "OKAY" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
| 
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       // gelernter Offset Wert lesen fuer Nullpunkt Druck HA
 | |
|       INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_HA", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
|     
 | |
|       // Druck HA
 | |
|       ftextout( "Arbeitsnullpunkt fuer Druck HA", 15, 1, 0, 0 );
 | |
|       ftextout( ":", 15, 35, 0, 0 );
 | |
|       //
 | |
|       INPAapiResultAnalog( stat_offsetdruck_ventil, "STAT_NULLPUNKT_OFFSET_DRUCK_HA_WERT", 1 );
 | |
|       //                         Zl, Sp, min  max    Format
 | |
|       analogout( stat_offsetdruck_ventil, 15, 37, 0, 3000, 0, 3000, "5.1" );
 | |
|   
 | |
|       // Einheit [bar]
 | |
|       INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_DRUCK_HA_EINH", 1, "" );
 | |
|       ftextout( text_var, 15, 75, 0, 0 );
 | |
| 
 | |
|       toggle_2 = 0;
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
| 
 | |
|     toggle_2 = 0;
 | |
|   }
 | |
| 
 | |
|   if ( toggle_3 == 1 )
 | |
|   {
 | |
|     INPAapiJob( sgbd, "START_OFFSET_QUERBESCH", "", "" );
 | |
| //    INPAapiCheckJobStatus( "OKAY" );
 | |
|     INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
| 
 | |
|     if ( chk_jobstatus == "OKAY" )
 | |
|     {
 | |
|       // gelernter Offset Wert lesen fuer Querbeschleunigung
 | |
|       INPAapiJob( sgbd, "STATUS_OFFSET_QUERBESCH", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
|   
 | |
|       // Querbeschleunigung
 | |
|       ftextout( "Arbeitsnullpunkt fuer Querbeschleunigung", 20, 1, 0, 0 );
 | |
|       ftextout( ":", 20, 35, 0, 0 );
 | |
|       //
 | |
|       INPAapiResultAnalog( stat_offsetquerbesch, "STAT_NULLPUNKT_OFFSET_QUERBESCH_WERT", 1 );
 | |
|       //                         Zl, Sp, min  max    Format
 | |
|       analogout( stat_offsetquerbesch, 20, 37, 0, 3000, 0, 3000, "5.1" );
 | |
|   
 | |
|       // Einheit [bar]
 | |
|       INPAapiResultText( text_var, "STAT_NULLPUNKT_OFFSET_QUERBESCH_EINH", 1, "" );
 | |
|       ftextout( text_var, 20, 75, 0, 0 );
 | |
|     
 | |
|       toggle_3 = 0; 
 | |
|     }
 | |
|     else if ( chk_jobstatus == "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR" )
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt", "Fahrzeug muss stehen, ==> FZGgeschw. gleich NULL oder DSC inaktiv" );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       infobox ( "Randbedingungen wurden verletzt --> unbekannter Fehlerfall", chk_jobstatus );
 | |
|       userboxclose( 0 );
 | |
|       viewclose();
 | |
|       setscreen( s_nullpkt_mitGrenz_lernen, TRUE );
 | |
|     }
 | |
| 
 | |
|     toggle_3 = 0;
 | |
|   }  
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // ***************************************************
 | |
| // *** AIF UIF Felder Aktuell lesen ueber '1A 86'  ***
 | |
| // ***************************************************
 | |
| // ueber Taste 'Shift F1'
 | |
| SCREEN s_aif_aktuell_lesen()
 | |
| {
 | |
|   int offset;
 | |
|   int temp;
 | |
|   int aif_adresse;
 | |
|   int spalte_beschreibung = 10;
 | |
|   int spalte_speicherwerte = 55;
 | |
|   int spalte_anzeigewerte = 40;
 | |
|   int spalte_doppelpkt = 38;
 | |
| 
 | |
|   INPAapiJob( sgbd, "AIF_AKTUELL_LESEN", "", "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   ftextout( "Aktuelles AIF Info; ausgelesen ueber '1A 86'", 1, 0, 0, 1 );
 | |
| 
 | |
| 
 | |
|   ftextout( "Anzeigendarstellung", 3, spalte_doppelpkt, 0, 0 );
 | |
|   ftextout( "Telegrammdarstellung", 3, spalte_speicherwerte, 0, 0 );
 | |
|   //
 | |
|   //
 | |
|   // 2te Zeile 'Fahrgestellnummer'; 7 Byte
 | |
|   ftextout( "VIN", 7, 0, 0, 0 );
 | |
|   ftextout( "Fahrgestellnummer", 7, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 7, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FAHRGESTELL_NR", 1, "" );
 | |
|   ftextout( text_var, 7, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   // Speicherwerte / Telegrammdaten
 | |
|   INPAapiResultText( text_var, "AIF_FAHRGESTELL_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 7, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
|  
 | |
|   //
 | |
|   //
 | |
|   // 3te Zeile 'Programmierdatum'; 4 Byte
 | |
|   ftextout( "PD", 9, 0, 0, 0 );
 | |
|   ftextout( "Programmierdatum", 9, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 9, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_PD_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMMIER_DATUM", 1, "" );
 | |
|   ftextout( text_var, 9, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   // Speicherwerte / Telegrammdaten
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMMIER_DATUM_HEX", 1, "" );
 | |
|   ftextout( text_var, 9, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 4te Zeile 'Zusammenbaunummer'; 6 Byte
 | |
|   ftextout( "AN", 11, 0, 0, 0 );
 | |
|   ftextout( "Zusammenbaunummer", 11, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 11, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   //INPAapiJob( sgbd, "AIF_MPC555_AN_LESEN", aif_block_nr, "" );
 | |
|   //INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_ZUSAMMENBAU_NR", 1, "" );
 | |
|   ftextout( text_var, 11, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_ZUSAMMENBAU_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 11, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 5te Zeile 'Codierdatensatznummer'; 6 Byte
 | |
|   ftextout( "CDSN", 13, 0, 0, 0 );
 | |
|   ftextout( "Codierdatensatznummer", 13, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 13, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_CDSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_DATENSATZ_NR", 1, "" );
 | |
|   ftextout( text_var, 13, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_DATENSATZ_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 13, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 6te Zeile 'Behoerdennummer'; 6 Byte
 | |
|   ftextout( "EROTAN", 15, 0, 0, 0 );
 | |
|   ftextout( "Behoerdennummer/Abgasnummer", 15, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 15, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_EROTAN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_BEHOERDEN_NR", 1, "" );
 | |
|   ftextout( text_var, 15, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_BEHOERDEN_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 15, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 7te Zeile 'Haendlernummer'; 3 Byte
 | |
|   ftextout( "RSCOTSN", 17, 0, 0, 0 );
 | |
|   ftextout( "Werkscode bzw HaendlerNr.", 17, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 17, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_RSCOTSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_HAENDLER_NR", 1, "" );
 | |
|   ftextout( text_var, 17, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_HAENDLER_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 17, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 8te Zeile 'Testernummer'; 5 Byte
 | |
|   ftextout( "RSCOTSN", 19, 0, 0, 0 );
 | |
|   ftextout( "Tester-SerienNr.", 19, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 19, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_RSCOTSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_TESTER_NR", 1, "" );
 | |
|   ftextout( text_var, 19, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_TESTER_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 19, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 9te Zeile 'KM Stand' mit Faktor 600 multipli.; 1 Byte
 | |
|   ftextout( "KM", 21, 0, 0, 0 );
 | |
|   ftextout( "km Stand bei Programmierung", 21, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 21, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_KMPD_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_KM_STAND", 1, "" );
 | |
|   ftextout( text_var, 21, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_KM_STAND_HEX", 1, "" );
 | |
|   ftextout( text_var, 21, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 10te Zeile 'Programmstand als Programmreferenz'; 12 Byte
 | |
|   ftextout( "PRGREF", 23, 0, 0, 0 );
 | |
|   ftextout( "Programmstand als Programmreferenz", 23, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 23, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_PRGREF_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMM_STAND", 1, "" );
 | |
|   ftextout( text_var, 23, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMM_STAND_HEX", 1, "" );
 | |
|   ftextout( text_var, 23, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 11te Zeile 'Fahrgestellnummer lang'; 10 Byte
 | |
|   //
 | |
|   ftextout( "VINLONG", 25, 0, 0, 0 );
 | |
|   ftextout( "Fahrgestellnummer lang", 25, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 25, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FG_NR_LANG", 1, "" );
 | |
|   ftextout( text_var, 25, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FG_NR_LANG_HEX", 1, "" );
 | |
|   ftextout( text_var, 25, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 12te Zeile 'Reserve'; 3 Byte
 | |
|   ftextout( "Reserve", 27, 0, 0, 0 );
 | |
|   ftextout( "3 Byte Reserve bei Power PC", 27, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 27, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_RESERVE", 1, "" );
 | |
|   ftextout( text_var, 27, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_RESERVE_HEX", 1, "" );
 | |
|   ftextout( text_var, 27, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| // *********************************
 | |
| // *** AIF UIF Felder lesen      ***
 | |
| // *********************************
 | |
| // ueber Taste 'Shift F2'
 | |
| SCREEN s_aif_tabelle_lesen()
 | |
| {
 | |
|   int aifblocknr = 1;
 | |
|   int offset;
 | |
|   int belegteAIF = 0;
 | |
|   int unbelegteAIF = 0;
 | |
|   int ndAIF = 0;
 | |
|   int belegt;
 | |
|   string aif_block_nr = "";
 | |
|   string logische_adresse = "";
 | |
|   string physikalische_adresse = "";
 | |
|   
 | |
|   // Spaltenheader
 | |
|   // erste Spalte
 | |
|   ftextout( "AIF Nr.", 1, 0, 0, 0 );
 | |
|   //
 | |
|   // 2 Spalte
 | |
|   ftextout( "freie AIF's", 1, 8, 0, 0 );
 | |
|   ftextout( "(0xFF)oder(0x00)", 2, 8, 0, 0 );
 | |
|   //
 | |
|   // 3te Spalte 
 | |
|   ftextout( "kl. AIF", 1, 23, 0, 0 );
 | |
|   ftextout( "(18,0x12)", 2, 23, 0, 0 );
 | |
|   //
 | |
|   // 4te Spalte 
 | |
|   ftextout( "gr. AIF", 1, 32, 0, 0 );
 | |
|   ftextout( "(51,0x33)", 2, 32, 0, 0 );
 | |
|   //
 | |
|   // 5te Spalte 
 | |
|   ftextout( "gr. AIF PowPC", 1, 42, 0, 0 );
 | |
|   ftextout( "(64,0x40)", 2, 42, 0, 0 );
 | |
|   //
 | |
|   // 6te Spalte 
 | |
|   ftextout( "undef. AIF", 1, 55, 0, 0 );
 | |
|   ftextout( "(??,0x??)", 2, 55, 0, 0 );
 | |
|   //
 | |
|   // 7te Spalte 'Zusammenbaunummer'
 | |
|   ftextout( "log. Adresse", 1, 65, 0, 0 );
 | |
|   //
 | |
|   // 8te Spalte 'Codierdatensatznummer'
 | |
|   ftextout( "phys. Adresse", 1, 75, 0, 0 );
 | |
| 
 | |
|   ftextout( "----------------------------------------------------------------------------------------------------------------------------------------------------------", 3, 0, 0, 0 );
 | |
| 
 | |
|   //while ( aifblocknr < 15 )
 | |
|   // Schleife fuer 16 AIF Felder
 | |
|   while ( aifblocknr < 16 )
 | |
|   {
 | |
| 
 | |
|     inttostring( aifblocknr, aif_block_nr );
 | |
|     INPAapiJob( sgbd, "AIF_TABELLE_LESEN", aif_block_nr, "" );
 | |
|     INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|     //        Zeichenkette       Zeile           Spalte
 | |
|     ftextout( aif_block_nr, aifblocknr + 3, 1, 0, 0 );
 | |
| 
 | |
|     // Telegrammwert in Hex --> 0x40;
 | |
|     INPAapiResultText( text_var, "AIF_ANZ_DATEN_HEX", 1, "" );
 | |
|     // Dezimalwertdarstellung 0x40 hex --> 64 dez
 | |
|     INPAapiResultInt( offset, "AIF_ANZ_DATEN", 1 );
 | |
|     INPAapiResultInt( belegt, "BELEGT", 1 );
 | |
| 
 | |
|     
 | |
|     if ( offset == 255 && belegt == 0 )
 | |
|     {
 | |
|       // freie AIF's alle Bytes sind mit 0xFF belegt
 | |
|       ftextout( text_var, aifblocknr + 3, 8, 0, 0 );
 | |
|       inttostring( offset, text_var );
 | |
|       ftextout( text_var, aifblocknr + 3, 15, 0, 0 );
 | |
|       unbelegteAIF = unbelegteAIF + 1;
 | |
|     }
 | |
|     else if ( offset == 18  )
 | |
|     {
 | |
|       // kleines AIF nur 3 Felder belegt ( VIN, PD, AN ) 
 | |
|       ftextout( text_var, aifblocknr + 3, 23, 0, 0 );
 | |
|       inttostring( offset, text_var );
 | |
|       ftextout( text_var, aifblocknr + 3, 28, 0, 0 );
 | |
|       belegteAIF = belegteAIF + 1;
 | |
|     }
 | |
|     else if ( offset == 51  )
 | |
|     {
 | |
|       // grosses AIF 
 | |
|       ftextout( text_var, aifblocknr + 3, 32, 0, 0 );
 | |
|       inttostring( offset, text_var );
 | |
|       ftextout( text_var, aifblocknr + 3, 37, 0, 0 );
 | |
|       belegteAIF = belegteAIF + 1;
 | |
|     }
 | |
|     else if ( offset == 64  )
 | |
|     {
 | |
|       // grosses AIF Powewr PC belegte AIF's 
 | |
|       ftextout( text_var, aifblocknr + 3, 42, 0, 0 );
 | |
|       inttostring( offset, text_var );
 | |
|       ftextout( text_var, aifblocknr + 3, 47, 0, 0 );
 | |
|       belegteAIF = belegteAIF + 1;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|       // undefinierte AIF's
 | |
|       ftextout( text_var, aifblocknr + 3, 55, 0, 0 );
 | |
|       inttostring( offset, text_var );
 | |
|       ftextout( text_var, aifblocknr + 3, 60, 0, 0 );
 | |
|       ndAIF = ndAIF + 1;
 | |
|     }
 | |
| 
 | |
|     INPAapiResultText( logische_adresse, "LOGISCHE_ADRESSE", 1, "" );
 | |
|     ftextout( logische_adresse, aifblocknr + 3, 65, 0, 0 );
 | |
| 
 | |
|     INPAapiResultText( physikalische_adresse, "PHYSIKALISCHE_ADRESSE", 1, "" );
 | |
|     ftextout( physikalische_adresse, aifblocknr + 3, 75, 0, 0 );
 | |
| 
 | |
| 
 | |
|     aifblocknr = aifblocknr + 1;
 | |
|   }
 | |
|   ftextout( "----------------------------------------------------------------------------------------------------------------------------------------------------------", aifblocknr + 4, 0, 0, 0 );
 | |
| 
 | |
|   ftextout( "Summe", aifblocknr + 6 , 0, 0, 0 );
 | |
| 
 | |
|   inttostring ( unbelegteAIF, text_var );
 | |
|   //                  Zeile           Sp
 | |
|   ftextout( text_var, aifblocknr + 6 , 8, 0, 0 );
 | |
|   
 | |
|   //
 | |
|   inttostring ( belegteAIF, text_var );
 | |
|   //                  Zeile           Sp
 | |
|   ftextout( text_var, aifblocknr + 6 , 42, 0, 0 );
 | |
| 
 | |
|   //
 | |
|   inttostring ( ndAIF, text_var );
 | |
|   //                  Zeile           Sp
 | |
|   ftextout( text_var, aifblocknr + 6 , 55, 0, 0 );
 | |
| 
 | |
| //ftextout( "Detail Info's zu jedem AIF Feld mit F1....<Shift> F4", 25 , 1, 1, 1 );
 | |
| 
 | |
| }
 | |
| 
 | |
| // *************************************
 | |
| // *** AIF UIF Felder Detail lesen   ***
 | |
| // *************************************
 | |
| SCREEN s_aif_detail_lesen()
 | |
| {
 | |
|   int offset;
 | |
|   int temp;
 | |
|   int aif_adresse;
 | |
|   int spalte_beschreibung = 10;
 | |
|   int spalte_speicherwerte = 55;
 | |
|   int spalte_anzeigewerte = 40;
 | |
|   int spalte_doppelpkt = 38;
 | |
|   string aif_block_nr = "";
 | |
| 
 | |
|   inttostring( aif_nr, aif_block_nr );
 | |
|   //
 | |
|   ftextout( "Anzeigendarstellung", 3, spalte_doppelpkt, 0, 0 );
 | |
|   ftextout( "Telegrammdarstellung", 3, spalte_speicherwerte, 0, 0 );
 | |
|   //
 | |
|   //
 | |
| 
 | |
|   // 
 | |
|   // erste Zeile; 1 Byte
 | |
|   ftextout( "Offset auf naechsten gueltigen Blockeintrag", 5, 0, 0, 0 );
 | |
|   ftextout( ":", 5, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|  // INPAapiJob( sgbd, "AIF_MPC555_OFFSET_LESEN", aif_block_nr, "" );
 | |
|   INPAapiJob( sgbd, "AIF_TABELLE_LESEN", aif_block_nr, "" );
 | |
|   INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   // letzter, damit aktuell gueltiger Datensatz
 | |
|   if ( aif_nr == 0 )
 | |
|   {
 | |
|     INPAapiResultInt( aif_adresse, "AIF_ADRESSE", 1 );
 | |
|     temp = ( aif_adresse / 64 ) + 1;
 | |
|     inttostring( temp, aif_block_nr );
 | |
|     strcat( text_var, "aktueller AIF Block ", aif_block_nr );
 | |
|   }
 | |
|   else
 | |
|     strcat( text_var, "AIF Block ", aif_block_nr );
 | |
| 
 | |
|   ftextout( text_var, 1, 1, 1, 1 );
 | |
|   
 | |
|   // Dezimalwertdarstellung 0x40 hex --> 64 dez
 | |
|   // Anzahl der DAten im AIF
 | |
|   INPAapiResultInt( offset, "AIF_ANZ_DATEN", 1 );
 | |
|   inttostring( offset, text_var );
 | |
|   ftextout( text_var, 5, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   // Speicherwerte / Telegrammdaten
 | |
|   INPAapiResultText( text_var, "AIF_ANZ_DATEN_HEX", 1, "" );
 | |
|   ftextout( text_var, 5, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 2te Zeile 'Fahrgestellnummer'; 7 Byte
 | |
|   ftextout( "VIN", 7, 0, 0, 0 );
 | |
|   ftextout( "Fahrgestellnummer", 7, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 7, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_VIN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FAHRGESTELL_NR", 1, "" );
 | |
|   ftextout( text_var, 7, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   // Speicherwerte / Telegrammdaten
 | |
|   INPAapiResultText( text_var, "AIF_FAHRGESTELL_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 7, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
|  
 | |
|   //
 | |
|   //
 | |
|   // 3te Zeile 'Programmierdatum'; 4 Byte
 | |
|   ftextout( "PD", 9, 0, 0, 0 );
 | |
|   ftextout( "Programmierdatum", 9, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 9, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_PD_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMMIER_DATUM", 1, "" );
 | |
|   ftextout( text_var, 9, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   // Speicherwerte / Telegrammdaten
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMMIER_DATUM_HEX", 1, "" );
 | |
|   ftextout( text_var, 9, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 4te Zeile 'Zusammenbaunummer'; 6 Byte
 | |
|   ftextout( "AN", 11, 0, 0, 0 );
 | |
|   ftextout( "Zusammenbaunummer", 11, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 11, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   //INPAapiJob( sgbd, "AIF_MPC555_AN_LESEN", aif_block_nr, "" );
 | |
|   //INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_ZUSAMMENBAU_NR", 1, "" );
 | |
|   ftextout( text_var, 11, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_ZUSAMMENBAU_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 11, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 5te Zeile 'Codierdatensatznummer'; 6 Byte
 | |
|   ftextout( "CDSN", 13, 0, 0, 0 );
 | |
|   ftextout( "Codierdatensatznummer", 13, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 13, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_CDSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_DATENSATZ_NR", 1, "" );
 | |
|   ftextout( text_var, 13, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_DATENSATZ_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 13, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 6te Zeile 'Behoerdennummer'; 6 Byte
 | |
|   ftextout( "EROTAN", 15, 0, 0, 0 );
 | |
|   ftextout( "Behoerdennummer/Abgasnummer", 15, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 15, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_EROTAN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_BEHOERDEN_NR", 1, "" );
 | |
|   ftextout( text_var, 15, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_BEHOERDEN_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 15, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 7te Zeile 'Haendlernummer'; 3 Byte
 | |
|   ftextout( "RSCOTSN", 17, 0, 0, 0 );
 | |
|   ftextout( "Werkscode bzw HaendlerNr.", 17, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 17, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_RSCOTSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_HAENDLER_NR", 1, "" );
 | |
|   ftextout( text_var, 17, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_HAENDLER_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 17, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 8te Zeile 'Testernummer'; 5 Byte
 | |
|   ftextout( "RSCOTSN", 19, 0, 0, 0 );
 | |
|   ftextout( "Tester-SerienNr.", 19, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 19, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_RSCOTSN_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_TESTER_NR", 1, "" );
 | |
|   ftextout( text_var, 19, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_TESTER_NR_HEX", 1, "" );
 | |
|   ftextout( text_var, 19, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 9te Zeile 'KM Stand' mit Faktor 600 multipli.; 1 Byte
 | |
|   ftextout( "KM", 21, 0, 0, 0 );
 | |
|   ftextout( "km Stand bei Programmierung", 21, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 21, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_KMPD_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_KM_STAND", 1, "" );
 | |
|   ftextout( text_var, 21, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_KM_STAND_HEX", 1, "" );
 | |
|   ftextout( text_var, 21, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 10te Zeile 'Programmstand als Programmreferenz'; 12 Byte
 | |
|   ftextout( "PRGREF", 23, 0, 0, 0 );
 | |
|   ftextout( "Programmstand als Programmreferenz", 23, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 23, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
| //  INPAapiJob( sgbd, "AIF_MPC555_PRGREF_LESEN", aif_block_nr, "" );
 | |
| //  INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMM_STAND", 1, "" );
 | |
|   ftextout( text_var, 23, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_PROGRAMM_STAND_HEX", 1, "" );
 | |
|   ftextout( text_var, 23, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 11te Zeile 'Fahrgestellnummer lang'; 10 Byte
 | |
|   //
 | |
|   ftextout( "VINLONG", 25, 0, 0, 0 );
 | |
|   ftextout( "Fahrgestellnummer lang", 25, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 25, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FG_NR_LANG", 1, "" );
 | |
|   ftextout( text_var, 25, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_FG_NR_LANG_HEX", 1, "" );
 | |
|   ftextout( text_var, 25, spalte_speicherwerte, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|   //
 | |
|   //
 | |
|   // 12te Zeile 'Reserve'; 3 Byte
 | |
|   ftextout( "Reserve", 27, 0, 0, 0 );
 | |
|   ftextout( "3 Byte Reserve bei Power PC", 27, spalte_beschreibung, 0, 0 );
 | |
|   ftextout( ":", 27, spalte_doppelpkt, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_RESERVE", 1, "" );
 | |
|   ftextout( text_var, 27, spalte_anzeigewerte, 0, 0 );
 | |
| 
 | |
|   INPAapiResultText( text_var, "AIF_RESERVE_HEX", 1, "" );
 | |
|   ftextout( text_var, 27, spalte_speicherwerte, 0, 0 );
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // ***************************************
 | |
| // ***  PAF DAF Indizes                ***
 | |
| // ***************************************
 | |
| // ueber Taste 'Shift F3'
 | |
| SCREEN s_paf_daf_indizes()
 | |
| {
 | |
|   string text_var_paf_ppp = "";
 | |
|   string text_var_paf_v = "";
 | |
|   string text_var_paf_bb = "";
 | |
|   string text_var_paf_x = "";
 | |
|   string text_var_paf_h = "";
 | |
|   string text_var_daf_d = "";
 | |
|   string text_var_daf_xxxx = "";
 | |
| 
 | |
| 
 | |
|   LINE( "","" )
 | |
|   {
 | |
|       // Hardware Referenz auslesen
 | |
|       INPAapiJob( sgbd, "HARDWARE_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Hardware Ref. (22 2502) ZZZ PPPx", 2, 1, 0, 0 );
 | |
|       ftextout( ":", 2, 40, 0, 0 );
 | |
|       INPAapiResultText( text_var, "HARDWARE_ZZZ", 1, "" );
 | |
|       ftextout( text_var, 2, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_ppp, "HARDWARE_PPP", 1, "" );
 | |
|       ftextout( text_var_paf_ppp, 2, 46, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "HARDWARE_X", 1, "" );
 | |
|       ftextout( text_var, 2, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|       // Programm Refz. auslesen
 | |
|       INPAapiJob( sgbd, "PROGRAMM_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Progamm Ref. (22 2503) ZZZ PPPx V BBxh", 4, 1, 0, 0 );
 | |
|       ftextout( ":", 4, 40, 0, 0 );
 | |
|       INPAapiResultText( text_var, "HARDWARE_REFERENZ", 1, "" );
 | |
|       ftextout( text_var, 4, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_v, "PROGRAMM_V", 1, "" );
 | |
|       ftextout( text_var_paf_v, 4, 50, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_bb, "PROGRAMM_BB", 1, "" );
 | |
|       ftextout( text_var_paf_bb, 4, 52, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_x, "PROGRAMM_X", 1, "" );
 | |
|       ftextout( text_var_paf_x, 4, 56, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_h, "PROGRAMM_H", 1, "" );
 | |
|       ftextout( text_var_paf_h, 4, 58, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|       // PAF File Namen darstellen
 | |
| /*      ftextout( "PPP  V  BB  x  h", 11, 15, 0, 0 );
 | |
|       ftextout( "PAF Name:     ", 12, 1, 0, 0 );
 | |
| 
 | |
|       ftextout( text_var_paf_ppp, 12, 15, 0, 0 );
 | |
|       ftextout( text_var_paf_v, 12, 19, 0, 0 );
 | |
|       ftextout( text_var_paf_bb, 12, 21, 0, 0 );
 | |
|       ftextout( text_var_paf_x, 12, 24, 0, 0 );
 | |
|       ftextout( text_var_paf_h, 12, 26, 0, 0 );
 | |
| */
 | |
|       ftextout( "PPP  V  BB  x  h", 13, 25, 1, 1 );
 | |
|       ftextout( "PAF Name:     ", 15, 1, 1, 1 );
 | |
| 
 | |
|       ftextout( text_var_paf_ppp, 15, 25, 1, 1 );
 | |
|       ftextout( text_var_paf_v, 15, 33, 1, 1 );
 | |
|       ftextout( text_var_paf_bb, 15, 37, 1, 1 );
 | |
|       ftextout( text_var_paf_x, 15, 43, 1, 1 );
 | |
|       ftextout( text_var_paf_h, 15, 46, 1, 1 );
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|       // Daten Referenz auslesen
 | |
|       INPAapiJob( sgbd, "DATEN_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Daten Ref. (22 2504) ZZZ PPPx V BBxh d xxxx", 8, 1, 0, 0 );
 | |
|       ftextout( ":", 8, 40, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "PROGRAMM_REFERENZ", 1, "" );
 | |
|       ftextout( text_var, 8, 42, 0, 0 );
 | |
|       // Hardware Referenz auslesen
 | |
|       INPAapiJob( sgbd, "HARDWARE_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "PROGRAMMREFERENZ und DATENREFERENZ", 2, 1, 0, 1 );
 | |
|       ftextout( "Hardware Ref. (22 2502) ZZZ PPPx", 4, 1, 0, 0 );
 | |
|       ftextout( ":", 4, 40, 0, 0 );
 | |
|       INPAapiResultText( text_var, "HARDWARE_ZZZ", 1, "" );
 | |
|       ftextout( text_var, 4, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_ppp, "HARDWARE_PPP", 1, "" );
 | |
|       ftextout( text_var_paf_ppp, 4, 46, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "HARDWARE_X", 1, "" );
 | |
|       ftextout( text_var, 4, 50, 0, 0 );
 | |
| 
 | |
| 
 | |
|       // Programm Refz. auslesen
 | |
|       INPAapiJob( sgbd, "PROGRAMM_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Progamm Ref. (22 2503) ZZZ PPPx V BBxh", 6, 1, 0, 0 );
 | |
|       ftextout( ":", 6, 40, 0, 0 );
 | |
|       INPAapiResultText( text_var, "HARDWARE_REFERENZ", 1, "" );
 | |
|       ftextout( text_var, 6, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_v, "PROGRAMM_V", 1, "" );
 | |
|       ftextout( text_var_paf_v, 6, 50, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_bb, "PROGRAMM_BB", 1, "" );
 | |
|       ftextout( text_var_paf_bb, 6, 52, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_x, "PROGRAMM_X", 1, "" );
 | |
|       ftextout( text_var_paf_x, 6, 56, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_paf_h, "PROGRAMM_H", 1, "" );
 | |
|       ftextout( text_var_paf_h, 6, 58, 0, 0 );
 | |
| 
 | |
| 
 | |
| 
 | |
|       // PAF File Namen darstellen
 | |
|       ftextout( "PAF Name PPP  V  BB  x  h", 10, 1, 0, 0 );
 | |
|       ftextout( ":", 10, 20, 0, 0 );
 | |
|       ftextout( text_var_paf_ppp, 10, 22, 0, 0 );
 | |
|       ftextout( text_var_paf_v, 10, 26, 0, 0 );
 | |
|       ftextout( text_var_paf_bb, 10, 28, 0, 0 );
 | |
|       ftextout( text_var_paf_x, 10, 30, 0, 0 );
 | |
|       ftextout( text_var_paf_h, 10, 32, 0, 0 );
 | |
| 
 | |
|       // Daten Referenz auslesen
 | |
|       INPAapiJob( sgbd, "DATEN_REFERENZ_LESEN_PAF_DAF", "", "" );
 | |
|       INPAapiCheckJobStatus( "OKAY" );
 | |
| 
 | |
|       ftextout( "Daten Ref. (22 2504) ZZZ PPPx V BBxh d xxxx", 8, 1, 0, 0 );
 | |
|       ftextout( ":", 8, 40, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var, "PROGRAMM_REFERENZ", 1, "" );
 | |
|       ftextout( text_var, 8, 42, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_daf_d, "DATEN_D", 1, "" );
 | |
|       ftextout( text_var_daf_d, 8, 60, 0, 0 );
 | |
| 
 | |
|       INPAapiResultText( text_var_daf_xxxx, "DATEN_XXXX", 1, "" );
 | |
|       ftextout( text_var_daf_xxxx, 8, 62, 0, 0 );
 | |
|       
 | |
|       // DAF File Namen darstellen
 | |
|       ftextout( "DAF Name V  BB  d  xxxx", 12, 1, 0, 0 );
 | |
|       ftextout( ":", 12, 20, 0, 0 );
 | |
|       ftextout( text_var_paf_v, 12, 22, 0, 0 );
 | |
|       ftextout( text_var_paf_bb, 12, 24, 0, 0 );
 | |
|       ftextout( text_var_daf_d, 12, 26, 0, 0 );
 | |
|       ftextout( text_var_daf_xxxx, 12, 28, 0, 0 );   
 | |
|       
 | |
|   }
 | |
| }
 | |
| 
 | |
| //// ****************************************
 | |
| //// *** Steuernscreen Höhenstandabgleich ***
 | |
| //// ****************************************
 | |
| //SCREEN s_steuern_abgleich_hs()
 | |
| //{
 | |
| //  int    offset_vl;
 | |
| //  int    offset_vr;
 | |
| //  int    offset_hl;
 | |
| //  int    offset_hr;
 | |
| //  real   steigung_vl;
 | |
| //  real   steigung_vr;
 | |
| //  real   steigung_hl;
 | |
| //  real   steigung_hr;
 | |
| //  real   steigung_vl_phys;
 | |
| //  real   steigung_vr_phys;
 | |
| //  real   steigung_hl_phys;
 | |
| //  real   steigung_hr_phys;
 | |
| //  int    abw_vl;
 | |
| //  int    abw_vr;
 | |
| //  int    abw_hl;
 | |
| //  int    abw_hr;
 | |
| //  string str_abw_vl;
 | |
| //  string str_abw_vr;
 | |
| //  string str_abw_hl;
 | |
| //  string str_abw_hr;
 | |
| //  string text_var= "";
 | |
| //  string chk_jobstatus="";
 | |
| //  
 | |
| //  ftextout("Steuern Höhenstandabgleich",1,0,1,0);
 | |
| //  ftextout("",3,0,0,0);
 | |
| //  LINE("","")
 | |
| //  {
 | |
| //    ftextout("aktuelle Abgleichwerte",1,0,0,1);
 | |
| //    // aktuelle Werte lesen
 | |
| //    INPAapiJob( sgbd, "STATUS_OFFSET_WERTE_HGLV", "", "" );
 | |
| //    INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
| //    
 | |
| //
 | |
| //    INPAapiJob( sgbd, "STATUS_ABGLEICH_HOEHENSTAND", "", "" );
 | |
| //    INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
| //    
 | |
| //    if(chk_jobstatus == "OKAY")
 | |
| //    {
 | |
| //        // AD Wert Sensornullpunkt VL
 | |
| //        ftextout( "AD-Wert Sensornullpunkt VL", 3, 1, 0, 0 );
 | |
| //        ftextout( ":", 3, 25, 0, 0 );
 | |
| //        // Wert
 | |
| //        INPAapiResultAnalog( ad_null_vl, "STAT_AD_0_VL_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        analogout( ad_null_vl, 3, 27, 0, 1024, 0, 1024, "" );
 | |
| //        // Einheit [digits]
 | |
| //        INPAapiResultText( text_var, "STAT_AD_0_VL_EINH", 1, "" );
 | |
| //        ftextout( text_var, 3, 60, 0, 0 );
 | |
| //
 | |
| //        // Steigung VL
 | |
| //        ftextout( "Steigung VL", 5, 1, 0, 0 );
 | |
| //        ftextout( ":", 5, 25, 0, 0 );
 | |
| //        // Steigung
 | |
| //        INPAapiResultAnalog( steigung_vl, "STAT_STEIGUNG_VL_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        //analogout( steigung_vl, 5, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //        // Einheit [digits/m]
 | |
| //        steigung_vl_phys = (steigung_vl * 5)/1023;
 | |
| //        analogout( steigung_vl_phys, 5, 27, -200, 200, -200, 200, "3.2" );
 | |
| //        ftextout( "mV/mm", 5, 60, 0, 0 );
 | |
| //        realtostring(steigung_vl,"5.0",text_var);
 | |
| //        ftextout( text_var, 5, 70, 0, 0 );
 | |
| //        INPAapiResultText( text_var, "STAT_STEIGUNG_VL_EINH", 1, "" );
 | |
| //        ftextout( text_var, 5, 75, 0, 0 );
 | |
| //
 | |
| //        // AD Wert Sensornullpunkt VR
 | |
| //        ftextout( "AD-Wert Sensornullpunkt VR", 7, 1, 0, 0 );
 | |
| //        ftextout( ":", 7, 25, 0, 0 );
 | |
| //        // Wert
 | |
| //        INPAapiResultAnalog( ad_null_vr, "STAT_AD_0_VR_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        analogout( ad_null_vr, 7, 27, 0, 1024, 0, 1024, "" );
 | |
| //        // Einheit [digits]
 | |
| //        INPAapiResultText( text_var, "STAT_AD_0_VR_EINH", 1, "" );
 | |
| //        ftextout( text_var, 7, 60, 0, 0 );
 | |
| //
 | |
| //        // Steigung VR
 | |
| //        ftextout( "Steigung VR", 9, 1, 0, 0 );
 | |
| //        ftextout( ":", 9, 25, 0, 0 );
 | |
| //        // Steigung
 | |
| //        INPAapiResultAnalog( steigung_vr, "STAT_STEIGUNG_VR_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        //analogout( steigung_vr, 9, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //        // Einheit [digits/m]
 | |
| //        steigung_vr_phys = (steigung_vr * 5)/1023;
 | |
| //        analogout( steigung_vr_phys, 9, 27, -200, 200, -200, 200, "3.2" );
 | |
| //        ftextout( "mV/mm", 9, 60, 0, 0 );
 | |
| //        realtostring(steigung_vr,"5.0",text_var);
 | |
| //        ftextout( text_var, 9, 70, 0, 0 );
 | |
| //        INPAapiResultText( text_var, "STAT_STEIGUNG_VR_EINH", 1, "" );
 | |
| //        ftextout( text_var, 9, 75, 0, 0 );
 | |
| //
 | |
| //        // AD Wert Sensornullpunkt HL
 | |
| //        ftextout( "AD-Wert Sensornullpunkt HL", 11, 1, 0, 0 );
 | |
| //        ftextout( ":", 11, 25, 0, 0 );
 | |
| //        // Wert
 | |
| //        INPAapiResultAnalog( ad_null_hl, "STAT_AD_0_HL_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        analogout( ad_null_hl, 11, 27, 0, 1024, 0, 1024, "" );
 | |
| //        // Einheit [digits]
 | |
| //        INPAapiResultText( text_var, "STAT_AD_0_HL_EINH", 1, "" );
 | |
| //        ftextout( text_var, 11, 60, 0, 0 );
 | |
| //
 | |
| //        // Steigung HL
 | |
| //        ftextout( "Steigung HL", 13, 1, 0, 0 );
 | |
| //        ftextout( ":", 13, 25, 0, 0 );
 | |
| //        // Steigung
 | |
| //        INPAapiResultAnalog( steigung_hl, "STAT_STEIGUNG_HL_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        //analogout( steigung_hl, 13, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //        // Einheit [digits/m]
 | |
| //        steigung_hl_phys = (steigung_hl * 5)/1023;
 | |
| //        analogout( steigung_hl_phys, 13, 27, -200, 200, -200, 200, "3.2" );
 | |
| //        ftextout( "mV/mm", 13, 60, 0, 0 );
 | |
| //        realtostring(steigung_hl,"5.0",text_var);
 | |
| //        ftextout( text_var, 13, 70, 0, 0 );
 | |
| //        INPAapiResultText( text_var, "STAT_STEIGUNG_HL_EINH", 1, "" );
 | |
| //        ftextout( text_var, 13, 75, 0, 0 );
 | |
| //
 | |
| //        // AD Wert Sensornullpunkt HR
 | |
| //        ftextout( "AD-Wert Sensornullpunkt HR", 15, 1, 0, 0 );
 | |
| //        ftextout( ":", 15, 25, 0, 0 );
 | |
| //        // Wert
 | |
| //        INPAapiResultAnalog( ad_null_hr, "STAT_AD_0_HR_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        analogout( ad_null_hr, 15, 27, 0, 1024, 0, 1024, "" );
 | |
| //        // Einheit [digits]
 | |
| //        INPAapiResultText( text_var, "STAT_AD_0_HR_EINH", 1, "" );
 | |
| //        ftextout( text_var, 15, 60, 0, 0 );
 | |
| //
 | |
| //        // Steigung HR
 | |
| //        ftextout( "Steigung HR", 17, 1, 0, 0 );
 | |
| //        ftextout( ":", 17, 25, 0, 0 );
 | |
| //        // Steigung
 | |
| //        INPAapiResultAnalog( steigung_hr, "STAT_STEIGUNG_HR_WERT", 1 );
 | |
| //        //                         Zl, Sp, min  max    Format
 | |
| //        //analogout( steigung_hr, 17, 27, -32767, 32767, -32767, 32767, "" );
 | |
| //        // Einheit [digits/m]
 | |
| //        steigung_hr_phys = (steigung_hr * 5)/1023;
 | |
| //        analogout( steigung_hr_phys, 17, 27, -200, 200, -200, 200, "3.2" );
 | |
| //        ftextout( "mV/mm", 17, 60, 0, 0 );
 | |
| //        realtostring(steigung_hr,"5.0",text_var);
 | |
| //        ftextout( text_var, 17, 70, 0, 0 );
 | |
| //        INPAapiResultText( text_var, "STAT_STEIGUNG_HR_EINH", 1, "" );
 | |
| //        ftextout( text_var, 17, 75, 0, 0 );
 | |
| //    }
 | |
| //    else if(chk_jobstatus == "ERROR: Steigung ist Null")
 | |
| //    {
 | |
| //        ftextout( chk_jobstatus, 2, 1, 2, 0 );
 | |
| //        ftextout( "Codierung prüfen", 5, 1, 2, 0 );
 | |
| //    }
 | |
| //
 | |
| //    ftextout("aktuelle Fahrzeughöhe",20,0,0,1);
 | |
| //    // aktuelle Werte lesen
 | |
| //    INPAapiJob( sgbd, "STATUS_FAHRZEUGHOEHE", "", "" );
 | |
| //    INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "");
 | |
| //    
 | |
| //    if(chk_jobstatus == "OKAY")
 | |
| //    {
 | |
| //      // Wert Höhe VL
 | |
| //      ftextout( "Höhenwert VL", 21, 1, 0, 0 );
 | |
| //      ftextout( ":", 21, 20, 0, 0 );
 | |
| //      // Wert
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_VL_WERT", 1, "" );
 | |
| //      clearrect(25,27,1,10);
 | |
| //      ftextout( text_var, 21, 25, 0, 0 );
 | |
| //      // Einheit [mm]
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_VL_EINH", 1, "" );
 | |
| //      ftextout( text_var, 21, 30, 0, 0 );
 | |
| //
 | |
| //      // Wert Höhe VR
 | |
| //      ftextout( "Höhenwert VR", 22, 1, 0, 0 );
 | |
| //      ftextout( ":", 22, 20, 0, 0 );
 | |
| //      // Wert
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_VR_WERT", 1, "" );
 | |
| //      clearrect(26,27,1,10);
 | |
| //      ftextout( text_var, 22, 25, 0, 0 );
 | |
| //      // Einheit [mm]
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_VR_EINH", 1, "" );
 | |
| //      ftextout( text_var, 22, 30, 0, 0 );
 | |
| //
 | |
| //      // Wert Höhe HL
 | |
| //      ftextout( "Höhenwert HL", 23, 1, 0, 0 );
 | |
| //      ftextout( ":", 23, 20, 0, 0 );
 | |
| //      // Wert
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_HL_WERT", 1, "" );
 | |
| //      clearrect(27,27,1,10);
 | |
| //      ftextout( text_var, 23, 25, 0, 0 );
 | |
| //      // Einheit [mm]
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_HL_EINH", 1, "" );
 | |
| //      ftextout( text_var, 23, 30, 0, 0 );
 | |
| //
 | |
| //      // Wert Höhe HR
 | |
| //      ftextout( "Höhenwert HR", 24, 1, 0, 0 );
 | |
| //      ftextout( ":", 24, 20, 0, 0 );
 | |
| //      // Wert
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_HR_WERT", 1, "" );
 | |
| //      clearrect(28,27,1,10);
 | |
| //      ftextout( text_var, 24, 25, 0, 0 );
 | |
| //      // Einheit [mm]
 | |
| //      INPAapiResultText( text_var, "STAT_HOEHE_HR_EINH", 1, "" );
 | |
| //      ftextout( text_var, 24, 30, 0, 0 );
 | |
| //    }
 | |
| //    else if(chk_jobstatus == "ERROR: Steigung ist Null")
 | |
| //    {
 | |
| //      ftextout( chk_jobstatus, 2, 1, 0, 0 );
 | |
| //      ftextout( "Codierung prüfen", 5, 1, 2, 0 );
 | |
| //    }
 | |
| //  }
 | |
| //
 | |
| //  LINE( "","" )
 | |
| //  {
 | |
| //    if(ABGLEICHEN == TRUE)
 | |
| //    {
 | |
| //      ABGLEICHEN = FALSE;
 | |
| //
 | |
| //      input2int( abw_vl, abw_vr, "Höhenstandabgleich", "Abweichung Vorderachse:", "vorne links in mm:", "vorne rechts in mm:",-200, 200 , -200, 200);
 | |
| //      getinputstate( input_state_key );
 | |
| //      // Eingabe wurde mit Abbruch abgeschlossen
 | |
| //      if ( input_state_key == 1 )
 | |
| //      {
 | |
| //        userboxclose( 0 );
 | |
| //        viewclose();
 | |
| //      }
 | |
| //      // Eingabe wurde mit OK abgeschlossen
 | |
| //      else if ( input_state_key == 0 )
 | |
| //      {
 | |
| //        input2int( abw_hl, abw_hr, "Höhenstandabgleich", "Abweichung Hinterachse:", "hinten links in mm:", "hinten rechts in mm:",-200, 200 , -200, 200);
 | |
| //        getinputstate( input_state_key_2 );
 | |
| //        // Eingabe 2 wurde mit Abbruch abgeschlossen
 | |
| //        if ( input_state_key_2 == 1 )
 | |
| //        {
 | |
| //          userboxclose( 0 );
 | |
| //          viewclose();
 | |
| //        }
 | |
| //        // Eingabe 2 wurde mit OK abgeschlossen
 | |
| //        else if ( input_state_key_2 == 0 )
 | |
| //        {
 | |
| //          // Dialog schliessen
 | |
| //          userboxclose( 0 );
 | |
| //          viewclose();
 | |
| //        }
 | |
| //        // Dialog schliessen
 | |
| //        userboxclose( 0 );
 | |
| //        viewclose();
 | |
| //      }
 | |
| //
 | |
| //      // nur bei OK ausfuehren
 | |
| //      if ( input_state_key   == 0 
 | |
| //         &&input_state_key_2 == 0)
 | |
| //      {
 | |
| //        inttostring(abw_vl, str_abw_vl);
 | |
| //        inttostring(abw_vr, str_abw_vr);
 | |
| //        inttostring(abw_hl, str_abw_hl);
 | |
| //        inttostring(abw_hr, str_abw_hr);
 | |
| //        INPAapiJob( sgbd, "STEUERN_ABGLEICH_HOEHENSTAND", str_abw_vl+";"+str_abw_vr+";"+str_abw_hl+";"+str_abw_hr, "" );
 | |
| //      
 | |
| //        INPAapiResultText( chk_jobstatus, "JOB_STATUS", 1, "" );
 | |
| //        if ( chk_jobstatus == "OKAY" )
 | |
| //        {
 | |
| //          infobox ( "Info", "Höhenstand abgeglichen");
 | |
| //          userboxclose( 0 );
 | |
| //          viewclose();
 | |
| //        }
 | |
| //        else
 | |
| //        {
 | |
| //          infobox ( "Fehler", chk_jobstatus );
 | |
| //          userboxclose( 0 );
 | |
| //          viewclose();
 | |
| //        }
 | |
| //      }
 | |
| //    }
 | |
| //  }
 | |
| //
 | |
| //}
 | |
| 
 | |
| 
 | |
| // -- EOF --
 | 
