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!
Hi, danke dir, also, ich habe unter LabVIEW 7.1 auch Anpassen an Typ und handles by value ausgewählt, aber wenn man die Parametrierung der Funtionseinbindung beendet und sich dann die DLL Einbindung anschaut, stellt man fest, dass nicht ein Cluster Type sondern ein ganz normaler String Typ angezeigt wird. Kann es viel. sein, dass in LabVIEW 7.1 die Clustereinbindung von Funktionen gar nicht möglich ist?
Als erstes habe ich dass nämlich probiert diese Funktion zu verwenden, da diese aber nur einen leeren String zurückgab, aber sie in der dll auch als strict Type verwendet wird, war mir klar, dass das so nicht funktioniert und ich dachte, ach, was lang rummachen, nehme ich dir get_formatted Funktion, welche schon funktioniert aber sehr oft alles zum Absturtz bringt.
Eine beider Funktionen benötige ich aber unbedingt und zwar dauernd lauffähig.
Kann mir jemand anderes viel. hier im Forum das VI von Jens aus LV 8.0 in 7.1 übersetzen, dann würde ich sehen ob LV dies so darstellt oder auch wieder als String.
Oder weiß jemand wie man ein Cluster in 7.1 in einer DLL erstellt?
Genau richtig getroffen Jens, dass mit dem Cluster ist noch die Frage.
' schrieb:Hi, danke dir, also, ich habe unter LabVIEW 7.1 auch Anpassen an Typ und handles by value ausgewählt, aber wenn man die Parametrierung der Funtionseinbindung beendet und sich dann die DLL Einbindung anschaut, stellt man fest, dass nicht ein Cluster Type sondern ein ganz normaler String Typ angezeigt wird. Kann es viel. sein, dass in LabVIEW 7.1 die Clustereinbindung von Funktionen gar nicht möglich ist?
Dann häng doch noch ein Flatten To String dazwischen? Nur so testhalber.
Wichtig ist eigentlich nur, dass du in Anordung und Größe einen Speicherbereich übergibst, der der Typ-Definition in C entspricht. Das sollte bei der Umwandlung des Clusters per Flatten To String so funktionieren.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Hm, ich glaub du hast es jetzt nicht richtig verstanden!? Schau dir doch mal bitte nochmals den dritten screenshot oben von mir an!
Ich bekomme ja gar kein Cluster zurück also kann ich ja auch kein Cluster in einen String umwandeln.
Die Funktion gibt direkt einen String zurück, was ja falsch ist, welcher immer leer ist, weil ja der Funktionsaufruf ein Cluster ausgeben würde und nicht einen String.
Also wie bekommt man das hin, dass ein Cluster in 7.1 zurückgegeben wird?
Achso, noch später weitere Screenshots hinzugefügt:(Das habe ich dann nicht gesehen.
Aber Rückfrage, mein Vorschlag sieht doch anders aus, nicht String als Eingang verwenden!
Hast du mal den Cluster, so wie in meinem Screenshot beschrieben, nachgebaut? Und diesen dann als Eingangselement für den Funktions-DLL-Aufruf zu verwenden? Lässt sich ein solcher Cluster in 7.1 als Eingangselement verwenden?
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Ein Cluster erzeugen wie bei dir definiert und dann an den Eingang und dann auf String wandeln und am Ausgang ebenfalls wieder in umgekehrter Reihenfolge zurück wandeln!? Und dann schauen ob es funktioniert wenn ich die Funktion so verwende! Habe ich noch nicht.
Mach ich dann mal...
Glaub die Chancen das es so funzt stehen fifty / fifty!
Ein Cluster erzeugen wie bei dir definiert und dann an den Eingang und dann auf String wandeln und am Ausgang ebenfalls wieder in umgekehrter Reihenfolge zurück wandeln!?
Warum denn die ganze Wandlung vor und nach dem Aufruf? Das ergibt nur noch mögliche extra Endianprobleme bei im Cluster anwesenden Elementen die grösser als 1 Byte sind.
Wenn Du Adapt To Type ausgewählt hast kannst Du direkt einen Cluster an das Terminal anschliessen solange dieser Cluster keine LabVIEW Arrays oder Strings enthält und das tut dieser hier ja nicht.
' schrieb:Warum denn die ganze Wandlung vor und nach dem Aufruf? Das ergibt nur noch mögliche extra Endianprobleme bei im Cluster anwesenden Elementen die grösser als 1 Byte sind.
Wenn Du Adapt To Type ausgewählt hast kannst Du direkt einen Cluster an das Terminal anschliessen solange dieser Cluster keine LabVIEW Arrays oder Strings enthält und das tut dieser hier ja nicht.
Rolf Kalbermatter
@Rolf
Auf die (mglw. dumme) Idee bin ich nur gekommen, da Andi sagte, er kann keinen Cluster als Eingang in LV7.1 anschließen. Da ich momentan keinen Zugriff auf eine 7er Version habe, weiß ich nicht mehr, ob das geht oder nicht.
@Andi: Ich hoffe, du hast versucht, den Cluster direkt per AdaptToType anzuschließen?!
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Ja, jetzt sind wir auf demselben Dampfer.
Und um dann zu lesbaren Strings zu kommen, danach natürlich noch folgendes machen (exemplarisch hier nur für DriverVersion gezeigt):
[attachment=43517:Image01.png]
MfG, Jens
Hi Jens,
habe diese und andere mögliche Varianten nun ausprobiert, geben aber leider nichts zurück.
Parallel habe ich mit einem von Picotech (England) gemailt, hat nur ein Beispiel für die get_formatted_info Variante, welche ja immer abstürzt und zu der hier von dir beschriebenen Variante get_unit_info haben die gar nichts und können auch nicht mehr weiterhelfen....
Toller Support... da kauft man so Dinger und kommt nur wegen der doofen serial number nicht mehr weiter und könnte die Dinger fast in die Tonne kloppen.