// ========================================================================
// Datei:  LAUFLICHT.CPP
// Inhalt: Einfaches Lauflicht mit der LP_BOX.
//         Demonstriert die Verwendung von LP_FUNC.LIB
// Autor:  Gerhard Juengling, HTL Wien 4, Sommer 2000
// ========================================================================

#include <iostream.h>
#include <conio.h>
#include <dos.h>
#include "lp_func.h"

// ========================================================================
// zeige_info: Zeigt eine Programminformation an
// ========================================================================
void zeige_info()
{
	cout << "LAUFLICHT: Lauflicht mit der LP_BOX an LPT1:  (C) G.Juengling 2000\n";
	cout << "------------------------------------------------------------------\n\n";
	cout << "Beenden mit Tastendruck auf LP_BOX oder PC-Tastatur\n\n";
}

// ========================================================================
// lauflicht: Lauflicht, das bei jedem Aufruf um eine Position weiterschaltet
// ========================================================================
void lauflicht()
{
static int i = 0;               // gibt an, welche LED leuchtet (0..7)
        lp_output(1<<i);        // (2 hoch i) wird ausgegeben
        i++;
        if (i>7) i=0;           // es gibt nur 8 LEDs (0..7)
}

// ========================================================================
// main: Hauptprogramm
// ========================================================================
void main()
{
int port=1;	                // LPT1:
unsigned char in_box;

	clrscr();
        zeige_info();

	if (lp_init(port) != 0) {               // LIB initialisieren
	    cout << lp_errmsg (lp_status());   // evtl. Fehlermeldung anzeigen
	    return;
	}
	else {
	    do {
                lauflicht();            // LEDs berechnen und umschalten
                lp_input(in_box);       // Eingaenge von der LP_BOX lesen
                delay(200);             // 200 Millisek. warten
                cout << ".";            // gibt einen Punkt am Bildschirm aus

            } while (!kbhit() && (in_box==0));
            lp_output(0);                     // alle LEDs ausschalten
            cout << "\nProgrammende\n";
	}
}

