INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Global Variable in Ereignis Struktur hinzufügen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

20.10.2022, 07:08 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2022 07:09 von GerdW.)
Beitrag #21

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Global Variable in Ereignis Struktur hinzufügen
Hallo Martin,

Zitat:das Beispiel für die ETH Module, darf man GerdW auch nicht zeigen
Dieses Code-Snippet war mir auch schon aufgefallen.
Ich habe das unter "Code-Obfuscation" verbucht, passend zu deinem Kommentar:
Zitat:Dass … so etwas liefert, ist nicht beschrieben und schon gar nicht, was man damit anfangen kann.

Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2022, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2022 15:54 von Natalie1984.)
Beitrag #22

Natalie1984 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Jun 2019

2016
-
DE



RE: Global Variable in Ereignis Struktur hinzufügen
Hi Martin,

beim Starten, bekomme ich diesen Fehler im Anhang.
Gegenwärtig funktioniert es mit der VB.NET und der VB6 Code.

Dieses Teil wie in VB.NET muss da sein lt. Lieferant Support:
Code:
Private Sub _server_OnRead(device As Device, data As ReadData) Handles YMcom.OnRead
        Dim line As String = $"Device Read (Addresse {device.Adresse}): {data.RelaisCount1}"


        Invoke(Sub()
                   Dim index As Integer = ComboBox1.SelectedIndex
                   Dim text As String = ComboBox1.Text


                   If (index > -1 AndAlso Not String.IsNullOrEmpty(text)) Then

                       Dim selectedAdresse As Integer = Convert.ToInt32(text)

                       Debug.WriteLine("selected2: " & selectedAdresse)

                       If (selectedAdresse = device.Adresse) Then
                           _UpdateChechboxes(data)
                       End If
                   End If

               End Sub)

        Debug.WriteLine(line)


    End Sub

Nach dem Starten, gibt die Hardware die Adresse zurück und diese muss dann angenommen werden.

Pfuuuuuuuuuuuh, alles so schwer :-)
Bin halt immer noch beim Experimentieren :-)


VG
Natalie


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2022, 16:08
Beitrag #23

Natalie1984 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Jun 2019

2016
-
DE



RE: Global Variable in Ereignis Struktur hinzufügen
Hi nochmal!

Ich denke mal mit dem Callback register muss etwas gemacht werden,
denn im VB.NET code wird auch das Event OnRead getriggert.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2022, 17:08
Beitrag #24

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Global Variable in Ereignis Struktur hinzufügen
Hi Nathalie,

ich glaub niucht, dass die Callbacks gebraucht werden. Die sind ja nur dazu da um festzustellen, ob ein Gerät connected und/oder disconnected wurde. So passiert das auch bei den ETH Modulen. Das schließen/öffnen eines Relais läuft nicht über irgendwelche Callbacks (wozu auch).

Die Fehlermeldung sagt ja auch nur, dass er das "Device" nicht gefunden hat. Vielleicht braucht der ganze Quatsch der da um ein simples Relaisboard herum gestrickt wurde, einfach ein bisschen viel Zeit? Vielleicht funktioniert das auch nicht mit dem Server Start.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2022, 10:56
Beitrag #25

Natalie1984 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Jun 2019

2016
-
DE



RE: Global Variable in Ereignis Struktur hinzufügen
(20.10.2022 17:08 )Martin.Henz schrieb:  Vielleicht braucht der ganze Quatsch der da um ein simples Relaisboard herum gestrickt wurde, einfach ein bisschen viel Zeit?

Meinst du die Hardware oder das was im Blockdiagramm ist?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2022, 19:01
Beitrag #26

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Global Variable in Ereignis Struktur hinzufügen
Wenn ich das, was auf der Yamutec-Seite steht, richtig interpretiere, ist offensichtlich folgendes norwendig:

Von der Yamutec-Seite:
Code:
// ... das automatische Erkennen der Hardware durch das System und das Ein- und Ausschalten der Relais.

Private Sub TestForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load

YMcom = New DeviceServer With
  {
.DeviceConnectedCallback = AddressOf DeviceConnectedCallback,
.DevicesChangedCallback = AddressOf DevicesChangedCallback,
.DeviceDisconnectedCallback = AddressOf DeviceDisconnectedCallback,
.ReadAllDevicesContinuously = True,
.ReadAllDevicesInterval = 1,
.ReadCallback = AddressOf ReadCallback
}

End Sub

// SendByte1 = 1 = Relais einschalten / SendByte1 = 0 = Relais ausschalten

Private Async Sub SchaltZustandSenden()
Try
  Await YMcom.SEND_OUTPUT_STATUS_8(ComboBox1.Text, SendeByte1)
Catch ex As Exception
  WriteOutput.Text = „error or no device found by adresse“ & „/“ & ex.Message
End Sub

Das heißt dann wohl offensichtlich:
  • Über den Callback DeviceConnectedCallback wird dem Programm mitgeteilt, dass ein Device connected wurde - und welche Adresse das Device hat. Steht gemäß eines anderen Eintrags dann in ComboBox1.Text.
  • Mittels der gemeldeten Adresse kann SEND_OUTPUT_STATUS_8 nun Relais schalten - selbstverständlich ohne Callback.
  • Ein weiterer Callback (DeviceDisconnectedCallback ?) teilt dem Programm mit, dass das Device disconnected wurde. Das Programm sollte nun nicht mehr auf die bisher bekannte Adresse schreiben.

