Folgendes Problem habe ich:
Folgendes Script habe ich schon gebaut, funktioniert auch bis auf eine Kleinigkeit
Wenn die Variable $DF00 = 2 oder 3 soll alle 500ms bzw. 250ms der String $Rel_1_T an den seriellen port gesendet werden.
Aber irgend etwas will da nicht.
Hier mein Script:
Code
#include "Func_Serial.au3"
;Alle Konstanten müssen angepasst werden!
;Gemäss Spezifikationen der Karte!
Global Const $ComPort = 3
Global Const $Baudrate = 19200
Global Const $Bits = 8
Global Const $Parity = 0
Global Const $Stop = 0
Global Const $Rts = 1
;A= Aus, E= Ein, T= Toggle
Global Const $Init = String(Chr(1)&Chr(1)&Chr(1)&Chr(1))
Global Const $Alle_E = String(Chr(3)&Chr(1)&Chr(255)&Chr(253))
Global Const $Alle_A = String(Chr(3)&Chr(1)&Chr(0)&Chr(2))
Global Const $Rel_1_E = String(Chr(6)&Chr(1)&Chr(1)&Chr(6))
Global Const $Rel_1_A = String(Chr(7)&Chr(1)&Chr(1)&Chr(7))
Global Const $Rel_1_T = String(Chr(8)&Chr(1)&Chr(1)&Chr(8))
Global Const $Rel_2_E = String(Chr(6)&Chr(1)&Chr(2)&Chr(5))
Global Const $Rel_2_A = String(Chr(7)&Chr(1)&Chr(2)&Chr(4))
Global Const $Rel_2_T = String(Chr(8)&Chr(1)&Chr(2)&Chr(11))
Global $SendPort = _OpenCOMPort($ComPort, $Baudrate, $Bits, $Parity, $Stop, $Rts)
if $SendPort = -1 Then
MsgBox(16, "FEHLER", "Schnittstelle Com" & $ComPort & " konnte nicht geöffnet werden!")
Exit
EndIf
_SendSerialString($SendPort, $Init)
Sleep(250)
_SendSerialString($SendPort, $Rel_1_E)
Sleep(250)
_SendSerialString($SendPort, $Rel_2_E)
Sleep(250)
_SendSerialString($SendPort, $Rel_1_A)
Sleep(250)
_SendSerialString($SendPort, $Rel_2_A)
MsgBox(0,"INIT", "INIT ABGESCHLOSSEN", 5)
OnAutoItExitRegister("Ende")
Func Rel_1_T();Blinken
_SendSerialString($SendPort, $Rel_1_T)
EndFunc
While 1
;Player1
$DF0 = FileOpen("C:\DF_0.txt",0)
$DF00 = FileReadLine($DF0,1)
If $DF00 = "1" Then ;Wiedergabe
AdlibUnRegister("Rel_1_T")
_SendSerialString($SendPort, $Rel_1_E)
ElseIf $DF00 = "0" Then ;Stop
AdlibUnRegister("Rel_1_T")
_SendSerialString($SendPort, $Rel_1_A)
ElseIf $DF00 = "2" Then ;EOF
AdlibRegister("Rel_1_T",500)
ElseIf $DF00 = "3" Then ;FADE
AdlibRegister("Rel_1_T",250)
EndIf
FileClose($DF0)
;Player2
$DF1 = FileOpen("C:\DF_1.txt",0)
$DF01 = FileReadLine($DF1,1)
If $DF01 = "1" Then
_SendSerialString($SendPort, $Rel_2_E)
ElseIf $DF01 = "0" Then
_SendSerialString($SendPort, $Rel_2_A)
EndIf
FileClose($DF1)
WEnd
Func Ende()
FileClose($DF0)
FileClose($DF1)
_CloseCOMPort($SendPort)
EndFunc
Alles anzeigen
Danke euch schon mal