Enumeration #port #bit1 #bit2 #bit3 #bit4 #bit5 #bit6 #bit7 #bit8 #alle_an #alle_aus #senden #Text_1 #com #Text_2 #verbinden #fenster EndEnumeration Procedure senden(bit1,bit2,bit3,bit4,bit5,bit6,bit7,bit8) Dim bit(9) bit(1) = bit1 bit(2) = bit2 bit(3) = bit3 bit(4) = bit4 bit(5) = bit5 bit(6) = bit6 bit(7) = bit7 bit(8) = bit8 For y =1 To 8 If bit(y) = 1 SetSerialPortStatus(#port,#PB_SerialPort_DTR,1) ;Pin 4 --- Data EndIf SetSerialPortStatus(#port,#PB_SerialPort_RTS,1) ;Pin 7 --- Clock SetSerialPortStatus(#port,#PB_SerialPort_RTS,0) ;Pin 7 --- Clock SetSerialPortStatus(#port,#PB_SerialPort_DTR,0) ;Pin 4 --- Data Next y SetSerialPortStatus(#port,#PB_SerialPort_TXD,1) ;Pin 3 --- Strobe SetSerialPortStatus(#port,#PB_SerialPort_TXD,0) ;Pin 3 --- Strobe EndProcedure Procedure fenster() If OpenWindow(#fenster, 381, 220, 179, 273, "Register-Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered ) CheckBoxGadget(#bit1, 10, 10, 40, 20, "Bit1") CheckBoxGadget(#bit2, 10, 30, 40, 20, "Bit2") CheckBoxGadget(#bit3, 10, 50, 40, 20, "Bit3") CheckBoxGadget(#bit4, 10, 70, 40, 20, "Bit4") CheckBoxGadget(#bit5, 10, 90, 40, 20, "Bit5") CheckBoxGadget(#bit6, 10, 110, 40, 20, "Bit6") CheckBoxGadget(#bit7, 10, 130, 40, 20, "Bit7") CheckBoxGadget(#bit8, 10, 150, 40, 20, "Bit8") ButtonGadget(#alle_an, 70, 10, 100, 20, "Alle Ausgänge an") ButtonGadget(#alle_aus, 70, 40, 100, 20, "Alle Ausgänge aus") ButtonGadget(#senden, 70, 70, 100, 100, "Übernehmen") TextGadget(#Text_1, 10, 250, 160, 20, "www.strippenstrolch.de", #PB_Text_Center) StringGadget(#com, 120, 180, 50, 20, "COM1") TextGadget(#Text_2, 10, 185, 100, 20, "Deine Schnittstelle:") ButtonGadget(#verbinden, 10, 205, 165, 30, "Verbinden", #PB_Button_Default | #PB_Button_Toggle) EndIf EndProcedure fenster() Repeat event = WaitWindowEvent() Select event Case #PB_Event_CloseWindow ende = 1 Case #PB_Event_Gadget Select EventGadget() Case #senden If verbunden If GetGadgetState(#bit1) bit1 = 1 Else bit1 = 0 EndIf If GetGadgetState(#bit2) bit2 = 1 Else bit2 = 0 EndIf If GetGadgetState(#bit3) bit3 = 1 Else bit3 = 0 EndIf If GetGadgetState(#bit4) bit4 = 1 Else bit4 = 0 EndIf If GetGadgetState(#bit5) bit5 = 1 Else bit5 = 0 EndIf If GetGadgetState(#bit6) bit6 = 1 Else bit6 = 0 EndIf If GetGadgetState(#bit7) bit7 = 1 Else bit7 = 0 EndIf If GetGadgetState(#bit8) bit8 = 1 Else bit8 = 0 EndIf senden(bit1,bit2,bit3,bit4,bit5,bit6,bit7,bit8) EndIf Case #alle_an If verbunden senden(1,1,1,1,1,1,1,1) SetGadgetState(#bit1,1) SetGadgetState(#bit2,1) SetGadgetState(#bit3,1) SetGadgetState(#bit4,1) SetGadgetState(#bit5,1) SetGadgetState(#bit6,1) SetGadgetState(#bit7,1) SetGadgetState(#bit8,1) EndIf Case #alle_aus If verbunden senden(0,0,0,0,0,0,0,0) SetGadgetState(#bit1,0) SetGadgetState(#bit2,0) SetGadgetState(#bit3,0) SetGadgetState(#bit4,0) SetGadgetState(#bit5,0) SetGadgetState(#bit6,0) SetGadgetState(#bit7,0) SetGadgetState(#bit8,0) endif Case #verbinden If GetGadgetState(#verbinden) com$ = GetGadgetText(#com) If OpenSerialPort(#port, com$, 300, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024) ; Alle Pins auf Null setzten (notwendig, da diese beim Initialisieren geschaltet werden) ==> SetSerialPortStatus(#port,#PB_SerialPort_RTS,0) ;Pin 7 --- Clock SetSerialPortStatus(#port,#PB_SerialPort_TXD,0) ;Pin 3 --- Strobe SetSerialPortStatus(#port,#PB_SerialPort_DTR,0) ;Pin 4 --- Data verbunden=1 SetGadgetText(#verbinden,"Trennen") Else MessageRequester("Fehler","Konnte nicht mit '"+com$+"' verbinden...") verbunden=0 SetGadgetState(#verbinden,0) SetGadgetText(#verbinden,"Verbinden") EndIf Else If verbunden CloseSerialPort(#port) verbunden = 0 SetGadgetText(#verbinden,"Verbinden") SetGadgetState(#verbinden,0) EndIf EndIf EndSelect EndSelect Until ende = 1 If verbunden = 1 CloseSerialPort(#port) EndIf End ; IDE Options = PureBasic 4.41 (Windows - x86) ; CursorPosition = 148 ; FirstLine = 153 ; Folding = - ; EnableXP ; UseIcon = E:\Dokumente und Einstellungen\stephan\Desktop\strolch.ico