DOKUMENTENNAME: Projektstruktur --------------- Autor: K. Bothe Bearbeitetes RTK-Modul: Gesamtprojekt Dokumentversion: v28.Nov98 ZUSAMMENFASSUNG: a) Fileliste geordnet nach Modulen: A: Modul Hauptprogramm (develop) B: Modul Counters C: Modul Motors D: Modul Splib b) Kurzcharakteristik aller Files: - Umfang in LOC, - Name des Files, - Aufgabe, - u. U. Feinstruktur (Klassen, Funktionen) - weitere Bemerkungen c) Zusammenstellung der Beitraege zur ersten Sichtung der Quellen von: Auerbach, Gollnick, Klump, Luetzkendorf, Rumstich, Wenzel, Wolf ANMERKUNGEN: - Zuordnung aufgrund der Borland-Projektverzeichnisstruktur - Bei einigen .h-Files (ohne korrespondierende .c-Files ist die Zuordnung zu den Modulen nicht zwingend) - Der Detailierungsgrad bzw. Informationsgehalt ist (z. T. abh. von den Autoren) recht unterschiedlich NAECHSTE GEPLANTE SCHRITTE: - Wird als Entwicklerdokument zur Verfuegung gestellt. - Kann ergaenzt werden. - Als HTML-Dokument solle eine hierarchische Gliederung in die vier Module gebracht werden. *************************************************************************** A: Modul Hauptprogramm (develop) 207 comclass.h class TMain main message loop class TMDIWindow Implemetationen in m_main.cpp 208 comhead.h: (Definitionen von uberall zugaenglichen konstanten (defines), symbolen (enums), structuren, return-werten, typen:) - include zahlreicher Systemheader (cstring.h etc) - defines haufig gebrauchter Konstanten (MaxString, EOL etc) - typedefs fuer Aufzaehlungstypen - typedefs verwendeter Strukturen ( echte C-Strukturen, also insb. ohne Methoden ) - defines fuer Return-Codes 191 dlg_tpl.cpp (auch in: Motors, Splib) 79 dlg_tpl.h - classen TModalDlg, TModelessDlg 2 Dialogklassen (scheinen generische Basisklassen für die anderen Dialoge zu sein) - globale funtionen DialogProc, ModelessProc - "Template Dialog-Prozeduren" 8 help_def.h defines schlussel fur hilfekapitel 3245 m_arscan.cpp Definition verschiedener Dialoge 2021 m_data.cpp 145 m_data.h Klassen und Strukturen: TPlotData : scheinbar zur Ausgabe der Kurven benutzt TCurveShowParam : nicht klar TBitmapSource : nicht klar TCoorSystem(Struktur) : f"ur 3d Koordinatensystem TScreen(Struktur) : enthaelt Bildschirmparameter 386 m_device.cpp - Definition einer Dialogklasse TCounterShowParam - wozu TCounterWindow dient ist nicht klar - "Zaehlerfenster" 814 m_dlg.cpp 64 m_dlg.h - Dialoge fuer Motorenansteuerung. - Setzen der eingegebenen Werte in die entsprechenden Datenstrukturen. 1939 m_main.cpp 1221 m_scan.cpp - wiederum Definition von Dialogklassen (TSetupContinuousScan und TSetupStepScan ) - weitere Klassen werden definiert (Bedeutung noch unklar) 3037 m_steerg.cpp 512 m_steerg.h sehr umfangreiche Quelltextfiles mit Definition von vielen Klassen und Funktionen, genauere Betrachtung sehr wichtig 714 m_topo.cpp 78 m_topo.h Definition verschiedener Dialoge 480 rc_def.h (auch in: motors) Recource-IDs, Message-IDs, ... *************************************************************************** B: Modul Counters 492 am9513.cpp 141 am9513a.h am9513.cpp == timer.cpp (identisch bis auf eine leere zeile) implementation class TAm9513a - implementiert Hardwarezugriff auf diesen Zaehlertyp - Funktionalitaet wird in class TGenericDevice eingeerbt - class TAm9513a.h zahler schaltkreis Am9513A friend class TGenericDevice friend class TCCDScan nicht definiert friend funktionen nicht implementiert klein: 9 public methoden 268 c_layer.cpp 32 c_layer.h Interface für die dll: funktionen die die dll exportiert und von aussen zugriff auf die verwalteten counter erlauben counters.dll haupt routinen (LibMain, ...) implementation (teil) der klasse TDList 2151 counters.cpp implementationen fur eine ganze latte von klassen: TDList (Teil), TDevice, TGenericDevice, TEncoder, TPsd, TStoe_Psd, TRadicon und einige Dialogklassen 228 m_devcom.h - defines -> anscheinend fuer Funktionscodes/ Ausgabecodes - class TDevice -> viele friends/ virtuelle Methoden -> die Basisklasse fuer alle Zaehlerkarten, - ziemlich fette Schnittstelle (ca 45 public methoden, uberwiedend virtual; 13 public member) 4 friend classes (TDList, TCommonDevParam, TCounterWindow, TAreaScan) implementation in counters.cpp - class TDList -> keine friends/virt. -> Verwaltung einer Liste von TDevice-Objekten, "Verwaltung von Geraten" (ca. 17 public methoden) implementation in counters.cpp und c_layer.cpp - class TCounterWindow -> erbt TMDIWindow (aus comclass.h) -> Darstellung des Zaehlerfensters - class TCounterShowParam -> erbt TModalDlg (aus dlg_tpl.h) - die Ansteuerung der/des PSD geschiet hier nicht, sondern ist ueber eine Reihe weiter Datein verstreut 97 m_devhw.h - include: am9531a.h m_psd.h radicon.h ,also die Header fuer die verschiedenen Zaehlerkarten/bausteine - class TGenericDevice -> erbt von TDevice,TAm9513a "a generic counter device" - class TRadicon : public TDevice "Radicon-Zahler Bauart II" -> die beiden Klassen impl. Methoden zur Benutzung der entsprechenden Geraete; ausserdem jeweils eigene Klassen zur Einstellung von Parametern - class TEncoder : public TDevice -> auch eine Hardwareschnittstelle, aber zu welchem Geraet? - class TCounterWindow : public TMDIWindow - class TCounterShowParam : public TModalDlg implementationen in m_device.cpp - class TCommonDevParam : public TModalDlg - class TScsParameters : public TModalDlg implementationen in counters.cpp ---------------------------------------------------------------------- Radikon-Funktionalitaet (Copyrightvermerk vom Hersteller) 454 kisl1.c gibt relativ abstraktes Modell der eigentlichen Steuerkarte inkl. Testbetrieb ("Fakedevice") 498 kmpt1.c 8 prkmpt1.h Hilffunktionen fuer kisl1.c , kommunikation mit controller 7 globale funktionen; definitionen + implementation 38 dfkisl.h defines fuer kmptl.c 36 radikon.h Header fuer Funktionen aus kisl1.c ca. 20 defines, ? messagecodes: ACK, NAK, ... ---------------------------------------------------------------------- PSD-Funktionalitaet: PSD = Positionsempfindlicher Detektor 784 braunpsd.cpp: - implementiert TBraun_Psd - erweitert class TPsd: public TDevice aus m_psd.h 210 m_psd.h: - class TPsd: public TDevice -> in counters.cpp impl. - class TStoe_Psd: public TPsd -> impl. in counters.cpp "Hardware-spezifischer Teil" - class TBraun_Psd: public TPsd -> impl. in braunpsd.cpp - class TPsdParameters : public TModelessDlg implementation in m_dlg.cpp, Klasse, um Paramter fuer TPsd-Geraet zu setzen include stoe_psd.inc nicht gefunden!! 346 m_xscan.h: vor allem Fenster fuer Einstellungen class TScanParameters "Klasse Diffraktometrie" satz von public data members implementation m_scan.cpp (construktor) class TScan, public TScanParameters, public TPlotData keine public methoden (bis auf con- und destructor), aber 16 protected und 10 private 5 friend classen (TSetScanParameters, TSteering, TScanCmd, TSetupScanCmd, TSaveDataCmd) implementation m_scan.cpp class TAreaScanParameters satz von public data members 1 public methode implementation m_arscan.cpp class TAreaScan, public TAreaScanParameters, public TPlotData keine public methoden (bis auf con- und destructor), aber ca 20 protected und 6 private 8 friend classen (TSteering, TScanCmd, TChooseScan, TAquisition, TSetupScanCmd, TSaveDataCmd, TSetupAreaScanCmd) implementation m_arscan.cpp class TChooseScan : public TModelessDlg class TSetupAreaScan : public TModalDlg class TAquisition : public TModalDlg class TSetupContinousScan : public TModalDlg class TSetupScan : public TModalDlg class TCalbratePsd : public TModalDlg class TPsdRemoteSync : public TModalDlg implementation m_arscan.cpp ----------------------------------------------------------------- Anmerkung: Ergaenzungen zur bereits vorliegenden Beschreibung des Modul "counters" die sich aus der Sichtung der Quellen ergab: -> Unterstuetzung eines zweiten PSD-Types, neben dem BRAUN-PSD ist implementiert (in der Klasse TStoe_Psd) (?) *************************************************************************** C: Modul Motors 191 dlg_tpl.cpp (auch: splib, develop) implementiert Memberfunktionen von TModalDlg und TModelessDlg 93 ieee.h IEEE-488 interface routines 493 m_layer.cpp (auch: counters ?) Motorsteuerung (C-Interface) 104 m_layer.h (auch: counters ?) - Implementation des Interface für die dll - fuer alle drei Motortypen wird jeweils die Memberfunktion StartCheckScan implementiert, der Quellcode gleicht sich jedoch - Kommentare unterteilen in die Bloecke "Routinen zur Motoroptimierung","C-call Interface fuer TMList", "C-call Interface fuer TMotor" 3370 motors.cpp - 12 verschiedene Klassen - sechs globale ? Funktionen - unklar wo befinden sich die Klassendeklaration -> nicht aus Header-File-Namen entnehmbar 480 rc_def.h (auch: develop, Counters?) - aussschliesslich defines -> anscheinend um Funktionsaufrufe entsprechend zu parametrisieren - wird von allen *.cpp-Files im Projekt eingeladen - 448 Konstanten definiert 304 m_mothw.h enthaelt Klassendeklarationen von: TCalibrate TMotorParam TOptimizeDC_812 TOptimizeDC_832 TPosControl 173 m_motcom.h enthaelt Klassendeklaration von: TMotor TMList *************************************************************************** D: Modul Splib SPLIB sind hauptsaechlich allgemeine Hilfsroutienen. 191 dlg_tpl.cpp (auch: motors, develop) grundlegende Dialoge., Template Dialoge 526 l_layer.cpp 47 l_layer.h Implementation des Interfaces für die dll: - Setzen Default-werte. - ermitteln Statusinfos - Ausgabe Autoreninformationen (Adresse, Name usw) - Filehandling (open/clos usw) - Warteschleife (delay). 762 m_curve.cpp 120 m_curve.h 493 m_layer.cpp splib, motors Motorsteuerung (C-Interface) *************************************************************************** Weitere Files: nicht zugeordnet 91 gpib.cpp taucht nicht auf - ueberfluessig? 491 timer.cpp = am9513.cpp/h taucht nicht auf - ueberfluessig? ------------------------------------------------------------------- total: 27890 Zeilen, 60538 Worte, 753593 Zeichen weitere Files: - ini-Datei - Dialogfenster-Dateien (ebenfalls den DLLs zugeordnet) - lauffaehiges Objektfile - Borland-Standardbibliothek - Makefile - *.def Definitionsdatei; legt die Art des Moduls fest (dll oder exe), die Heap- und Stackgröße u.s.w.