Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Relaiskarte 2

Uploader:AdministratorSebastian
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