Daten Speichern mittels DLL in 2 verschiedenen Dateien - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: Daten Speichern mittels DLL in 2 verschiedenen Dateien (/Thread-Daten-Speichern-mittels-DLL-in-2-verschiedenen-Dateien) |
Daten Speichern mittels DLL in 2 verschiedenen Dateien - Emittance - 21.07.2009 12:54 Hi, mein erster Beitrag hier, mal sehen ob dies gleich ein Erfolg wird. Ich speichere einmal die Konfiguration meines Systems und die Fehler jeweils in eine txt-Datei. Dies läuft über eine DLL die ich selbst geschrieben habe und die ich in LabVIEW aufrufe. Jetzt zu meinem Problem, wenn ich einen Fehler in meinem System habe wird dieser ohne Problem aufgezeichnet. Wenn ich dann eine Konfig. auslese und danach einen Fehler produziere wird dieser nicht mehr geschrieben. Die Konfig kann ich aber immer wieder lesen und überschreiben, aber die Fehlerdatei bleibt unangetastet. Erst nach kompletten LabVIEW-Neustart funktioniert die Fehleranalyse wieder bis ich was mit der Konfig. mache. Ich hoffe ihr konntet mir folgen Ich verstehe nicht so recht, warum LabVIEW dies dann blockt, nur weil ich mit einer anderen Datei gearbeitet habe. Die Funktionen in LabVIEW hängen eigentlich in keinster Weise zusammen, laufen halt nur im selben Panel. Vielleicht könnt ihr helfen? Ich habe jetzt mal nichts angehängt, weil es glaub ich nachvollziebar ist, wie eine "call libary function" in LabVIEW aussieht. Und einen "fstream" kennt ein c++'ler auch! gruß Daten Speichern mittels DLL in 2 verschiedenen Dateien - RoLe - 21.07.2009 13:39 ' schrieb:Jetzt zu meinem Problem, wenn ich einen Fehler in meinem System habe wird dieser ohne Problem aufgezeichnet. Wenn ich dann eine Konfig. auslese und danach einen Fehler produziere wird dieser nicht mehr geschrieben. Die Konfig kann ich aber immer wieder lesen und überschreiben, aber die Fehlerdatei bleibt unangetastet. Erst nach kompletten LabVIEW-Neustart funktioniert die Fehleranalyse wieder bis ich was mit der Konfig. mache.Ev. wäre es noch nützlich zu wissen, ob anders rum das Fehlverhalten auch da ist. (zuerst Konfig und danach Fehler) ? Was übergibst du der CLF? (nur Pfad und Typ) Wird die Datei(stream) in der DLL, jedesmal geöffnet, geschrieben und geschlossen, oder sind das einzelne Funktionen. Bin übrigens kein c++'ler Daten Speichern mittels DLL in 2 verschiedenen Dateien - Emittance - 21.07.2009 21:47 Hi, erstmal danke für die Antwort, Ich übergebe der CLF: ...für die Fehlerdiag. : "Fehler ja oder nein (0 or 1) ->int" und "FehlerID" ...für die Konfig: "Pfad -> string pointer" und "KonfigID->int" Die Fehlerdiagnose-Funktion baut sich den Pfad selbst, da ich immer in den selben Ordner kopiere und nur der Name sich je nach Datum ändert. Beide Funktionen öffnen und schließen den Stream mit jedem Funktionsaufruf, habe natürlich die Streams nicht gleich benannt. Das mit dem rumdrehen könnte kompliziert werden...hängt halt viel hinten dran, aber ich werde mal eine neue vi bauen, die das testet. gruß Daten Speichern mittels DLL in 2 verschiedenen Dateien - Emittance - 22.07.2009 17:29 Andersherum ist es das selbe! Kann LabVIEW nicht mit 2 Funktionen die einen Dateistream betreffen arbeiten? Daten Speichern mittels DLL in 2 verschiedenen Dateien - RoLe - 23.07.2009 08:56 ' schrieb:Andersherum ist es das selbe! Kann LabVIEW nicht mit 2 Funktionen die einen Dateistream betreffen arbeiten?Das kann ich dir nicht sagen, ich denke aber das LV das kann, wenn alles richtig ist Du bist sicher, das deine DLL richtig funktioniert? Ev. kannst du was mit der Thread Einstellung im CLF erreichen. Sonst bin ich auch ratlos. Daten Speichern mittels DLL in 2 verschiedenen Dateien - rolfk - 23.07.2009 09:42 ' schrieb:Andersherum ist es das selbe! Kann LabVIEW nicht mit 2 Funktionen die einen Dateistream betreffen arbeiten? Können schon aber dann müssen beide Stellen die das File öffnen dies beim öffnen auch zustehen. Da kann man bei Windows APIs (und den LabVIEW Nodes) den Share und Deny mode festlegen. Default ist der recht restriktive, ganz sicher bei Schreibzugriffen, da Du Dir ausmalen kannst was passiert wenn zwei Softwareteile unabängig voneinander gleichzeitig ins gleiche File schreiben wollen. Rolf Kalbermatter |