Ich vermute nun, dass folgendermaßen vorgegangen werden muss:
  • VI schreiben für Callback DeviceConnectedCallback. Tritt der Callback dann ein, hat jemand die Relais-Karte eingesteckt. Ab jetzt ist die Adresse gültig.
  • VI schreiben zum Schalten von Relais: verwendet wird die im Callback übergebene Adresse.
  • VI schreiben für Callback DeviceDisconnectedCallback. Ab jetzt ist die Adresse aus DeviceConnectedCallback ungültig.

Wer schreibt jetzt das Callback-VI?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2022, 13:00 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2022 13:04 von Martin.Henz.)
Beitrag #27

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Global Variable in Ereignis Struktur hinzufügen
(21.10.2022 10:56 )Natalie1984 schrieb:  Meinst du die Hardware oder das was im Blockdiagramm ist?
Wenn du meinen Versuch einfach so startest, dann kommt nach StartAsync ziemlich schnell der erste Schreibvorgang. Wenn der Server aber noch Zeit braucht um festzustellen, ob die Hardware vorhanden ist, dann bekommst du logischerweise erst einmal die Meldung, dass das Board nicht existiert.

BTW: Vielleicht habe ich es überlesen: Welches Board hast du genau, bzw. wie viele Relais sind da drauf?
Wenn es mehr als 4 Relais hat, dann müsste mein VI auch noch an das verwendete Board angepasst werden.


Hallo IchSelbst,

egal, was man von den Callbacks hält: da fehlt noch StartAsync was laut API Beschreibung notwendig ist. Das muss auch irgendwo in dem VB Code stecken.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2022, 17:14
Beitrag #28

Natalie1984 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Jun 2019

2016
-
DE



RE: Global Variable in Ereignis Struktur hinzufügen
(21.10.2022 19:01 )IchSelbst schrieb:  Ich vermute nun, dass folgendermaßen vorgegangen werden muss:
  • VI schreiben für Callback DeviceConnectedCallback. Tritt der Callback dann ein, hat jemand die Relais-Karte eingesteckt. Ab jetzt ist die Adresse gültig.
  • VI schreiben zum Schalten von Relais: verwendet wird die im Callback übergebene Adresse.
  • VI schreiben für Callback DeviceDisconnectedCallback. Ab jetzt ist die Adresse aus DeviceConnectedCallback ungültig.

Wer schreibt jetzt das Callback-VI?

Ich würde es gerne schreiben wollen, wenn Ihr mich dabei unterstützen würdet.
Wie könnte ich da anfangen?

VG
Natalie
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2022, 07:45
Beitrag #29

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Global Variable in Ereignis Struktur hinzufügen
(24.10.2022 17:14 )Natalie1984 schrieb:  Wie könnte ich da anfangen?
Leider hab ich kein vorzeigbares Muster. Meine .NET-DLLs sind kundenspezifisch und nicht zur Veröffentlichung geeignet.

Du kannst mal wie folgt anfangen:
Suche aus der DLL den Konstruktor heraus, der beim Anschuss am Referenzeingang des Knotens "Ereignis-Callback registrieren" in der ersten Zeile des Knotens einen Text erscheinen lässt, der auf eine Callback-Funktionalität schließen lässt.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2022, 17:11
Beitrag #30

Natalie1984 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Jun 2019

2016
-
DE



RE: Global Variable in Ereignis Struktur hinzufügen
(26.10.2022 07:45 )IchSelbst schrieb:  
(24.10.2022 17:14 )Natalie1984 schrieb:  Wie könnte ich da anfangen?
Leider hab ich kein vorzeigbares Muster. Meine .NET-DLLs sind kundenspezifisch und nicht zur Veröffentlichung geeignet.

Du kannst mal wie folgt anfangen:
Suche aus der DLL den Konstruktor heraus, der beim Anschuss am Referenzeingang des Knotens "Ereignis-Callback registrieren" in der ersten Zeile des Knotens einen Text erscheinen lässt, der auf eine Callback-Funktionalität schließen lässt.

Hi,

meinst du so etwa?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Wink Benutzerdefinirtes Ereignis mit Arduino jennylena 1 3.276 15.02.2018 09:53
Letzter Beitrag: IchSelbst
  Ereignis Struktur 911tom 9 6.944 20.12.2017 20:57
Letzter Beitrag: GerdW
  Wie Toolkits hinzufügen Heber 1 2.947 28.06.2017 09:09
Letzter Beitrag: GerdW
  Ereignis "Wertänderung" verzögern aw 3 4.894 11.08.2016 16:08
Letzter Beitrag: Trinitatis
  Vorhandenem Cluster Elemente hinzufügen PeteFlosse 5 7.532 26.07.2016 15:23
Letzter Beitrag: jg
  case in state machine hinzufügen Shieva 6 7.034 14.09.2015 13:33
Letzter Beitrag: NoWay

Gehe zu: