| Historisches: 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.