;-------------------------------------------------------------------------------
;										|
; AutoIt Version:	3.1.0							|
; Author:        	Philipp Föhn						|
; Script Benötigt:	Parallel Input Output	------> inpout32.dll		|
;			GUI-Datei		------>GUIConstants.au3		|
;										|
;-------------------------------------------------------------------------------


$HLptApi=DllOpen("inpout32.dll")			;Ladedn der dll für die Ansteuerung des Parallelports
if $HLptApi=-1 Then 					;Fals nicht vorhanden
	MsgBox(0,"","inpout32.dll nicht gefunden!")
	Exit
EndIf	
#include <GUIConstants.au3>				;Laden der Datei zur erstellung eine GUI
$begin = TimerInit()					;Timer Starten
$Lptx=0x378   						;Adresse des Parallelports zuweisen: LPT1 = 0x378
$switch=0

;-----------------------------------------------------------------------------------------
;						GUI erzeugen und anzeigen
 
 
GUICreate("Beleutungs-Steuerung", 300, 230)
$buttonein = GUICtrlCreateButton("Rotes Neon", 20, 20, 120)			
$inputflzeit = GUICtrlCreateInput("", 140, 88, 60, 20)
$inputflanzahl = GUICtrlCreateInput("", 140, 116, 60, 20)
$inputfldauer = GUICtrlCreateInput("", 140, 144, 60, 20)
GUICtrlCreateLabel("Flasher", 130, 60,)
GUICtrlCreateLabel("Zeit", 20, 88)
GUICtrlCreateLabel("Anzahl pro Sekunde", 20, 116)
GUICtrlCreateLabel("Je Dauer", 20, 144)
$radio1 = GUICtrlCreateRadio("Sekunden", 225,88)
$radio2 = GUICtrlCreateRadio("Minuten", 225, 116)
$buttonflgo = GUICtrlCreateButton("Flash", 90, 168, 120)
$buttonExit = GUICtrlCreateButton("Beenden", 160, 20, 120)


GUISetState(@SW_SHOW)
;-----------------------------------------------------------------------------------------
;						auf GUI reagieren
While 1
	$gui = GUIGetMsg()
	
	Select
		
	Case $gui = $buttonein
		if $switch=0 Then
			Neon(1)
			$switch=1
		ElseIF $switch=1 Then
			Neon(4)
			$switch=0
		EndIf
		
	Case $gui = $buttonflgo
		
		Select
		
		Case $radio2 > 0
			Flasher(Number ($inputflzeit))
		Case $radio2 > 0
			Flasher(60*Number ($inputflzeit))
			
		EndSelect
		
	Case $gui = $Gui_event_close
		Exit
		
	Case $gui = $buttonExit
		Exit
		
	EndSelect
WEnd

;-----------------------------------------------------------------------------------------
;					Der Ein- Aus-Schalter
Func Neon($modus)
	DllCall($HLptApi, "none", "Out32", "int", 0x378, "int", $modus )	;Schalt-Funktion
EndFunc

;-----------------------------------------------------------------------------------------
;						Flasher 
Func Flasher($zeit)
	
	for $xx=0 to $zeit*Number($inputflanzahl)
		neon(1)
		Sleep(Number($inputfldauer))
		neon(4)
		Sleep(1000/Number($inputflanzahl)-Number($inputfldauer))
	Next

EndFunc

