Aufzugsteuerung
-
Frage bezüglich Modulen und wie man damit umgeht.
Hier die main:
#include "Aufzug.h"
#include "AufzugSim.h"static EreignisT EreignisTrace1[] =
{
{2, Etage2, Erdgeschoss},
{30, Etage1, Etage3},
{40, Erdgeschoss, Etage1},
{45, Etage1, Erdgeschoss},
{46, Etage1, Etage2},
{10000}
};int main()
{
InitialisiereAufzugTreiber();// InitialisiereSimulator(15);
InitialisiereSimulator(EreignisTrace1);for ()
{// Hier sollte Ihr Steueralgorithmus stehen!
SimuliereZeitschritt();
}return 0;
}die Headerdatei:
#ifndef _AUFZUG_H_
#define _AUFZUG_H_/--------------------------------------------------------------------/
/* Typdefinitionen /
/--------------------------------------------------------------------*/// Aufzählungstyp für den Zustand der Aufzugskabine
enum ZustandT {abwaertsfahrend, aufwaertsfahrend, stehend};// Abwärts- und Aufwärts-Ruftasten pro Etage (true = gedrückt,
// false = nicht gedrückt). Abwaerts[0] und Aufwaerts[3] haben keine
// Bedeutung.
struct RuftastenT
{
bool Abwaerts[4];
bool Aufwaerts[4];
};// Zustandsinformationen zur Aufzugskabine
// Position: Wert zwischen 0 und 30, 0 = Erdgeschoss, 10 = Etage 1,
// 20 = Etage 2, 30 = Etage 3, Werte dazwischen zeigen an,
// dass der Aufzug sich zwischen zwei Etagen befindet,
// z.B. 26 = zwischen Etage 2 und Etage 3.
// Zustand: Kabine ist aufwärts- / abwärtsfahrend oder stehend.
// Alarmtaste: true = gedrückt, false = nicht gedrückt
// Etagentaste: pro Etage, true = gedrückt, false = nicht gedrückt
struct KabineT
{
unsigned short Position;
ZustandT Zustand;
bool Alarmtaste;
bool Etagentaste[4];
};/--------------------------------------------------------------------/
/* Variablendeklarationen /
/--------------------------------------------------------------------*/// Globale Variable zum Abfragen der Informationen der Aufzugkabine
extern KabineT Kabine;// Globale Variable zum Abfragen der Ruftasten
extern RuftastenT Ruftasten;/--------------------------------------------------------------------/
/* Funktionsdeklarationen /
/--------------------------------------------------------------------*/// Funktion zur Initialisierung des Aufzugtreibers. Vor der ersten
// Nutzung des Treibers muss dieser initialisiert werden.
extern void InitialisiereAufzugTreiber();// Funkionen zum Öffnen und Schließen der Kabinentüren
extern void OeffneTueren();
extern void SchliesseTueren();// Funktionen, um den Aufzug in Bewegung zu setzen
extern void StarteAufwaertsfahrt();
extern void StarteAbwaertsfahrt();// Funktion zum Anhalten der Aufzugbewegung
extern void StoppeAufzugfahrt();#endif
Wie implementiert man den Steueralgorithmus? Brauche ich die Varablen aus der Aufzug.h Datei?
-
Formatiere ersteinmal deinen Code mit den entsprechenden C++-Tags hier im Forum...