fb:porticula NoPaste
Relaiskarte 2
Uploader: | Sebastian |
Datum/Zeit: | 08.09.2013 18:34:26 |
'Verwendung ausschliesslich auf eigene Gefahr!
'Der Autor des Code-Beispiels uebernimmt keinerlei Gewaehrleistung oder Haftung!
Const COMEinstellungen = "COM3:4800,N,8,1"
If (Open Com ( COMEinstellungen For Binary As #1 ) <> 0 ) Then
Print "Der Port konnte nicht geoeffnet werden!"
Sleep: End
Else
Print "COM-Port geoeffnet."
End If
Dim As String Taste
Dim As UByte Buffer
Print "Druecken Sie eine Taste von [1]-[6], um den jeweiligen Ausgang zu togglen,"
Print "oder druecken Sie [E], um die Zustaende von Relais und Eingaengen abzufragen."
Print "Druecken Sie [0], um ein komplettes Nullbyte zu senden."
Print "Mit [ESC] beenden Sie das Programm."
Print
DO
Taste = Inkey
If (Taste <> "") Then
If (UCase(Taste) = "E") Then
'Das Geraet auffordern, die Zustaende zu senden.
'Zitat: >>Um den Status zu erfragen ohne ihn zu aendern kann man das Status-Bit 8 mit dem Toggle-Bit 7 kombinieren und
'0b11000000 (= 0xC0) senden. Dies bedeutet: "Toggle nichts, und gib mir anschliessend den Status der Ports zurueck".<<
Buffer = &b11000000
PUT #1, , Buffer
ElseIf ((ASC(Taste) >= 49) AND (ASC(Taste) <= 54)) Then '49 = 1, 54 = 6
Buffer = (2^(ASC(Taste)-49)) Or &H40
PUT #1, , Buffer
ElseIf (Taste = "0") Then
Buffer = 0
PUT #1, , Buffer
End If
End If
If (Loc(1) > 0) Then
Do
Get #1, , Buffer
Print "Antwort vom Geraet: " & Buffer & " dezimal (" & BIN(Buffer,8) & " binaer)"
Loop While (Loc(1) > 0)
End If
sleep 1
Loop Until Taste = Chr(27) 'Zum Beenden ESC druecken
Print
Print "Programm beendet."
End