Majestic_1987
Level-1
- Beiträge
- 270
- Reaktionspunkte
- 22
-> Hier kostenlos registrieren
Also, ich habe eine Frage zur Beckhoff ADS.Net DLL.
Ich möchte ereignisgesteuert Lesen. Dazu verbinde ich mich mit der SPS und erzeuge dann mit AddDeviceNotification eine Notification auf die Variable.
Diese ruft dann bei Änderung eine OnNotification-Methode auf.
Darin gibt es einen Parameter vom Typ AdsNotificationEventArgs mit Namen e.
Diesem wurde von der AddDeviceNotification ein Objekt übergeben, welches die Daten der Variable enthalten können soll.
Ich möchte jetzt, dass ich das mehr oder weniger universell verwenden kann.
Momentan caste ich das Ding passend:
ABER wie kann ich dafür sorgen, dass, egal welches Objekt ich übergebe, das richtige damit getan wird? Denn nur mit
kann ich nix tun, dann meckert der Compiler:
Einer Eigenschaft oder einem Indexer "TwinCAT.Ads.AdsNotificationEventArgs.UserData" kann nichts zugewiesen werden -- sie sind schreibgeschützt.
Wie kann ich C# dazu bringen, das Objekt korrekt zu behandeln?
Ich kann ja schlecht für jeden Typ, den es haben kann, eine eigene Behandlungsvorschrift programmieren...zumal mir ganz lieb wäre, der AddDeviceNotification-Methode ein Objekt vom Typ Bool zu übergeben und dann so zu casten:
was aber zu einem neuen Fehler führt:
Die linke Seite einer Zuweisung muss eine Variable, eine Eigenschaft oder ein Indexer sein.
Vielleicht kann mir jemand hier weiterhelfen. Danke schonmal im Voraus.
Ich möchte ereignisgesteuert Lesen. Dazu verbinde ich mich mit der SPS und erzeuge dann mit AddDeviceNotification eine Notification auf die Variable.
Diese ruft dann bei Änderung eine OnNotification-Methode auf.
Darin gibt es einen Parameter vom Typ AdsNotificationEventArgs mit Namen e.
Diesem wurde von der AddDeviceNotification ein Objekt übergeben, welches die Daten der Variable enthalten können soll.
Ich möchte jetzt, dass ich das mehr oder weniger universell verwenden kann.
Momentan caste ich das Ding passend:
Code:
((RadioButton)e.UserData).Checked = binRead.ReadBoolean();
Code:
e.UserData = binRead.ReadBoolean();
Einer Eigenschaft oder einem Indexer "TwinCAT.Ads.AdsNotificationEventArgs.UserData" kann nichts zugewiesen werden -- sie sind schreibgeschützt.
Wie kann ich C# dazu bringen, das Objekt korrekt zu behandeln?
Ich kann ja schlecht für jeden Typ, den es haben kann, eine eigene Behandlungsvorschrift programmieren...zumal mir ganz lieb wäre, der AddDeviceNotification-Methode ein Objekt vom Typ Bool zu übergeben und dann so zu casten:
Code:
(bool)e.UserData = binRead.ReadBoolean();
Die linke Seite einer Zuweisung muss eine Variable, eine Eigenschaft oder ein Indexer sein.
Vielleicht kann mir jemand hier weiterhelfen. Danke schonmal im Voraus.