Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Factory von eigenem Typ erstellen

OOP
2018-12-03
2018-12-04
  • OOP - 2018-12-03

    Hallo,
    ich habe mir die Element collection Example runter geladen.
    Die Beispiele sind für fertige Elemente wie Bspw. INT.

    Ich möchte jedoch nun einer Liste eine Element vom Typ. T_MY_TYPE (Eine Struktur) hinzufügen.
    In dem Beispiel. für die Factory finde ich nur etwas, wie man Daten erzeugt, welche ein ganzer FB sind.
    Ich möchte jedoch eine Struktur auf dem heap instanzieren. Geht das überhaupt?

    Den MyTypeElement FB habe ich wie im Factory Beispiel angelegt, allerdings konnte ich die passende Factpry nicht erzeugen.
    Erstens möchte ich gerne wie in der 3s library auch einen rückgabewert vom Typ Interface haben (bei der create Methode) und keinen pointer
    und zweitens natürlich auch direkt den entsprechenden Typ übergeben und nicht wie im Beispiel IData Interface.
    Wie im Bild unten zu sehen, wird bei der create Methode in der 3s library ja auch ein typ int übergeben. ich möchte also einen Typ: T_MY_TYPE übergeben.

    Gibt es kein Beispiel, wie man direkt einen MyElement und einen MyElementType fb erzeugt, welche man dann direkt einer liste mit Bspw. MyList.add hinzufügen kann?

    ie gesagt, denke es klemmt beim erzeugen der Factory und ich befürchte, dass das Beispiel der Factory library nichts mit dem zu tun hat, was ich für meine liste suche.

    Kann mir hier jemand weiter helfen?

    IMG: IntElementFactory.jpg

     
  • OOP - 2018-12-04

    Ich denke ich habe es schon hin bekommen.
    Der Daten FB ist anscheinen ja nur ein Wrapper, welcher ein Interface zu den Daten bereit stellt.
    Ist es einfach so gelöst, dass man dann diese Daten nicht beim Aufruf der creat Methode mehrfach kopieren muss, sondern dies nur in der prvInstInit machen msus?

     
  • OOP - 2018-12-04

    Könnte Man der Create Methode nicht auch einfach ein Interface zu seinem zu erzeugenden Element übergeben und
    nachdem die Instanz erzeugt wurde, weist man der neuen Instanz die Daten aus dem Interface zu?

    Dann könnte man sich den Datenwrapper zu IData sparen, oder?
    man würde dann natürlich nicht die rot umrandeten codestellen aufrufen, diese würden dann weg fallen.

    kann man das ohne bedenken machen?

    IMG: Create.jpg

     

Log in to post a comment.