Programm zur Anstreuerung des VELLEMAN K8055 USB BOARD
Verfasst: 23.07.2010 09:25
Hallo liebe Purebasic-Freunde,
Ich habe eine Steuersoftware für das VELLEMAN K8055 USB EXPERIMENT INTERFACE BOARD geschrieben. Vielleicht kennt ja der ein oder andere diese Platine. Gibt es bereits seit 2003, habe sie zufällig auf dem Dachboden wiedergefunden.
Ich bin Elektrotechniker und möchte damit ein selbstgebautes Lichteffektgerät ansteuern.
Folgender Quellcode (v0.3) funktioniert soweit schon ganz gut, so dass ich die digitalen Ausgänge) 8 LED´s ein und ausschalten kann.
Jedoch brauche ich ein wenig Unterstützung, denn die Lauflicht-Funktion stürzt bei mir während des viertes Durchlaufs ab. Ich benutze Windows 7. Habe das gleiche problem auch auf einem Windows XP Rechner, dort bricht das Programm bereits nach 2 Durchläufen ab.
Mein Purebasic Programm benutzt die K8055D.DLL, welche dem Board beigefügt war.
Herstellerseite mit Downloads für das K8055:
http://www.vellemanprojects.eu/distribu ... &id=351346
Und nun mein Quellcode:
Vielleicht fällt jemanden ja ein Fehler auf
Gruß, Darkwolf
Ich habe eine Steuersoftware für das VELLEMAN K8055 USB EXPERIMENT INTERFACE BOARD geschrieben. Vielleicht kennt ja der ein oder andere diese Platine. Gibt es bereits seit 2003, habe sie zufällig auf dem Dachboden wiedergefunden.
Ich bin Elektrotechniker und möchte damit ein selbstgebautes Lichteffektgerät ansteuern.
Folgender Quellcode (v0.3) funktioniert soweit schon ganz gut, so dass ich die digitalen Ausgänge) 8 LED´s ein und ausschalten kann.
Jedoch brauche ich ein wenig Unterstützung, denn die Lauflicht-Funktion stürzt bei mir während des viertes Durchlaufs ab. Ich benutze Windows 7. Habe das gleiche problem auch auf einem Windows XP Rechner, dort bricht das Programm bereits nach 2 Durchläufen ab.
Mein Purebasic Programm benutzt die K8055D.DLL, welche dem Board beigefügt war.
Herstellerseite mit Downloads für das K8055:
http://www.vellemanprojects.eu/distribu ... &id=351346
Und nun mein Quellcode:
Vielleicht fällt jemanden ja ein Fehler auf
Gruß, Darkwolf
Code: Alles auswählen
;
;*******************************************************
;*** --- K8055PURE v0.3.220710 --- ***
;*** ERSTELLT MIT PUREBASIC v4.40 VON DARKWOLF ***
;*******************************************************
;*** BEISPIEL-PROGRAMM ZUR ANSTEUERUNG DES VELLEMAN ***
;*** K8055 USB-INTERFACE BOARDS MITTELS PUREBASIC ***
;*** HINWEIS: DIE K8055D.DLL MUSS IMMER DABEI SEIN ***
;*******************************************************
;*** VERWENDETE KARTEN-ADRESSE = 0 ***
;*** (STECKBRÜCKEN SK5 UND SK6 SIND GESETZT) ***
;*******************************************************
; ****** EINBINDEN DER K8055D.DLL UND INITIALISIERUNG DER K8055-PLATINE ******
OpenLibrary(0, "K8055D.dll")
CallCFunction(0, "OpenDevice",0)
; ****** ERSTELLUNG DES PROGRAMM-FENSTERS ******
If OpenWindow(0, 0, 0, 500, 300, "K8055PURE v0.3 (dArKwOLf!)", #PB_Window_ScreenCentered | #PB_Window_SystemMenu |
#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
; ****** DIE RAHMEN, SCHALTER, AUSWAHLFELDER ETC. WERDEN ERSTELLT ******
Frame3DGadget(10,10,10,110,120,"Verbindung K8055")
Frame3DGadget(11,130,10,110,120,"Digitale Ausgänge")
ButtonGadget(1,140,30,80,20,"Alle ein")
ButtonGadget(2,140,60,80,20,"Alle aus")
ButtonGadget(3,140,90,80,20,"Lauflicht")
CheckBoxGadget(4, 20, 30, 80 , 20, "Jumper SK5")
CheckBoxGadget(5, 20, 50, 80 , 20, "Jumper SK6")
ButtonGadget(6,20,80,80,20,"Verbinden")
; ****** DAS DATEI-MENÜ DES PROGRAMM-FENSTERS WIRD ERSTELLT ******
If CreateMenu(0, WindowID(0))
MenuTitle("Datei")
MenuItem(1, "Verbinden")
MenuItem(2, "Trennen")
MenuBar()
MenuItem(3, "Schließen")
MenuTitle("Hilfe")
MenuItem(4, "K8055PURE Hilfe")
MenuBar()
MenuItem(5, "Über K8055PURE")
EndIf
; ****** ENDLOS-SCHLEIFE, BIS DAS PROGRAMM DURCH SCHLIEßEN BEENDET WIRD ******
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 1
CallCFunction(0, "SetAllDigital")
Case 2
CallCFunction(0, "ClearAllDigital")
Case 3
CallCFunction(0, "WriteAllDigital",1)
Delay(100)
CallCFunction(0, "WriteAllDigital",2)
Delay(100)
CallCFunction(0, "WriteAllDigital",4)
Delay(100)
CallCFunction(0, "WriteAllDigital",8)
Delay(100)
CallCFunction(0, "WriteAllDigital",16)
Delay(100)
CallCFunction(0, "WriteAllDigital",32)
Delay(100)
CallCFunction(0, "WriteAllDigital",64)
Delay(100)
CallCFunction(0, "WriteAllDigital",128)
Delay(100)
CallCFunction(0, "ClearAllDigital")
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case 1
MessageRequester("Information", "01 - Command not implented error", 0)
Case 2
MessageRequester("Information", "02 - Command not implented error", 0)
Case 3
Quit=1
Case 4
If OpenWindow(1, 0, 0, 350, 180, "K8055PURE Hilfe", #PB_Window_ScreenCentered)
TextGadget (41, 10, 10, 350 , 20, "Die Hilfefunktion dieser Software steht leider noch nicht zur
Vefügung!")
ButtonGadget(42,130,150,80,20,"OK")
Repeat : Until WaitWindowEvent () = #PB_Event_Gadget
CloseWindow(1)
Else
MessageRequester("Fehler", "Kann Fenster nicht Initialisieren...", 0)
EndIf
Case 5
If OpenWindow(2, 0, 0, 350, 180, "Über K8055PURE", #PB_Window_ScreenCentered)
TextGadget (51, 10, 10, 340 , 20, "K8055PURE v0.3 - erstellt im Juli 2010 von dArKwOLf!")
TextGadget (52, 10, 40, 340 , 20, "Die K8055D.DLL (von Velleman) ist zum Betrieb erforderlich!")
TextGadget (53, 10, 70, 340 , 40, "Die Benutzung meiner Programme erfolgt trotz gewissenhafter
Programmierung auf eigene Gefahr.")
TextGadget (54, 10, 110, 340 , 40, "Das Programm darf kostenlos verwendet und weitergegeben werden.
Verbesserungen an dem Quellcode dieser Software sind erwünscht.")
ButtonGadget(55,130,150,80,20,"OK")
Repeat : Until WaitWindowEvent () = #PB_Event_Gadget
CloseWindow(2)
Else
MessageRequester("Fehler", "Kann Fenster nicht Initialisieren...", 0)
EndIf
EndSelect
Case #PB_Event_CloseWindow
Quit=1
EndSelect
Until Quit=1
; ****** TRENNEN DER VERBINDUNG ZUR K8055-PLATINE UND ENTLADEN DER K8055D.DLL ******
CloseWindow(0)
CallCFunction(0, "CloseDevice")
CloseLibrary(0)
; ****** ALTERNATIVE MELDUNG, FALLS PROGRAMM-FENSTER NICHT ERSTELLT WERDEN KANN ******
Else
MessageRequester("Fehler", "Kann Fenster nicht Initialisieren...", 0)
EndIf
End