Dit is het gemodificeerde script van cs labs voor een 3 kleuren lamp. Ik probeer het ook voor andere controllers werkbaar te maken. Wat doe ik hier fout?
Sub Main
If Not GetOEMLED(800) Then
'Run ----------------------------------------------
If GetOEMLED(804) And Not GetOEMLED(80) Then
ActivateSignal(OUTPUT2)
DeactivateSigal(OUTPUT3)
DeactivateSigal(OUTPUT4)
If GetOEMLED(804) Then
End If
'Paused ----------------------------------------------
If Not GetOEMLED(804) And GetOEMLED(80) Then
DeactivateSigal(OUTPUT2)
ActivateSigal(OUTPUT3)
DeactivateSigal(OUTPUT4)
End If
'Idle ----------------------------------------------
If Not GetOEMLED(804) And Not GetOEMLED(80) Then
DeactivateSigal(OUTPUT2)
DeactivateSigal(OUTPUT3)
ActivateSignal(OUTPUT4)
End If
Else
'Reset ----------------------------------------------
CurrentTime = GetTickCount
If CurrentTime > (LastTime + 500) Then
DeactivateSigal(OUTPUT2)
DeactivateSigal(OUTPUT3)
DeactivateSigal(OUTPUT4)
End If
If CurrentTime > (LastTime + 1000) Then
LastTime = CurrentTime
DeactivateSigal(OUTPUT2)
DeactivateSigal(OUTPUT3)
ActivateSignal(OUTPUT4)
End If
If LastTime > CurrentTime Then
LastTime = CurrentTime
End If
End Sub
'-----------------------------------------------------------------------------------------------
Public Declare Function GetTickCount Lib "kernel32.dll" () As Long
'-----------------------------------------------------------------------------------------------
Dim CurrentTime As Long
Private LastTime As Long
'---------------------------------- Config -----------------------------------------------------
Const RunLamp = 0 'Output number CSMIO / IP -- Lamp Run
Const PausedLamp = 2 'Output number CSMIO / IP -- Lamp Paused
Const IdleResetLamp = 1 'Output number CSMIO / IP -- Lamp Idle / Reset
'-----------------------------------------------------------------------------------------------
Sub Main
If Not GetOEMLED(800) Then
'Run ----------------------------------------------
If GetOEMLED(804) And Not GetOEMLED(80) Then
Call SetCsmioOut(RunLamp, true)
Call SetCsmioOut(PausedLamp, false)
Call SetCsmioOut(IdleResetLamp, false)
End If
'Paused ----------------------------------------------
If Not GetOEMLED(804) And GetOEMLED(80) Then
Call SetCsmioOut(RunLamp, false)
Call SetCsmioOut(PausedLamp, true)
Call SetCsmioOut(IdleResetLamp, false)
End If
'Idle ----------------------------------------------
If Not GetOEMLED(804) And Not GetOEMLED(80) Then
Call SetCsmioOut(RunLamp, false)
Call SetCsmioOut(PausedLamp, false)
Call SetCsmioOut(IdleResetLamp, true)
End If
Else
'Reset ----------------------------------------------
CurrentTime = GetTickCount
If CurrentTime > (LastTime + 500) Then
Call SetCsmioOut(RunLamp, false)
Call SetCsmioOut(PausedLamp, false)
Call SetCsmioOut(IdleResetLamp, false)
End If
If CurrentTime > (LastTime + 1000) Then
LastTime = CurrentTime
Call SetCsmioOut(RunLamp, false)
Call SetCsmioOut(PausedLamp, false)
Call SetCsmioOut(IdleResetLamp, true)
End If
If LastTime > CurrentTime Then
LastTime = CurrentTime
End If
End If
End Sub
'-----------------------------------------------------------------------------------------------
Public Sub SetCsmioOut (ByVal n As Integer, ByVal state As Boolean)
If(state) Then
SetOutBit(90, n)
Else
ResetOutBit(90, n)
End If
End Sub
'-----------------------------------------------------------------------------------------------