Christian Geschrieben May 8, 2012 at 06:45 Geschrieben May 8, 2012 at 06:45 Servus, hab mal wieder ein "noob" problem... Ich hab mir eine "WinForm" Application zusammengeclickt ;-). Ich habe auch schon meine ganzen Bricklets usw erfolgreich angebunden. Die Anbindung an "ipcon" geschieht in der Form1_Load-Funktion. Ich hab dann noch ein Callback fürs LCD registriert lcd.RegisterCallback(new BrickletLCD20x4.ButtonPressed(PressedCB)); Klappt auch super. ich kann schon mit folgendem Code eine MessageBox ausgeben die die Nummer des gedrückten Buttons enthält: void PressedCB(byte button) { if (InvokeRequired) { // We're not in the UI thread, so we need to call BeginInvoke BeginInvoke(new DelegatLCD(PressedCB), new object[] { button }); return; } MessageBox.Show(button.ToString()); } Ich würde jetzt aber z.B. gern mal das LCD-Backlight anschalten. Wie hab ich jetzt Zugriff auf die entsprechenden Methoden?? schon mal danke! Gruß Christian Zitieren
AuronX Geschrieben May 8, 2012 at 07:39 Geschrieben May 8, 2012 at 07:39 Dein LCD-Device sollte halt von dort aus erreichbar sein. Beispielsweise geht das, indem du das LCD-Device als Instanz-variable vorhälst: class MyCoolForm { private Device MyLCD; ... public void MyCoolForm_Load(someArgumentsIDontRemember) { ... MyLCD = new BrickletLCD20x4("aCooLU1D"); ... } ... void PressedCB(byte button) { MyLCD.DoWhatEverYouWant(); } } Hoffe das Beispiel hat geholfen die Idee klarzumachen ^^ P.S.: Ich habe auf GitHub bereits vorgeschlagen Callbacks per C#-Event umzusetzen (wirst du kennengelernt haben wenn du mit WinForms arbeitest). Dabei gibt es auch immer ein sender-object. Hier hättest du direkt die möglichkeit dieses zu nutzen, da das in dem Fall das LCD wäre. Zitieren
Christian Geschrieben May 8, 2012 at 08:05 Autor Geschrieben May 8, 2012 at 08:05 Vielen dank erst mal... also ich hab jetzt mal oben in der class folgendes eingefügt: private Device lcd; jetzt "meckert" er schon nicht mehr beim Objekt (?) lcd in meiner funktion. Aber er kennt die Methode BacklightOn scheinbar nicht. In der Autovervollständigung via STRG+Leer erscheint das auch nicht. Fehler 2 "Tinkerforge.Device" enthält keine Definition für "BacklightOn", und es konnte keine Erweiterungsmethode "BacklightOn" gefunden werden, die ein erstes Argument vom Typ "Tinkerforge.Device" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) D:\DOKUMENTE\Visual Studio 2010\Projects\Tinter Test V2\Tinter Test V2\Form1.cs 86 17 Tinter Test V2 Zitieren
photron Geschrieben May 8, 2012 at 08:12 Geschrieben May 8, 2012 at 08:12 Änder mal private Device lcd; in private BrickletLCD20x4 lcd; Zitieren
AuronX Geschrieben May 8, 2012 at 10:14 Geschrieben May 8, 2012 at 10:14 Ja sorry, da war ich vorhin unaufmerksam beim zusammentippen ^^ Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.