BESTUSER
BESTUSER
E D IA B A S
Elektronik Diagnose Basissystem
BEST BENUTZERHANDBUCH
VERSION 7
[Link]
EDIABAS — BEST BENUTZERHANDBUCH
INHALT
INHALT ............................................................................................................ 2
1. Änderungshistorie................................................................................. 7
2. Einführung.............................................................................................. 8
2.1. Über diese Dokumentation............................................................. 8
2.2. Konventionen ................................................................................. 8
2.3. Besonderheiten, Begriffe, Akronyme.............................................. 9
2.4. Warenzeichen ................................................................................ 9
3. Allgemeines............................................................................................ 10
3.1. Jobkonzept ..................................................................................... 10
3.2. Beschreibungsdateien.................................................................... 10
3.2.1. Gruppenbeschreibungsdateien .......................................... 10
3.2.2. Variantenbeschreibungsdateien......................................... 11
3.2.3. Basisbeschreibungsdateien ............................................... 11
[Link]. Zugriff auf Jobs in einer Basis-SGBD ...................... 11
[Link]. "Überladen" eines Jobs aus der Basis-SGBD ......... 13
3.3. Standardjobs .................................................................................. 13
3.3.1. Standardjob INITIALISIERUNG.......................................... 15
3.3.2. Standardjob IDENTIFIKATION ........................................... 17
3.3.3. Standardjob ENDE ............................................................. 17
3.4. Variantenermittlung ........................................................................ 17
3.5. Dateinamen .................................................................................... 19
4. Tutorial ................................................................................................... 20
4.1. Vorbedingungen............................................................................. 20
4.2. Wie fange ich an? .......................................................................... 21
4.3. Schritt 1: Der Rahmen.................................................................... 22
4.4. Schritt 2: Mindestversion................................................................ 24
4.5. Schritt 3: Steuergeräteparameter ................................................... 26
2
EDIABAS — BEST BENUTZERHANDBUCH
5. BEST-Tools ............................................................................................ 40
5.1. BEST2WIN..................................................................................... 40
5.2. BestBoard....................................................................................... 42
5.2.1. Allgemeines........................................................................ 42
5.2.2. Menüübersicht.................................................................... 43
5.2.3. Toolbar ............................................................................... 45
5.2.4. Anwendungsprogramme..................................................... 45
5.2.5. Entwicklung einer Beschreibungsdatei mit BestBoard ....... 46
5.3. BestView ........................................................................................ 47
5.3.1. Allgemeines........................................................................ 47
5.3.2. Benutzeroberfläche ............................................................ 48
[Link]. Toolbar 48
[Link]. Statuszeile ............................................................... 49
[Link]. Project-Fenster ........................................................ 49
[Link]. Quellcode-Fenster ................................................... 50
[Link]. Watch-Fenster ......................................................... 50
[Link]. Results-Fenster ....................................................... 50
[Link]. IFH-Trace-Fenster ................................................... 50
5.3.3. Auswahl einer Beschreibungsdatei .................................... 50
5.3.4. Aktualisieren einer Beschreibungsdatei ............................. 52
5.3.5. Selektieren eines Jobs ....................................................... 53
5.3.6. Setzen von Breakpoints ..................................................... 55
5.3.7. Anzeigen und Verändern von Variablen............................. 56
3
EDIABAS — BEST BENUTZERHANDBUCH
B. LITERATURVERZEICHNIS .................................................................... 67
C. INDEX...................................................................................................... 68
4
EDIABAS — BEST BENUTZERHANDBUCH
1. Änderungshistorie
5
EDIABAS — BEST BENUTZERHANDBUCH
2. Einführung
2.2. Konventionen
Beispiel Beschreibung
SAMPLE.B2V Großschrift kennzeichnet Dateinamen, Register und
Betriebssystemkommandos.
job, string, Fettschrift kennzeichnet Schlüsselwörter und
while Operatoren der Sprachen BEST/2 und BEST/1
sowie der API-Funktionen.
In Beschreibungen der Syntax müssen diese Wörter
wie angegeben geschrieben werden.
ausdruck Kursivschrift kennzeichnet Platzhalter für vom
Programmierer einzutragende Werte, wie z.B.
Dateinamen.
[option] Wörter in eckigen Klammern bedeuten optionale
Angaben.
{ result | Geschweifte Klammern und senkrechte Striche
argument } kennzeichnen Eingaben, von denen jeweils eine
gewählt werden muß, außer wenn sie in eckigen
Klammern steht.
[constant...] job... Drei Punkte, die direkt einem Ausdruck folgen,
kennzeichnen, daß mehrere Ausdrücke der selben
Form folgen können.
6
EDIABAS — BEST BENUTZERHANDBUCH
2.4. Warenzeichen
Microsoft, MS, MS-DOS, Windows und WIN32 sind registrierte Warenzeichen der
Microsoft Corporation.
7
EDIABAS — BEST BENUTZERHANDBUCH
3. Allgemeines
3.1. Jobkonzept
Diese Methoden heißen innerhalb von EDIABAS Jobs und werden normalerweise in
BEST/2 formuliert. Die Syntax von BEST/2 ist an die Sprache C angelehnt, jedoch
an die spezifischen Bedürfnisse der Steuergerätebeschreibung angepasst. Eine
genaue Beschreibung der BEST/2 Syntax befindet sich in [5]. Insbesondere mußten
die Jobs als eine spezielle Art von Funktionen aufgenommen werden. Desweiteren
ist der Umgang mit Feldern vereinfacht worden, um eine einfachere Handhabung
komplexer Telegrammdaten zu ermöglichen. Im Gegensatz zu C können keine
Funktionen vom Benutzer selbst definiert werden. Es ist jedoch eine für die
Diagnoseproblematik optimierte Laufzeitbibliothek (siehe [1]) vorhanden, die
Funktionen für alle Probleme bereitstellt.
Ein Job darf jederzeit unabhängig von anderen Jobs aufgerufen werden, das heißt
Jobs dürfen nicht zeitlich voneinander abhängig sein. Um dies zu unterbinden gibt
es in BEST/2 keinerlei Konstrukte, die einen Datenaustausch zwischen Jobs
zulassen. Lediglich Konstanten dürfen global sein.
3.2. Beschreibungsdateien
Es gibt drei Arten von SGBDen, die Varianten-, die Basis- und die
Gruppenbeschreibungsdateien (eine Erläuterung der Begriffe Steuergerätevariante
und Steuergerätegruppe befindet sich in [4]).
3.2.1. Gruppenbeschreibungsdateien
Die Gruppenbeschreibungsdatei enthält neben den Jobs INITIALISIERUNG und
ENDE (optional) nur den Job IDENTIFIKATION, der die aktuell im Fahrzeug
verbaute Variante ermittelt. Jobs in einer Gruppenbeschreibungsdatei können nicht
mit einem API-Auftrag aufgerufen werden.
8
EDIABAS — BEST BENUTZERHANDBUCH
3.2.2. Variantenbeschreibungsdateien
Die Variantenbeschreibungsdateien enthalten neben den Jobs INITIALISIERUNG
und ENDE (optional) die eigentlichen Jobs zur Ermittlung von Daten aus dem
Steuergerät.
3.2.3. Basisbeschreibungsdateien
Jobs, die für mehrere Steuergeräte gleich sind, liegen in gemeinsam genutzten
Basis-SGBDen. SG-spezifische Jobs dagegen in der jeweiligen Varianten-SGBD.
Beispiele:
Das folgende Beispiel zeigt den Header einer Varianten-SGBD mit dem Namen
[Link]. Jobs, die in dieser SGBD nicht gefunden werden, sollen in den
Basis-SGBDen BASIS1, BASIS2 und BASIS3 gesucht werden. Dies wird in der Zeile
uses definiert.
/////////////////////////////////////////////////////////////
// H E A D E R
/////////////////////////////////////////////////////////////
9
EDIABAS — BEST BENUTZERHANDBUCH
author : [Link];
language: Deutsch;
uses : BASIS1, BASIS2, BASIS3;
comment : Beispiel fuer die Anwendung von Basis-SGBDen;
/////////////////////////////////////////////////////////////
Es muß für jede SG-Variante eine Varianten-SGBD existieren, die im Extremfall nur
aus dem Header und den Jobs INITIALISIERUNG und ENDE (optional) besteht.
Beim Zugriff auf eine Basis-SGBD werden die Standardjobs INITIALISIERUNG und
ENDE der Basis-SGBD nicht aufgerufen (die Standardjobs INITIALISIERUNG und
ENDE werden in einer Basis-SGBD nicht benötigt).
10
EDIABAS — BEST BENUTZERHANDBUCH
D_XY.GRP
Gruppen-SGBD VARIANTE= ...
3.3. Standardjobs
Standardjobs sind Jobs, die für EDIABAS eine besondere Bedeutung haben. Diese
Jobs werden unter bestimmtien Bedingungen zusätzlich zum im Auftrag
11
EDIABAS — BEST BENUTZERHANDBUCH
Ein Auftrag, der über eine Variante abgesetzt wird, wird wie folgt abgearbeitet:
12
EDIABAS — BEST BENUTZERHANDBUCH
Ein Auftrag, der über eine Gruppe abgesetzt wird, wird wie folgt abgearbeitet:
13
EDIABAS — BEST BENUTZERHANDBUCH
Die erfolgreiche Initialisierung ist mit dem Standardergebnis DONE (Ergebnistyp int
oder unsigned int) im ersten Ergebnissatz anzuzeigen:
14
EDIABAS — BEST BENUTZERHANDBUCH
3.4. Variantenermittlung
15
EDIABAS — BEST BENUTZERHANDBUCH
Ein Auftrag, der über eine Gruppe abgesetzt wird, wird wie folgt abgearbeitet:
Anwendungprogramm EDIABAS
ruft auf selektiert SGBD: bearbeitet Job:
apiInit()
apiJob(GRUPPE,JOB1,...)
[Link] INITIALISERUNG
IDENTIFIKATION (der
Variante)
ENDE
[Link] INITIALISIERUNG
JOB1
16
EDIABAS — BEST BENUTZERHANDBUCH
3.5. Dateinamen
17
EDIABAS — BEST BENUTZERHANDBUCH
4. Tutorial
In diesem Tutorial soll Ihnen anhand eines möglichst realistischen Beispiels die
Erstellung einer BEST/2 Beschreibungsdatei erläutert werden. Es wird versucht, auf
möglichst alle Aspekte der Programmierung einzugehen. Desweiteren wird im Laufe
der Erläuterungen immer wieder die Bedienung der Entwicklungswerkzeuge mit
einbezogen.
Für die erste Methode wird immer angegeben, welche Datei für das Kapitel zu laden
ist. Für die zweite Methode werden alle Änderungen in dieser Dokumentation
aufgelistet und folgendermaßen dargestellt:
® // Diese Zeile muß gegenüber der vorherigen Version hinzugefügt werden.
¬ // Diese Zeile muß gegenüber der vorherigen Version entfernt werden.
« // Diese Zeile muß gegenüber der vorherigen Version ausgetauscht werden.
4.1. Vorbedingungen
Für dieses Tutorial wird eine Entwicklung der Beschreibungsdateien unter MS-
WINDOWS vorausgesetzt, da nur dort eine integrierte Entwicklungsumgebung
(BestBoard) und ein Source Level Debugger (BestView) zur Verfügung stehen.
EcuPath = C:\EDIABAS\TUTORIAL
TracePath = C:\EDIABAS\TUTORIAL
SimulationPath = C:\EDIABAS\TUTORIAL
Simulation = 1
18
EDIABAS — BEST BENUTZERHANDBUCH
Nach Quittierung dieser Meldung sehen Sie das Hauptfenster von BestBoard. Aus
diesem Programm heraus lassen sich alle zur Erstellung und zum Test einer SGBD
notwendigen Aktionen steuern.
19
EDIABAS — BEST BENUTZERHANDBUCH
Um die Rohversion unserer SGBD zu öffnen wählen Sie das Menü FILE/OPEN oder
drücken Sie den dazugehörigen Button (2. von links, siehe auch Beschreibung von
BestBoard).
Ist die Datei geöffnet worden, so wird automatisch der Texteditor [Link]
aufgerufen, in dem die gewählte Datei angezeigt wird, in diesem Fall die Datei
DEMO0.B2V (Die in dieser Datei vorhandene Copyright Meldung wird in diesem
Dokument nicht abgedruckt). Diese Datei enthält einen leeren, aber bereits mit
Kommentaren versehenen Rahmen für eine SGBD:
////////////////////////////////////////////////////////////////////////
// H E A D E R
////////////////////////////////////////////////////////////////////////
ecu : ;
origin : ;
revision: ;
author : ;
comment : ;
////////////////////////////////////////////////////////////////////////
// K O N S T A N T E N
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
// J O B S
////////////////////////////////////////////////////////////////////////
20
EDIABAS — BEST BENUTZERHANDBUCH
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
Die Datei enthält einen Header, der allerdings noch ausgefüllt werden muß, und
zwei Jobs. Es handelt sich um die StandardJobs INITIALISIERUNG und ENDE.
Diese Standardaufträge werden vom Laufzeitsystem automatisch aufgerufen, wenn
eine Beschreibungsdatei geladen (INITIALISIERUNG) bzw. wieder entladen (ENDE)
wird.
Wie man erkennt, ist im Header eines Jobs dessen Name und mindestens eine
Kommentarzeile abgelegt. Ferner werden dort alle Parameter und Ergebnisse dieses
Jobs aufgelistet und kommentiert. Diese Header werden beim Übersetzten mit in die
Objekte übernommen und können mit Hilfe des XTRACT Tools aus diesem
ausgelesen werden. Der Header besteht aus n Einträgen der Form: "keyword : data
;". Hier nun die Beschreibung der Schlüsselwörter:
21
EDIABAS — BEST BENUTZERHANDBUCH
Im Job INITIALISIERUNG wird dem Ergebnis DONE der Wert 1 zugewiesen. Dieses
Ergebnis muß in diesem Job vorhanden sein. Es teilt dem Laufzeitsystem mit, ob der
Job erfolgreich beendet wurde oder nicht.
Um mit dem nächsten Punkt fortzufahren öffnen Sie jetzt die Datei
C:\EDIABAS\TUTORIAL\DEMO1.B2V .
Die jetzt geöffnete Datei ist jetzt bereits übersetzbar. Sie versucht eine Verbindung
zum Interface aufzubauen. Dazu mußten folgende Zeilen eingefügt bzw. abgeändert
werden:
////////////////////////////////////////////////////////////////////////
// H E A D E R
////////////////////////////////////////////////////////////////////////
« ecu : EDIABAS BEST/2 Demo Steuergeraet;
« origin : [Link];
« revision: 1.1;
« author : [Link];
« comment : Demonstrationsdatei fuer EDIABAS BEST/2;
...
job( name : INITIALISIERUNG;
comment : Initialisierung;
comment : Dieser Job wird vom EDIABAS automatisch beim ersten;
comment : Zugriff auf eine SGBD aufgerufen. Bei weiteren Zugriffen;
comment : auf dieselbe SGBD wird dieser Job nicht mehr aufgerufen;
comment : in der INITIALISIERUNG werden alle Funktionen aufgerufen;
comment : die nur einmal, vor der Kommunikation mit einem SG;
comment : notwendig sind.;
result : DONE;
type : int;
defrslt : ;
comment : Werte: 0 = Fehler bei der Initialisierung;
comment : Werte: 1 = Initialisierung erfolgreich durchgefuehrt;
)
{
® open_communication(); // Verbindung zum Interface aufbauen
22
EDIABAS — BEST BENUTZERHANDBUCH
DONE = 1;
...
job( name : ENDE;
comment : Deinitialisierung;
comment : Dieser Job wird vom EDIABAS automatisch nach dem letzten;
comment : Zugriff auf diese SGBD aufgerufen. Er dient zu einer;
comment : evtl. Deinitialisierung der Interfacehardware;
)
{
® open_communication(); // Verbindung zum Interface aufbauen
Da diese SGBD mit einem Steuergerät , das heißt eigentlich mit dem
dazwischengeschalteten Interface, kommunizieren will, muß in den Jobs
INITIALISIERUNG und ENDE die Funktion open_communication aufgerufen
werden. Diese Funktion versucht, einen Kommunikationskanal zum Interface zu
öffnen. Eine spezielle Fehlerbehandlung ist nicht nötig. Tritt bei diesem
Funktionsaufruf ein Fehler auf, so wird die Bearbeitung des Jobs an dieser Stelle
abgebrochen und dem Anwendungsprogramm eine entsprechende Fehlermeldung
übergeben. Dies gilt für alle Kommunikationsfunktionen.
23
EDIABAS — BEST BENUTZERHANDBUCH
Die jetzt geöffnete Datei soll jetzt auch das Hardwareinterface für die Kommunikation
mit dem Steuergerät vorbereiten. Dazu werden zuerst die Konstanten für die
Parameter und Telegramme definiert:
/////////////////////////////////////////////////////////////////////
// K O N S T A N T E N
/////////////////////////////////////////////////////////////////////
® // *** SG - PARAMETER ***
® //
® // Konzept 1
® // Baudrate 9600
® // Reizadresse 0xaa
® // Wakeup-Zeit 0 ms
® // Idle-Zeit 0 ms
® // Timeout-Zeit 2000 ms
® // Regenerations-Zeit 500 ms
® // Antwortlaenge -2 ([Link] im Antworttelegram)
® // Controlbyte 3 ([Link] im Antworttelegram)
® // 0x80: [Link] im Sendtelegram ist damit zu verknuepfen,
® // um gueltiges drittes Antwortbyte darzustellen
® //
® int PARAMETER[] = {1,9600,0xaa,0,0,2000,500};
® int AWLEN[] = {-2,0};
® int CTRLPOS = 3;
® int CTRLOR = 0x80;
®
® // *** SG - TELEGRAMME ***
® //
® char TEL_ID_READ[] = { 0xAA,0x00,0x04,0x01 };
® char TEL_TC_READ[] = { 0xAA,0x00,0x04,0x02 };
® char TEL_TC_CLEAR[] = { 0xAA,0x00,0x04,0x03 };
® char TEL_RPM_READ[] = { 0xAA,0x00,0x05,0x04,0x01 };
® char TEL_TEMP_READ[] = { 0xAA,0x00,0x05,0x04,0x02 };
® char TEL_VOLT_READ[] = { 0xAA,0x00,0x05,0x04,0x03 };
® char TEL_PARAM_SET[] = { 0xAA,0x00,0x05,0x05,0xFF };
® char TEL_END_DIAG[] = { 0xAA,0x00,0x04,0x0F };
Die Parameter defininieren, wie das Interface die Telegramme auf dem Diagnosebus
abarbeiten soll. Eine Erklärung der einzelnen Parameter befindet sich im Kommentar
vor der Definition der Parameterfelder.
CTRLPOS und CTRLOR sind Konstanten, die man immer wieder in dieser SGBD
braucht, deshalb werden sie hier am Beginn der Datei definiert, um die Datei leichter
lesbar zu machen.
24
EDIABAS — BEST BENUTZERHANDBUCH
Die Datei DEMO3.B2V kann bereits mit dem Steuergerät kommunizieren. Um dies
sinnvoll zu ermöglichen werden am Ende der SGBD zwei Jobs angehängt:
® ////////////////////////////////////////////////////////////////////////
®
® job( name : READ_IDENT;
® comment : Auslesen der Identifikationsdaten;
® result : IDENT_STRING;
® type : string;
® defrslt : ;
® comment : String der das SG identifiziert;
® result : IDENT_VERSION;
® type : string;
® defrslt : ;
® comment : SG-Versionsnummer (1.1);
® )
® {
® unsigned char antwort[];
® IDENT_STRING="*****";
® IDENT_VERSION="*****";
®
® send_and_receive(antwort,TEL_ID_READ);
®
® }
25
EDIABAS — BEST BENUTZERHANDBUCH
®
® ////////////////////////////////////////////////////////////////////////
®
® job( name : CLEAR_TC;
® comment : Loeschen des Fehlerspeichers;
® result : STATUS;
® type : string;
® defrslt : ;
® comment : Text: "Fehlerspeicher (NICHT) gelöscht";
® )
® {
®
® unsigned char antwort[];
® unsigned char statusText[];
®
® send_and_receive(antwort,TEL_TC_CLEAR);
® }
®
® ////////////////////////////////////////////////////////////////////////
Der Job READ_IDENT soll zum Auslesen der Identifiaktionsdaten dienen. Er liefert
diese Identifikationsdaten in Form von zwei Textergebnissen, IDENT_STRING und
IDENT_VERSION an das aufrufende Anwendungsprogramm zurück. Diese
Ergebnisse werden im Job mit den Werten "*****" vorbelegt. Für die Aufnahme
der Steuergeräteantwort wird der Puffer antwort[] definiert. Eine Längenangabe
entfällt, in BEST/2 haben alle Felder bis zu 65536 Bytes Länge (abhängig von der
Stringregistergrösse der Beschreibungsdatei). Mit dem Aufruf der Funktion
send_and_receive wird das vordefinierte TEL_ID_READ an das Steuergerät
abgeschickt und die Antwort im Feld antwort erwartet.
Der Job CLEAR_TC soll den Fehlerspeicher im Steuergerät löschen. Dazu schickt er
das Telegramm TEL_TC_CLEAR an das Steuergerät. Die Antwort darauf wird im
lokal definierten Puffer antwort erwartet. Zusätzlich dazu wird noch das Feld
statusText definiert, in dem der Ergebnistext für das Ergebnis STATUS erzeugt
werden soll.
26
EDIABAS — BEST BENUTZERHANDBUCH
Um die bisherigen Änderungen zu testen überstetzt man jetzt die SGBD. Die 2
Warnungen die ausgegeben werden, können ignoriert werden. Sie zeigen an, daß
im Job CLEAR_TC die Variable statusText und das Ergebnis STATUS nicht
benutzt wurden. Ist der Übersetzungslauf fehlerfrei, kann die Beschreibungsdatei mit
dem Debugger getestet werden. Dazu startet man den Debugger BestView mit dem
Menü PROJECT/DEBUG oder dem 5. Button von links.
Ist der Debugger gestartet, befindet man sich sofort in der Jobauswahl. Für den
ersten Versuch wählen Sie den Job READ_IDENT. Drücken Sie OK um Ihre Auswahl
zu bestätigen. Im Fenster sieht man den Quellcode der SGBD. Blättern Sie nach
unten bis zur Zeile 109 und setzen Sie den Cursor darauf. Mit der Taste F9
(DEBUG/TOGGLE BREAKPOINT) können Sie in dieser Zeile einen Breakpoint
setzen, d.h. die Bearbeitung des Jobs wird dort unterbrochen. Die Taste F5
(RUN/GO) startet den ausgewählten Job. Ein Fenster mit einem Zähler zeigt die
Anzahl der abgearbeiteten internen Abarbeitungszyklen an. Ist die Bearbeitung an
der Zeile 109 angelangt, so wird die Bearbeitung unterbochen und die aktuelle Zeile
markiert. Diese Zeile ist noch nicht bearbeitet worden. Mit der Taste F8 (RUN/STEP)
können Sie die Bearbeitung jetzt zeilenweise fortsetzten. Der Debugger ermöglicht
Ihnen während der zeilenweisen Abarbeitung oder nach dem Erreichen eines
Breakpoints die Anzeige von Variablen und Ergebnisinhalten. Eine näherere
Beschreibung finden Sie in der Online-Hilfe von BestView (HELP/CONTENTS).
Um den Job ohne Unterbrechung zum Ende durchlaufen zu lassen betätigen Sie
einfach wieder die Taste F5 (RUN/GO). Ist der Job vollständig abgearbeitet worden,
so erscheint ein Fenster mit den vom Job ermittelten Ergebnissen in diesem Fall
sollte es folgendes enthalten:
VARIANTE = [Link]
OBJECT = DEMO3
SETS = 1
UBATTCURRENT = UNKNOWN UBATTHISTORY = UNKNOWN
IGNITIONCURRENT = UNKNOWN IGNITIONHISTORY = UNKNOWN
JOB STATUS =
Der beschriebene Vorgang kann beliebig oft mit diesem oder einem anderen Job
wiederholt werden.
27
EDIABAS — BEST BENUTZERHANDBUCH
IDENT_STRING="*****";
IDENT_VERSION="*****";
send_and_receive(antwort,TEL_ID_READ);
® // Gueltige Antwort ?
® if (antwort[CTRLPOS]==TEL_ID_READ[CTRLPOS]|CTRLOR) {
®
® // Make IDENT_STRING
® datacopy(idString,antwort,4,13);
® strrevers(idString);
® IDENT_STRING=idString;
®
® // Make IDENT_VERSION
® dataclear(idString);
® bcd2ascii(verString,antwort,17,1);
® strcpy(idString,verString);
® strcat(idString,".");
® bcd2ascii(verString,antwort,18,1);
® strcat(idString,verString);
® IDENT_VERSION=idString;
® }
}
Zur Berechnung der Textergebnisse werden die Puffer idString und verString
definiert. Nach Prüfung des Kontrollbytes im Antworttelegramm werden ab der 4.
Stelle 13 Zeichen aus dem Telegramm herauskopiert. Damit das Ergebnis richtig
dargestellt wird, muß der String noch mit der Funktion strrevers umgedreht werden.
28
EDIABAS — BEST BENUTZERHANDBUCH
® statusText="Fehlerspeicher ";
send_and_receive(antwort,TEL_TC_CLEAR);
® // Gueltige Antwort ?
® if (antwort[CTRLPOS]!=(TEL_TC_CLEAR[CTRLPOS]|CTRLOR))
® strcat(statusText,"NICHT ");
®
® strcat(statusText,"geloescht");
® STATUS=statusText;
}
Übersetzt man die jetzt erstellte Datei und startet wie im vorhergehenden Kapitel
den Debugger, so bekommt man nach Abarbeitung des Jobs READ_IDENT jetzt
folgende Ausgabe im Fenster Results zu sehen:
VARIANTE = [Link]
OBJECT = DEMO4
SETS = 1
UBATTCURRENT = UNKNOWN UBATTHISTORY = UNKNOWN
IGNITIONCURRENT = UNKNOWN IGNITIONHISTORY = UNKNOWN
JOB STATUS =
Diese Version soll den Fehlerspeicher des Steuergeräts auslesen und auswerten.
Dazu wird die SGBD um den Job READ_TC erweitert:
® job( name : READ_TC;
® comment : Auslesen des Fehlerspeichers;
® result : TC_NR;
® type : int;
® defrslt : ;
® comment : Nr des Fehlers;
® )
® {
® unsigned char antwort[];
® int count;
®
® send_and_receive(antwort,TEL_TC_READ);
®
29
EDIABAS — BEST BENUTZERHANDBUCH
® // Gueltige Antwort ?
® if (antwort[CTRLPOS]==TEL_TC_READ[CTRLPOS]|CTRLOR) {
®
® count=256*antwort[1]+antwort[2]-4; // Anzahl der Fehler berechnen.
®
® while(count--) { // Fuer alle Fehler
® TC_NR=antwort[4+count]; // Ergebnis Fehlernummer zuweisen
® new_set_of_results(); // Neuen Ergebnissatz beginnen
® }
® }
® }
Dieser Job liefert das Ergebnis TC_NR, das einfach den gespeicherten Fehlercode
abbildet, für alle vom Steuergerät gemeldeten Fehler zurück. Um dies zu
ermöglichen wird dasselbe Ergebnis in mehreren Ergebnissätzen abgelegt. In der
Schleife, die über alle Fehler läuft, wird nach der Zuweisung des Ergebniswerts
immer wieder der Beginn eines neuen Satzes markiert. Alle Ergebnisse, die danach
zugewiesen werden, werden in diesem neuen Satz abgelegt. Die Ergebnisse in den
vorhergehenden Sätzen werden nicht mehr verändert.
Dieser Job liefert folgende Ergebnisse zurück, wenn er nach oben beschriebenen
Muster im Debugger abgearbeitet wird:
VARIANTE = [Link]
OBJECT = DEMO5
SETS = 5
UBATTCURRENT = UNKNOWN UBATTHISTORY = UNKNOWN
IGNITIONCURRENT = UNKNOWN IGNITIONHISTORY = UNKNOWN
JOB STATUS =
Es werden fünf Ergebnissätze angelegt, die alle das gleiche Ergebnis, jedoch mit
verschiedenen Werten, beinhalten.
30
EDIABAS — BEST BENUTZERHANDBUCH
Diese Tabelle hat 2 Spalten und beliebig viele Zeilen. In der ersten Spalte "NR" ist
der Fehlercode im Hexadezimalformat abgelegt, wie es die Funktion
tab_suche_index verlangt. Die 2. Spalte "TEXT" enthält den korrespondierenden
Fehlertext zur entspechenden Fehlernummer. Die letzte Zeile enthält die
Defaultfehlermeldung, die vewendet werden soll, wenn der Fehlercode nicht
gefunden wird.
send_and_receive(antwort,TEL_TC_READ);
// Gueltige Antwort ?
if (antwort[CTRLPOS]==TEL_TC_READ[CTRLPOS]|CTRLOR) {
31
EDIABAS — BEST BENUTZERHANDBUCH
Um mit dem nächsten Punkt fortzufahren müssen Sie jetzt die Datei
C:\EDIABAS\TUTORIAL\DEMO7.B2V öffnen.
32
EDIABAS — BEST BENUTZERHANDBUCH
In dieser Version unserer SGBD wird ein Job hinzugefügt, der das Auslesen von drei
Statuswerten aus dem Steuergerät ermöglicht. Das Anwendungsprogramm kann hier
bestimmen, welche Ergebnisse berechnet werden sollen, und welche nicht. Damit
kann der Jobablauf beschleunigt werden, wenn nur ein Ergebnis benötigt wird. Der
neue Job wird an das Ende der SGBD angehängt:
® /////////////////////////////////////////////////////////////////////
®
® job( name : READ_STATES;
® comment : Auslesen diverser Stati;
® result : ENGINESPEED;
® type : unsigned int;
® defrslt : ;
® comment : Drehzahl in UPM;
® result : TEMPERATURE;
® type : real;
® defrslt : ;
® comment : Temperatur in Grad C;
® result : VOLTAGE;
® type : real;
® defrslt : ;
® comment : Versorgungsspannung in Volt;
® )
® {
®
® unsigned char antwort[]; // Puffer fuer SG-Antwort
® unsigned int tmp; // Hilfsvariable
® real a; // Hilfsvariable
® real b; // Hilfsvariable
®
® if(ENGINESPEED) { //Ergebnis angefordert ?
®
® send_and_receive(antwort,TEL_RPM_READ);
®
® if (antwort[CTRLPOS]==TEL_RPM_READ[CTRLPOS]|CTRLOR) {
® tmp=256*antwort[4]+antwort[5];
® tmp/=4; //adc16/4
® ENGINESPEED=tmp;
® }
® }
® if(TEMPERATURE) { //Ergebnis TEMPERATURE angefordert ?
®
® send_and_receive(antwort,TEL_TEMP_READ);
®
® if (antwort[CTRLPOS]==TEL_TEMP_READ[CTRLPOS]|CTRLOR) {
® tmp=256*antwort[4]+antwort[5];
® itor(a,tmp);
® ator(b,"100.0"); //adc16/100-40
® realdiv(a,b);
® ator(b,"40.0");
® realsub(a,b);
33
EDIABAS — BEST BENUTZERHANDBUCH
® TEMPERATURE=a;
® }
® }
® if(VOLTAGE) { //Ergebnis VOLTAGE angefordert ?
®
® send_and_receive(antwort,TEL_VOLT_READ);
®
® if (antwort[CTRLPOS]==TEL_VOLT_READ[CTRLPOS]|CTRLOR) {
® tmp=256*antwort[4]+antwort[5];
® itor(a,tmp);
® ator(b,"1.238"); //1.238*adc16100/4000
® realmul(a,b);
® ator(b,"4000.0");
® realdiv(a,b);
® VOLTAGE=a;
® }
® }
® }
Das Konstrukt if(ENGINESPEED) liest nicht etwa den Wert des Ergebnisses
ENGINESPEED aus, sondern stellt fest, ob dieses Ergebnis vom
Anwendungsprogramm angefordert wurde (wie das Anwendungprogramm diese
Ergebnisse anfordert, ist in [6] beschrieben). ENGINESPEED liefert TRUE zurück,
wenn das Ergebnis berechnet werden soll, ansonsten FALSE. Sie können dies auch
in BestView testen, der Dialog RUN/JOB enthält ein Feld, in dem die Ergebnisse, die
angefordert werden, eingetragen werden können. Wird nicht eingegeben, so werden
alle Ergebnisse zurückgegeben. Um die Ergebnisse VOLTAGE und ENGINESPEED
anzufordern, geben Sie folgendes in das Feld "Results you want to see:"
voltage;enginespeed
Um mit dem nächsten Punkt fortzufahren müssen Sie jetzt die Datei
C:\EDIABAS\TUTORIAL\DEMO8.B2V öffnen.
34
EDIABAS — BEST BENUTZERHANDBUCH
Die Beschreibungsdatei wird in dieser letzten Version noch um einen Job erweitert,
der einen vom Anwendungprogramm übergebenen Parameter an das Steuergerät
übermittelt. Der Parameter, der übergeben wird, ist ein Byte, das in das Telegramm
zum Steuergerät eingefügt werden soll. Ist der Parameter übergeben worden, so
wird das 5. Byte im Telegramm an das Steuergerät mit seinem Wert überschrieben.
Wenn er nicht angegeben wird, wird das vordefinierte Telegramm benutzt:
® /////////////////////////////////////////////////////////////////////
®
® job( name : SET_PARAM;
® comment : Setzen eines Parameters im SG;
® argument : PARAMETER;
® type : int;
® comment : Wert des zu setzenden Parameters;
® result : STATUS;
® type : string;
® defrslt : ;
® comment : Text: "Parameter (NICHT) gesetzt";
® )
® {
®
® unsigned char antwort[]; // Puffer fuer SG-Antwort
® unsigned char request[]; // Puffer fuer SG_Request
® unsigned char statusText[]; // Puffer fuer Ergebnistext
®
® request=TEL_PARAM_SET; // Request erzeugen
®
® if(exist(PARAMETER)) { // Wenn Parameter vorhanden
® request[4]=PARAMETER; // Reuqest aendern
® }
® send_and_receive(antwort,request);
®
® statusText="Parameter "; // statusText vorbelegen
® // Gueltige Antwort ?
® if (antwort[CTRLPOS]!=(TEL_PARAM_SET[CTRLPOS]|CTRLOR))
® strcat(statusText,"NICHT ");
®
® strcat(statusText,"gesetzt");
® STATUS=statusText;
® }
Der exist Operator überprüft, ob dem Job der Parameter PARAMETER übergeben
wurde. Das Anwendungsproramm muß die Parameter in der Reihenfolge übergeben,
in der sie im Job Header definiert worden sind. Eine Überprüfung findet nicht statt.
Die Parameter werden vom Anwendungsprogramm als ein zusammenhängender
String übergeben. Darin werden die einzelnen Parameter mit ; getrennt. Ein
Parameter ;; gilt als nicht übergeben. Sie können auch in BestView dem Job
35
EDIABAS — BEST BENUTZERHANDBUCH
Beispiele:
;;TEST
Übergibt nur TEST als drittes Argument an einen Job.
0x0005;0x0001
Übergibt zwei Parameter an einen Job.
Die Parameter müssen mit Datentypen versehen werden. Es wird dann automatisch
gewandelt. Ist der erste Parameter im vorhergehenden Beispiel z.B. vom Typ string
und der zweite vom Typ int, so wird der erste als Feld betrachetet und der zweite als
Zahl.
Ein Job kann auch binäre Parameter und Ergebnisse erhalten und zurückgeben.
Es kann nur ein binärer Parameter vom Typ data definiert werden. Dieser enthält
ein binäres Feld, das entweder den kompletten Parameterstring oder ein spezielles
Datenfeld enthält. Zur Übergabe eines binären Datenfelds stehen in API spezielle
Funtionen (apiJobData/apiJobExt, siehe [6]) zur Verfügung.
Im Gegensatz dazu kann man mehrere Ergebnisse vom Typ data definieren. Diesen
Ergebnissen können dann Arrayvariablen im binären Format, z.B. Telegramme
zugewiesen werden.
36
EDIABAS — BEST BENUTZERHANDBUCH
Beispiel:
job( name : READ_2_TELEGRAMS
comment : Setzen eines Parameters im SG;
argument : SEND_TEL;
type : data;
comment : Zu sendendes Telegramm;
result : RECV_TEL_1;
type : data;
defrslt : ;
comment : 1. Empfangstelegram;
result : RECV_TEL_2;
type : data;
defrslt : ;
comment : 2. Empfangstelegram;
)
{
send_and_receive(antwort1,request); // SG-Kommunikation
send_and_receive(antwort2,request);
RECV_TEL_1=antwort1; // Ergebnisse
RECV_TEL_2=antwort2;
37
EDIABAS — BEST BENUTZERHANDBUCH
5. BEST-Tools
5.1. BEST2WIN
BEST2WIN dient zur Übersetzung von in BEST/2 geschriebenen SGBDen in ein von
EDIABAS interpretierbares Objektformat.
BEST2WIN ist ein Windows Programm mit Namen [Link] und wird somit
aus dem Programm- oder dem Datei-Manager heraus gestartet. Es empfiehlt sich
jedoch BEST2WIN in eine Programm-Gruppe aufzunehmen.
Im Menü "Help" finden Sie unter dem Punkt "Contents" eine Online Hilfe, die alle
Bedienungsvorgänge sowie die Aufrufparameter von BEST2WIN ausführlich erklärt.
BEST2WIN [-C commandfile] [-B] [-A] [-I] [-S] [-L libfile] [-Z includedir]
[-R [Link] username] [-O errorlogfile]
[-P Paßwortlabel|@Paßwortlabelliste ] sourcefile [outdir]
Die Option -L ermöglicht die Angabe einer alternativen BEST/2 Laufzeitbibliothek.
Wird diese Option nicht genutzt, verwendet BEST2WIN standardmäßig die Datei
[Link]. Sie wird in dem Verzeichnis gesucht, in dem [Link] steht.
BEST2WIN unterstützt die Verwendung von Includedateien. Include-Dateien werden
zuerst im Verzeichnis der BEST/2-Quelldatei gesucht. Mit der Option -Z ist es
möglich die Suche auf ein zusätzliches Verzeichnis auszudehnen. Bei Angabe
mehrere Include-Verzeichnisse werden diese von links nach rechts berücksichtigt,
Wobei jedes Verzeichnis mit der Option –Z gekennzeichnet ist (-Z incldir1 –Z
incldir2 ... –Z incldirN). Die Option -Z wird nicht berücksichtigt, falls in der BEST/2-
Quelldatei bereits Angaben zum Pfad der Include-Datei gemacht wurden.
Die Option -S bewirkt die zusätzliche Ausgabe der BEST/2-Preprozessordatei mit
der Endung .p2v für Variantenbeschreibungsdateien oder .p2g für
Gruppenbeschreibungsdateien. In der BEST/2-Preprozessordatei befindet sich der
gesamte BEST/2-Quellcode inklusive dem Inhalt der BEST/2-Includedateien.
Wird die Option -A oder -I mit angegeben, so wird zusätzlich zur Objektdatei
entweder ein Assembleroutput (*.b1?) oder ein Infofile mit der Endung .biv für
Variantenbeschreibungsdateien oder .big für Gruppenbeschreibungsdateien oder
38
EDIABAS — BEST BENUTZERHANDBUCH
Mit der Option –O wird eine Error-Log-Datei angelegt. Diese Datei hat die Endung
.out. Wird Option -O nicht angegeben, dann wird im Fehlerfall automatisch eine
Error-Log-Datei mit dem Namen [Link] angelegt.
Mit der Option -P und ihren Parametern ist es möglich, in der Objektdatei bestimmte
Paßwörter zu speichern. Es kann entweder ein einzelnes Label zu einem Paßwort
angegeben werden oder es kann eine ganze Liste von Label in einer Datei
angegeben werden. Der Parameter wird durch ein vorangestelltes "@" als
Dateiname gekennzeichnet. Es können nur Label von Paßwörtern verwendet
werden, die dem System zuvor über den Paßworteditor bekanntgemacht wurden.
Der Parameter sourcefile beschreibt die BEST/2 Quelldatei. Der optionale Parameter
outdir legt fest, in welchem Verzeichnis BEST2WIN die Ausgabedateien anlegen
soll.
Beispiele:
BEST2WIN demo.b2v
BEST2WIN -R 1.0 Otto *.b2g
BEST2WIN -A -I -S -Z c:\test\ecu\include test.b2v c:\test\ecu
BEST2WIN -L c:\test\ecu\[Link] -I test.b2v c:\test\ecu
BEST2WIN -P GEHEIM test.b2v c:\test\ecu
Für jede fehlerfrei übersetzte Quelldatei wird die erforderliche Mindestversion von
EDIABAS ausgegeben:
<Quelldatei>: 0 error(s) [ EDIABAS <Mindestversion> ]
39
EDIABAS — BEST BENUTZERHANDBUCH
5.2. BestBoard
5.2.1. Allgemeines
BestBoard integriert die Erstellung von Beschreibunsdateien in einem Programm. Es
übernimmt die Ansteuerung des Editors, des Compilers und des Debuggers.
Darüberhinaus ist das Ausführen von eigenen Anwendungsprogrammen zu
Testzwecken möglich.
n ECU-Verzeichnis:
Menü: Options-ECU Directory
In diesem Verzeichnis befinden sich die SGBDen im Objektformat, bzw. sollen
dort abgelegt werden.
Bei Programmstart wird das EDIABAS-Konfigurationselement EcuPath
berücksichtigt und - falls vorhanden - übernommen.
n EDIABAS-Verzeichnis:
Menü: Options-EDIABAS Directory
In diesem Verzeichnis befindet sich die installierte EDIABAS-Version mit den
Unterverzeichnissen BIN, ECU, API usw.
Bei Programmstart wird das aktuelle EDIABAS-Verzeichnis angenommen.
Im Menü Tools/Editor ist der Name des Editors mit der genauen Kommandozeile
einzutragen. Ein Arbeitsverzeichnis des Editors kann optional angegeben werden.
Als Voreinstellung wird der unter Windows allgemein verfügbare Editor "Notepad"
benutzt.
Ist während des Startens oder Stoppens von BestBoard die Steuergerätesimulation
oder ein EDIABAS-Trace eingeschaltet, so erfolgt eine Warnung unter Anzeige der
eingestellten Parameter.
40
EDIABAS — BEST BENUTZERHANDBUCH
5.2.2. Menüübersicht
File
New Erstellung einer neuen Beschreibungsdatei (BEST/2-
Quelldatei)
Open Öffnen einer Beschreibungsdatei (als Quelldatei oder
Objektdatei)
Im Menü File werden zudem die letzten 4
Beschreibungsdateien aufgeführt, durch Anwahl eines
Namens wird die jeweilige Beschreibungsdatei geöffnet
Exit Verlassen des Programms
Project
Edit Aufruf des Editors mit der BEST-Quelldatei
Compile Übersetzung der BEST-Quelldatei durch Aufruf von
BEST2WIN
Debug Aufruf des BEST-Debuggers BestView mit der BEST-
Quelldatei und der BEST-Objektdatei
Next Error Anzeige des nächsten Übersetzungsfehlers
Previous Error Anzeige des vorherigen Übersetzungsfehlers
Run Application Aufruf des aktiven Anwendungsprogramms (siehe auch
Kapitel Anwendungsprogramme)
Tools
Applications Menü zur Anwendungsprogrammverwaltung: Aktivieren,
Löschen, Hinzufügen, Ändern und Aufruf von
Anwendungsprogrammenen
Editor Bestimmung des zu verwendenden Editors
API-Trace Ein-/Ausschalten von API-Trace
IFH-Trace Ein-/Ausschalten von IFH-Trace
ECU Simulation Ein-/Ausschalten des Steuergeräte-Simulators
Options
ECU Directory Bestimmung des ECU-Verzeichnisses
Hinweis: Die Environment-Variable ECU wird nicht
geändert !
EDIABAS-Dir. Bestimmung des EDIABAS-Verzeichnisses
Hinweis: Die Environment-Variable EDIABAS wird nicht
geändert !
Auto Editor Act. Automatische Aktivierung des Editors beim Öffnen der
BEST-Quelldatei.
Save Configur. Speicherung der aktuellen BestBoard-Konfiguration bei
Verlassen von BestBoard (Datei [Link] bzw.
[Link] im Windows-Verzeichnis)
Window
41
EDIABAS — BEST BENUTZERHANDBUCH
42
EDIABAS — BEST BENUTZERHANDBUCH
5.2.3. Toolbar
Die Toolbar soll das Anwählen der wichtigsten Menüpunkte vereinfachen. So bewirkt
das Anwählen eines Buttons in der Toolbar nur das Anwählen des zugeordneten
Menüs.
Anwendungsprogramm ausführen
Nächster Fehler
Vorhergehender Fehler
Debugger aufrufen
Compiler starten
Datei editieren
Datei öffnen
Neue Beschreibungsdatei anlegen
"Gedrückte" Buttons zeigen eine bereits gestartete Aktion an (z.B. Übersetzer läuft)
5.2.4. Anwendungsprogramme
Es besteht in BestBoard die Möglichkeit, beliebige Programme zu integrieren,
welche zur Entwicklung bzw. zum Test von Beschreibungsdateien benötigt werden.
BestBoard kann mehrere Anwendungsprogramme gleichzeitig verwalten, wobei
immer das aktive Anwendungsprogramm von BestBoard gestartet wird. Als aktives
Anwendungsprogramm gilt das im Menü TOOLS/APPLICATIONS ausgewählte
Anwendungsprogramm.
43
EDIABAS — BEST BENUTZERHANDBUCH
Hinweis:
2. BEST-Quelldatei übersetzen
n Menü Project/Compile oder Toolbar-Button
n Falls Übersetzungsfehler auftreten:
Quelldatei im Editor (wird automatisch gestartet) korrigieren, die
betreffende Zeilennummer sowie die Fehlermeldung wird im
Arbeitsbereich von BestBoard ausgegeben. Mit den Menüs Project/Next
Error bzw. Project/Previous Error kann auf die anderen Fehlermeldungen
umgeschaltet werden. Ein akustischer Warnton und leerer Arbeitsbereich
zeigen das Ende der Fehlerliste an.
n Nach Korrektur der Beschreibungsdatei im Editor: Wiederholung von 2.
44
EDIABAS — BEST BENUTZERHANDBUCH
5.3. BestView
5.3.1. Allgemeines
BestView ist ein Source Level Debugger zum Test von in BEST/2 geschriebenen
SGBDen. Diese Dateien müssen sowohl als Quellcode als auch als Objektdatei
vorliegen. Alternativ können auch Objekt- oder BEST/1 Dateien getestet werden,
jedoch ohne die Funktionalität des Quellcodedebuggings.
BestView ist für WIN32 ([Link]) und WIN16 ([Link]) verfügbar.
Beide Varianten werden entweder aus BestBoard oder aus dem Explorer- bzw. dem
Datei-Manager heraus gestartet.
Mittels BestView können Sie Jobs Zeile für Zeile ablaufen lassen, Variablen
während des Ablaufs betrachten und ändern und die Ergebnisse des Jobs
analysieren.
Im Menü "Help" finden Sie unter dem Punkt "Contents" eine Online Hilfe, die alle
Bedienungsvorgänge sowie die Aufrufparameter von BestView ausführlich erklärt.
In den folgenden Kapiteln wird die WIN32 Variante näher beschrieben.
45
EDIABAS — BEST BENUTZERHANDBUCH
5.3.2. Benutzeroberfläche
BestView für WIN32 verfügt über eine gegenüber der WIN16 Variante geänderten
Benutzeroberfläche mit neuen bzw. geänderten Arbeitsbereichen:
[Link]. Toolbar
· SGBD auswählen
· Job auswählen
· Job starten/fortsetzen
· Job um 1 Anweisung fortsetzen
· Breakpoint setzen/entfernen
· Variable/Parameter/Ergebnis-Dialog öffnen
· Watch-Variable-Dialog öffnen
· IFH-Trace-Datei anzeigen
46
EDIABAS — BEST BENUTZERHANDBUCH
· IFH-Trace-Datei löschen
· Text-Suchdialog öffnen
· Textsuche wiederholen
· Online-Hilfe
Die Toolbar ist als Docking-Fenster implementiert und kann auch außerhalb des
BestView-Arbeitsbereichs positioniert werden.
[Link]. Statuszeile
In der Statuszeile zeigt BestView zusätzliche Informationen an. Auf der rechten
Seite wird auf eine eingeschaltete Simulation und/oder einen eingeschalteten IFH-
Trace hingewiesen.
Bei aktivem Source-, IFH- und Ergebnisfenster wird in der Statuszeile zudem die
aktuelle Position innerhalb des Fensters angezeigt (Zeile, Spalte).
[Link]. Project-Fenster
Das Project-Fenster informiert über den Inhalt der aktuell geladenen
Beschreibungsdatei. Unter dem Ordner "Source Files" sind alle am
Übersetzungsvorgang beteiligten Quelldateien aufgelistet (B2V-Datei + Include-
Dateien). Im Ordner "Jobs" sind alle in der Beschreibungsdatei verfügbaren Jobs
aufgelistet (ohne virtuelle Jobs und ohne Jobs in Basisdateien).
Ein einfaches Anklicken eines Eintrags innerhalb des Project-Fensters bewirkt die
Anzeige der betreffenden Quelldatei bzw. der ersten Anweisung des
entsprechenden Jobs im Quellfenster.
Ein Doppel-Click auf einen Job innerhalb des Project-Fensters öffnet den Job-
Auswahldialog, sofern dieser Job nicht zu den zuletzt gestarteten Jobs gehört (siehe
Kap. Menü Run-Job). Gehört der ausgewählte Job zu den zuletzt gestarteten Jobs,
so bewirkt ein Doppel-Click den sofortigen Start des Jobs.
Das Project-Fenster kann als Mini-Fenster oder als Docking-Fenster (siehe Abb.)
benutzt werden. Als Mini-Fenster ist das Project-Fenster auch außerhalb des
BestView-Arbeitsbereichs positionierbar, der BestView-Arbeitsbereich bleibt hierbei
unverändert. Als Docking-Fenster kann das Project-Fenster an den
linken/rechten/oberen/unteren Teil des BestView-Arbeitsbereichs ange"dock"t
werden, wobei sich der BestView-Arbeitsbereich entsprechend verkleinert. Die
Umschaltung zwischen Mini- und Docking-Fenster-Darstellung ist durch Doppel-
Click auf den Rand des Project-Fensters möglich. Eine neue Docking-Ausrichtung ist
durch einfaches Ziehen des Project-Fenster an den gewünschten BestView-Rand
vorzunehmen.
47
EDIABAS — BEST BENUTZERHANDBUCH
Die Breite bzw. Höhe eines ge"dock"ten Project-Fenster orientiert sich an der Größe
des Project-Fensters in der Mini-Fenster-Darstellung. Für eine Größenänderung des
ge"dock"ten Project-Fensters muß hierzu in die Mini-Fenster-Darstellung
gewechselt, die Größe des Mini-Fensters geändert und das Project-Fenster wieder
in die Docking-Darstellung zurückgestellt werden.
[Link]. Quellcode-Fenster
Im Quellcode-Fenster wird der Quellcode der SGBD angezeigt. In diesem Fenster
können Breakpoints (braun hinterlegt) gesetzt werden. In diesem Fenster ist die
Zeile die beim nächsten Programmschritt ausgeführt wird gelb hinterlegt.
[Link]. Watch-Fenster
Im Watch-Fenster wird der Inhalt von Variablen angezeigt.
[Link]. Results-Fenster
Im Results -Fenster wird der Inhalt der Job-Ergebnisse angezeigt.
[Link]. IFH-Trace-Fenster
Im IFH-Trace-Fenster wird der Inhalt der IFH-Trace-Datei angezeigt. Nach jeder
Job-Ausführung bzw. nach jeder Job-Unterbrechung (z.B. nach Run-Step) wird das
Trace-Fenster automatisch aktualisiert.
48
EDIABAS — BEST BENUTZERHANDBUCH
Wird eine Objektdatei ausgewählt, so verhält sich BestView wie das normale
EDIABAS Laufzeitsystem. Bei Auswahl einer Gruppe wird der Job IDENTIFIKATION
in der Gruppendatei automatisch ausgeführt, und erst dann der ausgesuchte Job in
der dadurch bestimmten Variantendatei. Bei Auswahl einer Quelldatei verhält sich
eine Gruppenbeschreibungsdatei wie eine Variantenbeschreibungsdatei, d.h. der
Job IDENTIFIKATION hat keine besondere Bedeutung und kann jederzeit
untersucht werden.
Nach dem Öffnen einer Beschreibungsdatei wird diese in einem Source-Fenster
angezeigt, bei Auswahl einer Objektdatei wird hingegen nur ein minimiertes Objekt-
Fenster angezeigt. Einer Beschreibungsdatei können mehrere BEST/2-Quelldateien
(Moduln) zugrundeliegen. Über das Menü „File View“kann die Anzeige zwischen
den jeweiligen Moduln umgeschaltet werden.
BestView ermöglicht das automatische Öffnen eines Projekt-Fensters, welches alle
Jobs und BEST/2-Quelldateien (Moduln) der geladenen Beschreibungsdatei
darstellt. Das Projekt-Fenster kann als Mini-Fenster oder Docking-Fenster
verwendet werden. Die Mini-Fenster-Darstellung ermöglicht die Positionierung des
Mini-Fensters in jeden Bereich des Fensters-Desktops, der Arbeitsbereich von
BestView bleibt hiervon unbeeinflußt. Bei der Docking-Fenster-Darstellung wird der
Arbeitsbereich von BestView entsprechend der Docking-Ausrichtung (links, rechts,
oben, unten) automatisch verkleinert. Durch Doppel-Click auf den Projekt-Fenster-
Rand ist eine Umschaltung zwischen Mini- und Docking- Darstellung möglich. Über
das Menü „Window Projekt“kann das Projekt-Fenster zu- oder abgeschaltet werden.
Die Bindung des Debuggers an eine Beschreibungsdatei bleibt solange erhalten, bis
diese mit dem Menü „File Close“ verworfen, das Beschreibungsdatei-Fenster
geschlossen oder eine Beschreibungsdatei neu ausgewählt wird.
Besteht eine Beschreibungsdatei aus mehreren Moduln (die mit File Open
geöffnetete B2V-Datei + Include-Dateien), so wird für die Include-Datei-Suche der
gleiche Suchalgorithmus angewendet wie beim BEST/2-Compiler:
Bei #include-Anweisungen mit absoluten oder relativen Pfadangaben sucht
BestView nur in den vorgegebenen Pfaden nach der jeweiligen Include-Datei.
Bei relativen Pfadangaben bezieht sich die Pfadangabe immer auf das
Verzeichnis der mit „File Open“geöffneten B2V-Datei (Source-Verzeichnis).
Bei #include-Anweisungen ohne Pfadangaben sucht BestView zuerst im
Verzeichnis der mit „File Open“ geöffneten B2V-Datei nach der jeweiligen
Include-Datei. Über das Menü „Options Include-Path“ kann die Suche auf
zusätzliche Verzeichnisse ausgedehnt werden.
49
EDIABAS — BEST BENUTZERHANDBUCH
50
EDIABAS — BEST BENUTZERHANDBUCH
Die Auswahl eines Jobs geschieht mit dem Menü „Run Job“. Es werden alle
vorhanden Jobs der gewählten Beschreibungsdatei angezeigt. Es kann auch der
Job INITIALISIERUNG ausgewählt werden. In Gruppenbeschreibungsdateien ist
auch die Auswahl des Jobs IDENTIFIKATION möglich.
Wurde eine Gruppenbeschreibungsdatei als Objektdatei geöffnet, so betrifft der
eingegeben Jobname die Variantendatei und nicht die Gruppdendatei.
Der auszuführende Job kann über folgende Eingaben konfiguriert werden:
Job-Parameter
Die hier eingegebenen Daten werden später an den auszuführenden Job
übergeben. Bei der Einstellung „String“werden die Job-Parameter 1:1 an den
Job übergeben. Bei der Einstellung „Data“werden die Job-Parameter vor der
Job-Ausführung in einen entsprechenden binären Datenstrom konvertiert und
so an den Job übergeben.
51
EDIABAS — BEST BENUTZERHANDBUCH
52
EDIABAS — BEST BENUTZERHANDBUCH
53
EDIABAS — BEST BENUTZERHANDBUCH
Variable, Ergebnisse und Parameter können mit dem Menüpunkt „Debug Show
Data“angezeigt werden.
Es erscheint eine Dialogbox, in der die Art der anzuzeigenden Daten ausgewählt
werden kann. Bei den Ergebnissen muß zusätzlich zum Namen noch der
gewünschte Ergebnissatz ausgewählt werden.
Alle Daten werden als Wert und als binäre Daten angezeigt. Das Anzeigeformat des
Wertes kann den Möglichkeiten entsprechend angepasst werden.
Ist der angezeigte Wert eine Variable so kann er aus der Dialogbox heraus durch
Klicken des Buttons Modify ebenso mit dem Menüpunkt „Debug Modify Variable“in
einer eigenen Dialogbox verändert werden.
54
EDIABAS — BEST BENUTZERHANDBUCH
Eine Variable kann während des Debuggens in einem eigenen Fenster laufend
beobachtet werden, indem sie mit dem Menüpunkt „Debug Watch Variable“in die
Watchliste aufgenommen wird. Dort kann sie auch wieder entfernt werden.
Variable und Parameter werden automatisch angezeigt, wenn die Maus im Source-
Fenster auf eine Variable oder einen Parameter zeigt. Data-Variable werden in
hexadezimaler Form ausgegeben, wobei die Anzeige auf max. 32 Byte beschränkt
ist.
55
EDIABAS — BEST BENUTZERHANDBUCH
5.3.9. Menüübersicht
56
EDIABAS — BEST BENUTZERHANDBUCH
57
EDIABAS — BEST BENUTZERHANDBUCH
58
EDIABAS — BEST BENUTZERHANDBUCH
59
EDIABAS — BEST BENUTZERHANDBUCH
60
EDIABAS — BEST BENUTZERHANDBUCH
61
EDIABAS — BEST BENUTZERHANDBUCH
62
EDIABAS — BEST BENUTZERHANDBUCH
63
EDIABAS — BEST BENUTZERHANDBUCH
64
EDIABAS — BEST BENUTZERHANDBUCH
B. LITERATURVERZEICHNIS
65
EDIABAS — BEST BENUTZERHANDBUCH
C. INDEX
Realzahl 36
apiJobExt 38 revision 25
argument 23
author 25 send_and_receive 28
set_answer_length 27
Basisbeschreibungsdatei 11 set_communication_pars 27
bcd2ascii 30 set_repeat_counter 27
Best2/Win 40 Standardergebnisse 14
Standardjob 13
comment 23, 25 Steuergerätegruppe 10
Steuergeräte-Simulator 21
data 38 Steuergerätevariante 10
Debugger 29 strrevers 30
defrslt 24
DONE 16 tab_suche_index 34
Tabelle 33
ecu 25 tabset 33
ENDE 17 Tools 40
Ergebnissätze 32 type 23
exist 37
uses 11
Gruppenbeschreibungsdatei 10
VARIANTE 17
Header 23 Variantenbeschreibungsdatei 11
Variantenermittlung 17
IDENTIFIKATION 17
INITIALISIERUNG 15 Windows 40
itor 36
Jobkonzept 10
Kommunikationskanal 25
Methoden 10
name 23
open_communication 25
origin 25
66