libnodave: was tun am Ende?

Kandiszucker

Level-1
Beiträge
19
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle!

Ich bin gerade am Testen der libnodave, weil ich sie u.U. in einem Projekt einsetzen will und zwar mit ISO-over-TCP.

Nun frage ich mich, was ich im Fall von Netzwerkproblemen machen soll.
Am Anfang macht man openSocket(...), danach in etwa:

di = daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
dc = daveNewConnection(di,2,0, 2); // insert your rack and slot here

Allokieren diese beiden Methoden irgendwelchen Speicher, den ich später (am Ende oder bei Fehlern) wieder freigeben muß (um mem leaks zu vermeiden) ?

Gleiche Frage stellt sich, wenn ich die Verbindung zur SPS regulär beende.

Ich wollte eigentlich so programmieren, dass die Verbindung zur SPS bei Bedarf aufgebaut wird, nach Gebrauch wird die Verbindung wieder beendet.

Das Spielchen sollte sich so "quasi endlos" wiederholen ......
 
Hallo an alle!

Ich bin gerade am Testen der libnodave, weil ich sie u.U. in einem Projekt einsetzen will und zwar mit ISO-over-TCP.

Nun frage ich mich, was ich im Fall von Netzwerkproblemen machen soll.
Am Anfang macht man openSocket(...), danach in etwa:

di = daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
dc = daveNewConnection(di,2,0, 2); // insert your rack and slot here

Allokieren diese beiden Methoden irgendwelchen Speicher, den ich später (am Ende oder bei Fehlern) wieder freigeben muß (um mem leaks zu vermeiden) ?
Ja. Freigeben:
in C mit free(dc), free(di)
von VBA,Pascal, Delphi oder PERL: daveFree(di), daveFree(dc)
.NET: Das macht der Destruktor des Wrapper-Objekts spätestens nach Programmende.

Anmerkung: daveFree ist nur ein "wrapper" für free(). Es ist nur da, damit man von anderen Sprachen darauf zugreifen kann. Es prüft NICHT ob der übergebene Zeiger gültig oder NULL oder wirklich ein daveXXX ist. Es ist nicht besser und nicht schlechter als free()...
Gleiche Frage stellt sich, wenn ich die Verbindung zur SPS regulär beende.

Ich wollte eigentlich so programmieren, dass die Verbindung zur SPS bei Bedarf aufgebaut wird, nach Gebrauch wird die Verbindung wieder beendet.

Das Spielchen sollte sich so "quasi endlos" wiederholen ......

daveDisconnectPLC()
daveDisconnectAdapter()
Die machen bei TCP/IP zwar nicht wirklich etwas, aber:
1.Dein Programm funktioniert genauso für MPI
2. Bei disconnectPLC könnte sich das ändern, das es doch mal was machen wird..
 
Zurück
Oben