Cookies helfen bei der Bereitstellung dieser Website. Durch die Nutzung dieser Website erklären Sie sich damit einverstanden, dass Cookies gesetzt werden. Mehr erfahrenOK

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 3

Uploader:AdministratorSebastian
Datum/Zeit:08.09.2013 18:51:09

'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, ChannelNo
Dim As Integer bytesRead

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".<<
            Print "Frage Status ab..."
            Buffer = &b11000000
            PUT #1, , Buffer
            sleep 50
            bytesRead = 0
            Do
                If (Loc(1) > 0) Then
                    Get #1, , Buffer
                    Print "Antwort vom Geraet (" & (bytesRead+1) & ". Byte): " & Buffer & " dezimal (" & BIN(Buffer,8) & " binaer)"
                    bytesRead += 1
                End If
            Loop Until bytesRead >= 2
        ElseIf ((ASC(Taste) >= 49) AND (ASC(Taste) <= 54)) Then  '49 = 1, 54 = 6
            ChannelNo = ASC(Taste)-48
            PRINT "Toggle Kanal Nr. " & ChannelNo
            Buffer = (2^(ChannelNo-1)) Or &H40
            PUT #1, , Buffer
        ElseIf (Taste = "0") Then
            PRINT "Sende 0-Byte..."
            Buffer = 0
            PUT #1, , Buffer
        End If
    End If
    sleep 1
Loop Until Taste = Chr(27)  'Zum Beenden ESC druecken

Print
Print "Programm beendet."
End