320 lines
11 KiB
Plaintext
320 lines
11 KiB
Plaintext
|
//**********************************************************************
|
|||
|
//*
|
|||
|
//* Spezielle Version zum Auslesen von Ueberdrehzahl bei der MS42
|
|||
|
//*
|
|||
|
//*
|
|||
|
//*
|
|||
|
//**********************************************************************
|
|||
|
//* Zeiler / EA-33
|
|||
|
//**********************************************************************
|
|||
|
//* History
|
|||
|
//**********************************************************************
|
|||
|
|
|||
|
#pragma winedit
|
|||
|
|
|||
|
#include "..\sgdat\inpa.h"
|
|||
|
|
|||
|
// Umrechnungsfaktoren deutsch / englisch
|
|||
|
// Grad Celsius -> Fahrenheit
|
|||
|
// km -> miles
|
|||
|
// Liter -> Gallon US
|
|||
|
real m_c = 1.0;
|
|||
|
real a_c = 0.0;
|
|||
|
real m_km = 1.0;
|
|||
|
real m_l = 1.0;
|
|||
|
|
|||
|
// Version, Verantwortung, Steuerger<65>t
|
|||
|
string titel ="MS 42.0"; // Titel Nacharbeitsprogramm
|
|||
|
string version="1.00"; // Version Nacharbeitsprogramm
|
|||
|
string origin ="BMW TI-433 Schiefer"; // Verantwortung Nacharbeitsprogramm
|
|||
|
string sgbd ="ms43_sp2"; // Steuerger<65>t spezielle SGBD
|
|||
|
string gruppe ="D_0012"; // Gruppendatei
|
|||
|
|
|||
|
string sgbd_ecu; // f<>r Info
|
|||
|
string sgbd_origin; // f<>r Info
|
|||
|
string sgbd_revision; // f<>r Info
|
|||
|
string sgbd_sprache; // f<>r Info
|
|||
|
string sgbd_comment; // f<>r Info
|
|||
|
|
|||
|
string text_var; // allgemeine Variable
|
|||
|
real zahlen_var; // allgemeine Variable
|
|||
|
int ganz_zahl; // allgemeine Variable
|
|||
|
bool logik_var; // allgemeine Variable
|
|||
|
string job_state; // JOB_STATUS Variable
|
|||
|
int input_state; // Eingabestatus
|
|||
|
int input_ok=0; // Eingabe mit OK beendet
|
|||
|
|
|||
|
int val1; // Variable 1
|
|||
|
int val2; // Variable 2
|
|||
|
string high_low_anz; // Speicher lesen
|
|||
|
string adresse="0x0000"; // Speicher lesen
|
|||
|
int anzahl=16; // Speicher lesen
|
|||
|
int seg; // Speicher lesen
|
|||
|
int high; // Speicher lesen
|
|||
|
int mid; // Speicher lesen
|
|||
|
int low; // Speicher lesen
|
|||
|
int varInteger; // Hilfsvariable
|
|||
|
string varText; // allgemeine Variable
|
|||
|
string varText2; // allgemeine Variable
|
|||
|
real varReal; // allgemeine Variable
|
|||
|
bool varBool; // allgemeine Variable
|
|||
|
string varJobState; // JOB_STATUS Variable
|
|||
|
int la; //
|
|||
|
|
|||
|
// ****************************************************************************
|
|||
|
// *** U S E R - Funktionen ***
|
|||
|
// ****************************************************************************
|
|||
|
|
|||
|
// Ausgabe eines Ergebnisses des 1. Satzes als Text mit Job-Status-Ueberpruefung
|
|||
|
ergebnisTextAusgabe(in: string ergebnis,in: int y,in: int x,
|
|||
|
in: int textgroesse, in: int textattr)
|
|||
|
{
|
|||
|
string tmpText;
|
|||
|
|
|||
|
INPAapiResultText(tmpText,ergebnis,1,"");
|
|||
|
ftextout(tmpText,y,x,textgroesse,textattr);
|
|||
|
}
|
|||
|
|
|||
|
// Ausgabe eines Ergebnisses als Digitalwert des 1. Satzes mit Job-Status-Ueberpruefung
|
|||
|
ergebnisDigitalAusgabe(in: string ergebnis,in: int y,in: int x,
|
|||
|
in: string trueText,in: string falseText)
|
|||
|
{
|
|||
|
bool tmpBool;
|
|||
|
|
|||
|
INPAapiResultDigital(tmpBool,ergebnis,1);
|
|||
|
digitalout(tmpBool,y,x,trueText,falseText);
|
|||
|
}
|
|||
|
|
|||
|
// Ausgabe eines Ergebnisses als Analogwert des 1. Satzes mit Job-Status-Ueberpruefung
|
|||
|
ergebnisAnalogAusgabe(in: string ergebnis,in: int y,in: int x,
|
|||
|
in: real min,in: real max,in: real minGueltig,in: real maxGueltig)
|
|||
|
{
|
|||
|
real tmpReal;
|
|||
|
|
|||
|
INPAapiResultAnalog(tmpReal,ergebnis,1);
|
|||
|
analogout(tmpReal,y,x,min,max,minGueltig,maxGueltig,"4.2");
|
|||
|
}
|
|||
|
|
|||
|
// Ausgabe eines umzurechnenden Ergebnisses als Analogwert des 1. Satzes mit
|
|||
|
// Job-Status-Ueberpruefung (Grenzen werden ebenfalls umgerechnet=
|
|||
|
ergebnisUmrechnungAnalogAusgabe(in: string ergebnis,in: real faktor,in: real summe,
|
|||
|
in: int y,in: int x,
|
|||
|
in: real min,in: real max,in: real minGueltig,in: real maxGueltig)
|
|||
|
{
|
|||
|
real tmpReal;
|
|||
|
|
|||
|
INPAapiResultAnalog(tmpReal,ergebnis,1);
|
|||
|
analogout(tmpReal*faktor+summe,y,x,
|
|||
|
min*faktor+summe,max*faktor+summe,
|
|||
|
minGueltig*faktor+summe,maxGueltig*faktor+summe,
|
|||
|
"4.2");
|
|||
|
}
|
|||
|
|
|||
|
// Ansteuerung
|
|||
|
// job = Job fuer Ansteuerung
|
|||
|
// info = Auszugebender Text (ohne "angesteuert")
|
|||
|
ansteuerung(in: string job,in: string info)
|
|||
|
{
|
|||
|
userboxclose(0); // bereits aktive User-Box schliessen
|
|||
|
viewclose();
|
|||
|
// Ansteuern
|
|||
|
// INPAapiJob(sgbd,job,"","");
|
|||
|
// INPAapiCheckJobStatus("OKAY");
|
|||
|
// Auswertung
|
|||
|
|
|||
|
// userboxopen(0,1,35,1,50,
|
|||
|
// " Steuern",
|
|||
|
// " "+info+" angesteuert");
|
|||
|
// sicherheitshalber neu starten
|
|||
|
// start();
|
|||
|
}
|
|||
|
|
|||
|
// ****************************************************
|
|||
|
// *** M e n <20> a u f b a u ***
|
|||
|
// ****************************************************
|
|||
|
// **************************
|
|||
|
// *** Hauptmen<65> ***
|
|||
|
// **************************
|
|||
|
MENU m_main()
|
|||
|
{
|
|||
|
INIT {
|
|||
|
setmenutitle("Hauptmen<65>");
|
|||
|
}
|
|||
|
ITEM( 9 ,"Druck") {
|
|||
|
printscreen();
|
|||
|
}
|
|||
|
|
|||
|
ITEM( 10 ,"Zur<75>ck") {
|
|||
|
blankscreen();
|
|||
|
userboxclose(0);
|
|||
|
setscreen( s_main ,TRUE);
|
|||
|
setmenu( m_main );
|
|||
|
}
|
|||
|
|
|||
|
ITEM( 1 ,"<22>berdrehzahl") {
|
|||
|
setscreen(s_ueberdrehzahl,TRUE);
|
|||
|
}
|
|||
|
|
|||
|
/* ITEM( 2 ,"Fusshebel") {
|
|||
|
setscreen(s_fusshebel,TRUE);
|
|||
|
}
|
|||
|
ITEM( 3 ,"F2 l<>schen") {
|
|||
|
userboxclose(0);
|
|||
|
viewclose();
|
|||
|
INPAapiJob(sgbd,"FUSSHEBELFEHLBEDIENUNG_LOESCHEN","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
userboxopen(0,8,35,5,50,"Eintraege Fusshebelfehlbetaetigung loeschen","");
|
|||
|
userboxftextout(0,"Die Eintr<74>ge Fusshebelfehlbet<65>tigung wurden gel<65>scht!",1,3,0,0);
|
|||
|
}
|
|||
|
|
|||
|
ITEM( 4 ,"Momente") {
|
|||
|
setscreen(s_moment,TRUE);
|
|||
|
}
|
|||
|
ITEM( 5 ,"F4 l<>schen") {
|
|||
|
userboxclose(0);
|
|||
|
viewclose();
|
|||
|
INPAapiJob(sgbd,"MOMENTEN_EINGRIFF_LOESCHEN","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
userboxopen(0,8,35,5,50,"Eintraege Momentenreduzierung loeschen","");
|
|||
|
userboxftextout(0,"Die Eintr<74>ge Momentenreduzierung wurden gel<65>scht!",1,3,0,0);
|
|||
|
}
|
|||
|
*/
|
|||
|
ITEM( 20 ,"Exit") {
|
|||
|
userboxclose(0);
|
|||
|
exit();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// ****************************************************************************
|
|||
|
// *** S c r e e n a u f b a u ***
|
|||
|
// ****************************************************************************
|
|||
|
|
|||
|
|
|||
|
// **************************
|
|||
|
// *** Hauptscreen ***
|
|||
|
// **************************
|
|||
|
SCREEN s_main()
|
|||
|
{
|
|||
|
ftextout("<22>berdrehzahl M52/MS42",1,0,1,0);
|
|||
|
ftextout("",3,0,0,0);
|
|||
|
INPAapiJob(sgbd,"IDENT","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
LINE("","")
|
|||
|
{
|
|||
|
ftextout("< F1> <20>berdrehzahl" , 4,5,0,1);
|
|||
|
/* ftextout("< F2> Fusshebelfehlbedienung" , 6,5,0,1);
|
|||
|
ftextout("< F3> Fusshebelfehlbedienung l<>schen" , 8,5,0,1);
|
|||
|
ftextout("< F4> Momentenreduzierungseingriffe" , 10,5,0,1);
|
|||
|
ftextout("< F5> Momentenreduzierungseingriffe l<>schen" , 12,5,0,1);
|
|||
|
*/
|
|||
|
ftextout("<Shift> + < F10> Exit" ,22,45,0,1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// *************************
|
|||
|
// *** Ueberdrehzahl **
|
|||
|
// *************************
|
|||
|
SCREEN s_ueberdrehzahl()
|
|||
|
{
|
|||
|
ftextout("<22>berdrehzahl M52",1,0,1,0);
|
|||
|
ftextout("",3,0,0,0);
|
|||
|
|
|||
|
|
|||
|
LINE("-max <20>berdrehzahl auslesen-","")
|
|||
|
{
|
|||
|
// maximale Ueberdrehzahl auslesen
|
|||
|
text(1,0,"max <20>berdrehzahl");
|
|||
|
text(2,0,"[1/min]");
|
|||
|
INPAapiJob(sgbd,"STATUS_MAX_UEBERDREHZAHL","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
ergebnisAnalogAusgabe("STAT_MAX_UEBERDREHZAHL_WERT", 3,0, 0.0, 10240.0, 0.0, 10240.0);
|
|||
|
}
|
|||
|
|
|||
|
LINE("-Betriebsstundenzaehler auslesen-","")
|
|||
|
{
|
|||
|
// Betriebsstundenzaehler auslesen
|
|||
|
text(1,0,"Betriebsstundenz<6E>hler");
|
|||
|
text(2,0,"[min]");
|
|||
|
INPAapiJob(sgbd,"STATUS_BETRIEB_UEBERDREHZAHL","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
ergebnisAnalogAusgabe("STAT_BETRIEB_UEBERDREHZAHL_WERT", 3,0, 0.0, 393210, 0.0, 393210);
|
|||
|
}
|
|||
|
LINE("-Zaehler <20>berdrehzahl auslesen-","")
|
|||
|
{
|
|||
|
// Zaehler Ueberdrehzahl auslesen
|
|||
|
text(1,0,"Z<>hler <20>berdrehzahl");
|
|||
|
text(2,0,"[-]");
|
|||
|
INPAapiJob(sgbd,"STATUS_ZAEHLER_UEBERDREHZAHL","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
ergebnisAnalogAusgabe("STAT_ZAEHLER_UEBERDREHZAHL_WERT", 3,0, 0.0, 255, 0.0, 255);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// **************************
|
|||
|
// *** inpainit, inpaexit ***
|
|||
|
// **************************
|
|||
|
inpainit()
|
|||
|
{
|
|||
|
string sgbd_version; // f<>r Versionskontrolle
|
|||
|
string inpa_version; // f<>r Versionskontrolle
|
|||
|
string inpa_sprache="deutsch"; // f<>r Sprachvariante
|
|||
|
string variante="ms43_sp2"; // f<>r Variantenkontrolle
|
|||
|
bool fehlerflag; // Fehlerflag
|
|||
|
string err_text; // Fehlertext
|
|||
|
|
|||
|
|
|||
|
settitle(titel+" Version "+version);
|
|||
|
INPAapiInit();
|
|||
|
// INPAapiJob(gruppe,"INITIALISIERUNG","","");
|
|||
|
// INP1apiResultText(fehlerflag,variante,"VARIANTE",0,"");
|
|||
|
/* if (fehlerflag == FALSE)
|
|||
|
{
|
|||
|
INP1apiErrorText(err_text);
|
|||
|
messagebox("Variantenkontrolle",
|
|||
|
err_text+". "+
|
|||
|
"Das Programm wird abgebrochen!");
|
|||
|
// exit();
|
|||
|
}*/
|
|||
|
if (variante != sgbd)
|
|||
|
{
|
|||
|
messagebox("Variantenkontrolle",
|
|||
|
"Gesuchtes Steuerger<65>t: '"+sgbd+"' nicht gefunden. "+
|
|||
|
"Gefundenes Steuerger<65>t: '"+variante+"'. "+
|
|||
|
"Das Programm wird abgebrochen!");
|
|||
|
// exit();
|
|||
|
}
|
|||
|
|
|||
|
INPAapiJob(sgbd,"INFO","","");
|
|||
|
INPAapiResultText(sgbd_ecu,"ECU",1,"");
|
|||
|
INPAapiResultText(sgbd_revision,"REVISION",1,"");
|
|||
|
INPAapiResultText(sgbd_origin,"ORIGIN",1,"");
|
|||
|
INPAapiResultText(sgbd_comment,"COMMENT",1,"");
|
|||
|
INPAapiResultText(sgbd_sprache,"SPRACHE",1,"");
|
|||
|
// midstr(inpa_version,version,0,2);
|
|||
|
// midstr(sgbd_version,sgbd_revision,0,2);
|
|||
|
// if (inpa_version != sgbd_version)
|
|||
|
// {
|
|||
|
// messagebox("Versionskontrolle",
|
|||
|
// "Nicht zusammenpassende Versionen. "+
|
|||
|
// "Fehlfunktion ist m<>glich!");
|
|||
|
// }
|
|||
|
/*if (inpa_sprache != sgbd_sprache)
|
|||
|
{
|
|||
|
messagebox("Sprachvariantenkontrolle",
|
|||
|
"Nicht zusammenpassende Sprachvariante. "+
|
|||
|
"Fehlfunktion ist m<>glich!");
|
|||
|
}*/
|
|||
|
setmenu(m_main);
|
|||
|
setscreen(s_main,TRUE);
|
|||
|
}
|
|||
|
inpaexit()
|
|||
|
{
|
|||
|
INPAapiJob(sgbd,"DIAGNOSE_ENDE","","");
|
|||
|
INPAapiCheckJobStatus("OKAY");
|
|||
|
INPAapiEnd();
|
|||
|
}
|
|||
|
|