273 lines
10 KiB
Plaintext
Executable File
273 lines
10 KiB
Plaintext
Executable File
#line 1 "D_0014.B2G"
|
||
ecu : D_0014;
|
||
origin : BMW AG VP-34 K.Weissert;
|
||
revision: 1.22;
|
||
author : BMW TP-421 Weber, BMW TI-538 Drexel;
|
||
comment : DM17_2L1, DM5212L0, DM5212L2, DM5212L3, DME17_2R, DME5212L, DM5212R3;
|
||
|
||
/* ------------------------------------------------------------------
|
||
Liste aller Varianten:
|
||
|
||
DM17_2L1 aktuell
|
||
DM5212L0 Alpina
|
||
DM5212L2 aktuell
|
||
DME17_2R -
|
||
DME5212L -
|
||
------------------------------------------------------------------ */
|
||
|
||
/* **************************** SGBD *********************************
|
||
;%V VERSION
|
||
;%V ********************************************************************
|
||
;%V Gruppendatei : D_0014
|
||
;%V Steuergeraet : -
|
||
;%V gueltig fuer : 2. DME-SG fuer 12 Zyl. Motoren
|
||
;%V Bezug Lastenh:
|
||
;%V Diagnoseindex: -
|
||
;%V Codierindex : -
|
||
;%V ... : -
|
||
;%V EDIABAS : 3.0.0
|
||
;%V --------------------------------------------------------------------
|
||
;%V History: 01.10.92 Erstellung Ta
|
||
;%V 29.03.93 open_communication() wird erste Fkt. Ta
|
||
;%V 25.10.94 Erweiterung EWS SG We
|
||
;%V {"1740208", "DM5212L1"} // E38M73 Serie PU
|
||
;%V {"4380542", "DM5212L1"} // E38M73 EWS Versuch
|
||
;%V {"1744697", "DM5212L1"} // E38M73 EWS Serie
|
||
;%V
|
||
;%V 28.10.94 Diagnoseende entfernt V.1.11 We
|
||
;%V Freigabe fuer EWS
|
||
;%V
|
||
;%V
|
||
;%V 28.11.94 Umstellung SGBD Serie auf EWS V. 1.12 We
|
||
;%V {"4380542", "DM5212L2"}, // E38M73 EWS Versuch
|
||
;%V {"1744697", "DM5212L2"} // E38M73 EWS Serie
|
||
;%V
|
||
;%V 18.01.95 {"1743247", "DME17_2L1"} // sollte M70 850 CSI sein ? V 1.13 We
|
||
;%V
|
||
;%V 19.01.95 {"1404738", "DM17_2L1"} // M70 850 CSI mit EWS V 1.14 We
|
||
;%V 21.03.95 {"1427684", "DM5212L2"} // M73 nach E 6548.H //EB
|
||
;%V 05.12.95 TT V1.16 1429554, 1429559 1429560 DM5212L2 Alpina hinzu
|
||
;%V 06.12.95 gh V1.16 'comment: DM17_2L1, DM5212L2;' eingetragen
|
||
;%V 16.02.96 We V1.17 { "1429633", "DM5212L3" } //Programmstand 14 3/96 Serie
|
||
;%V 16.02.96 We V1.18 { "4341013", "DM5212L3" } //Programmstand 14 Vorserie
|
||
;%V 08.08.96 We V1.19 Eigene SGBD fuer Alpina B12 DM5212L0
|
||
;%V 09.12.96 We V1.20 Erweiterung SG-Parameter Nr. 9
|
||
;%V 12.02.04 MP V1.21 <20>nderung des Origin
|
||
;%V 15.12.10 rd V1.22 1740208 DM5212L1 auf DM5212L2 ge<67>ndert
|
||
;%V V1.22 Im Auftrag von VH-55 Steffen Frank
|
||
;%V ********************************************************************
|
||
*/
|
||
|
||
/* ****************************************************************** *
|
||
* ************************ SG - PARAMETER ************************** *
|
||
* ****************************************************************** *
|
||
|
||
;%I Fuer die Kommunikation notwendige Parameter.
|
||
;%I
|
||
;%I PARAMETER HIER
|
||
;%I * Konzept 2
|
||
;%I BMW-Konzept 1 / DS1 1
|
||
;%I BMW-Konzept 2 ISO 9141 2
|
||
;%I BMW-Konzept IHK 3
|
||
;%I BMW-Konzept 2 DDE 4
|
||
;%I BMW-Konzept DS2 6
|
||
;%I * Baudrate 0
|
||
;%I * Reizadresse $14
|
||
;%I * Wakeup-Zeit in ms 0
|
||
;%I 0, wenn kein Wakeup
|
||
;%I * Idle-Zeit in ms 0
|
||
;%I * Timeout-Zeit 2000
|
||
;%I In dieser Zeit muss SG antworten
|
||
;%I * Regenerations-Zeit 500
|
||
;%I Zeit zwischen den Telegrammen
|
||
;%I PICO: Telegrammende-Zeit 500
|
||
;%I Wartezeit nach dem letzte Byte,
|
||
;%I nach der auf Telegrammende
|
||
;%I entschieden wird
|
||
* .................................................................. */
|
||
|
||
int parameter[] = {2,0,0x14,0,0,2000,100,20,0};
|
||
int awlen[] = {1,0};
|
||
|
||
|
||
/* ****************************************************************** */
|
||
/* ************************ SG - TELEGRAMME ************************* */
|
||
/* ****************************************************************** */
|
||
|
||
/* ****************************************************************** */
|
||
/* ************************ SG - TABELLEN *************************** */
|
||
/* ****************************************************************** */
|
||
|
||
table HW_Tabelle[2][] =
|
||
{
|
||
{"HARDWARENR", "VARIANTE"},
|
||
|
||
// DME M 1.7 12-Zyl M70
|
||
|
||
{"1731991", "DME17_2R"},
|
||
{"1731823", "DME17_2R"},
|
||
{"1733300", "DME17_2R"},
|
||
{"1733404", "DME17_2R"},
|
||
{"1736370", "DME17_2R"},
|
||
{"1736376", "DME17_2R"},
|
||
{"1736586", "DME17_2R"},
|
||
{"1736587", "DME17_2R"},
|
||
{"1736635", "DME17_2R"},
|
||
{"1736636", "DME17_2R"},
|
||
{"1736637", "DME17_2R"},
|
||
{"1736638", "DME17_2R"},
|
||
{"1738703", "DME17_2R"},
|
||
{"1738706", "DME17_2R"},
|
||
{"1401125", "DME17_2R"}, // 850CSi
|
||
{"1403611", "DME17_2R"}, // 850CSi US/CH/A
|
||
{"1740341", "DME5212L"}, // E38M73
|
||
{"1740208", "DM5212L2"}, // E38M73 Serie PU
|
||
{"4380542", "DM5212L2"}, // E38M73 EWS Versuch
|
||
{"1744697", "DM5212L2"}, // E38M73 EWS Serie
|
||
{"1427684", "DM5212L2"}, // E38/E31 Bezugsmarkengeber
|
||
{"1404738", "DM17_2L1"}, // M70 850 CSI mit EWS
|
||
{"1429554", "DM5212L0"}, //DME E38 EWS 2 Alpina
|
||
{"1429559", "DM5212L0"}, //DME E38 EWS 2 Alpina
|
||
{"1429560", "DM5212L0"}, //DME E38 EWS 2 Alpina
|
||
{"1429633", "DM5212L3"}, //Programmstand 14 3/96 Serie
|
||
{"4341013", "DM5212R3"} //Programmstand 14 Vorserie
|
||
|
||
};
|
||
|
||
/* ****************************************************************** */
|
||
/* ************************ SG - JOBS ******************************* */
|
||
/* ****************************************************************** */
|
||
|
||
/* JOB ************************************************************** *
|
||
|
||
;%N Jobname : INITIALISIERUNG
|
||
;%J Parameter : keine
|
||
;%J Ergebnis : DONE
|
||
;%J Werte : 0 : Fehler bei der Initialisierung
|
||
;%J Werte : 1 : Initialisierung erfolgreich durchgefuehrt
|
||
;%J
|
||
;%I Zweck : Dieser Job wird vom EDIABAS automatisch beim erstem
|
||
;%I Zugriff auf eine SGBD aufgerufen. Bei weitern Zugriffen
|
||
;%I auf die selbe SGBD wird dieser Job nicht mehr aufgerufen.
|
||
;%I In der INITIALISIERUNG werden alle Funktionen aufgerufen,
|
||
;%I die nur einmal, vor der Kommunikation mit einem SG
|
||
;%I notwendig sind.
|
||
;%I
|
||
;%I Hier : 1. Verbindung zum Interface aufbauen
|
||
;%I 2. Setzen des Wiederholungszaehlers fuer Fehler (gleich 2)
|
||
;%I 3. Setzen der SG-Kommunikationsparameter
|
||
;%I
|
||
;%E Auftraggeber : TP-42
|
||
;%E Autor : Roland Taubert
|
||
;%E Entwicklungsstand : fertig
|
||
;%E Teststand : SIMED
|
||
;%E Freigabeverantw. :
|
||
;%E Freigabedatum :
|
||
;%E History : Erstellung
|
||
;%E
|
||
|
||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||
|
||
job( name : INITIALISIERUNG;
|
||
comment : Einstellen der Kommunikationsparameter;
|
||
result : DONE;
|
||
type : int;
|
||
defrslt : ;
|
||
comment : 1, wenn i.O.;
|
||
) {
|
||
/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
|
||
|
||
|
||
open_communication();
|
||
stop_frequent();
|
||
set_repeat_counter(2);
|
||
set_communication_pars(parameter);
|
||
DONE = 1;
|
||
}
|
||
|
||
|
||
/* JOB ************************************************************** *
|
||
|
||
;%N Jobname : IDENTIFIKATION
|
||
;%J Parameter : keine
|
||
;%J Ergebnis : VARIANTE
|
||
;%J Werte : Name der Varianten SGBD
|
||
;%J
|
||
;%I Zweck : Mit Hilfe dieses Jobs wird die Steuergeraete-Variante aus
|
||
;%I einer Steuergeraete-Gruppe (Datei: *.grp) festgestellt.
|
||
;%I Dieser Job ist zwingender Bestandteil der zugehoerigen
|
||
;%I Gruppen-Datei.
|
||
;%I
|
||
;%I z.B.: Familie: DME;
|
||
;%I Variante: DME M 1.7 12-Zyl M70;
|
||
;%I
|
||
;%I Hier wird das 2. SG von 12-Zylindermotoren identifiziert.
|
||
;%I
|
||
;%I Antwort der DME's auf Keybytes lesen (im S0 Register):
|
||
;%I (bei "Keybytes lesen" kommen die Bloecke mit ETX am Ende)
|
||
;%I
|
||
;%I Block Daten
|
||
;%I Bosch: 0 - 3 ( 0 - 1): Keybytes
|
||
;%I 4 - 17 ( 7 - 16): HW-Nr. Zulieferer
|
||
;%I 18 - 31 (21 - 30): SW-Nr. Zulieferer
|
||
;%I 32 - 42 (35 - 41): BMW-Teilenummer
|
||
;%I 43 - 49 (46 - 48): BMW-Softwarenummer
|
||
;%I 50 - 56 (53 - 55): Fertigungsdatum
|
||
;%I
|
||
;%I Siemens: 0 - 3 ( 0 - 1): Keybytes
|
||
;%I 4 - 18 ( 7 - 17): HW-Nr. Zulieferer
|
||
;%I 19 - 33 (22 - 32): SW-Nr. Zulieferer
|
||
;%I 34 - 47 (37 - 46): Generationsnummer
|
||
;%I 48 - 58 (51 - 57): laufende Nummer
|
||
;%I 59 - 66 (62 - 65): Fertigungsdatum
|
||
;%I 67 - 77 (70 - 76): BMW-Teilenummer
|
||
;%I
|
||
;%E Auftraggeber : TP-42
|
||
;%E Autor : Roland Taubert
|
||
;%E Entwicklungsstand : fertig
|
||
;%E Teststand : SIMED
|
||
;%E Freigabeverantw. :
|
||
;%E Freigabedatum :
|
||
;%E History : Erstellung
|
||
;%E
|
||
|
||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||
|
||
job( name : IDENTIFIKATION;
|
||
comment : Ermittlung der SG Variante;
|
||
comment : Zur Gruppe gehoerende Varianten:;
|
||
comment : DME17_2R : Konzept 2 (Keyb. xx xx);
|
||
result : VARIANTE;
|
||
type : string;
|
||
defrslt : ;
|
||
comment : Der zurueckgelieferte Name entspricht dem Namen der;
|
||
comment : Datei fuer die Varianten-SGBD;
|
||
|
||
) {
|
||
/* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
|
||
|
||
unsigned char answer[]; /* SG-Antwort */
|
||
char hwNummer[];
|
||
char variante[];
|
||
|
||
recv_keybytes(answer);
|
||
|
||
if (answer[6] == 0xf6)
|
||
{
|
||
tabset("HW_Tabelle");
|
||
|
||
datacopy(hwNummer, answer, 35, 7);
|
||
datarevers(hwNummer);
|
||
|
||
if (tabseek("HARDWARENR",hwNummer))
|
||
{
|
||
tabget(variante,"VARIANTE");
|
||
|
||
VARIANTE = variante;
|
||
return;
|
||
}
|
||
} // If answer
|
||
}
|
||
|
||
/* ****************************************************************** */
|