LabVIEWForum.de
Aufruffehler einer .Net - Method - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: Aufruffehler einer .Net - Method (/Thread-Aufruffehler-einer-Net-Method)



Aufruffehler einer .Net - Method - GenoX - 12.11.2015 12:49

Hallo zusammen,

da mein Problem evtl. etwas verworren ist, versuch ich das mal möglichst strukturiert zu erklären.

Also ich nutze LV2014 SP1 und automatisiere damit einen Teststand. Ein Teil davon ist die analoge Ansteuerung einer HSQ. Um möglichst flexibel zu sein, habe ich mir
ein Evaluation Kit zugelegt, bei dem die Pins frei konfigurierbar sind. Da der Hersteller seine eigene Software bereitstellt, gibt es keine vorgefertigten VI's für das Board.
Der Hersteller hat mir dann für LV 3 .NET-dlls zugesendet. Diese funktionieren eigentlich auch wunderbar, also ich kann mit dem Board kommunizieren (Register auslesen/beschreiben, usw.).

Weil das Board aber 20 Pins plus zusätzliche Funktionen hat, wäre es sehr umständlich alle Register per "Handarbeit" zu konfigurieren. Dafür hat der Hersteller eine
Konfigurationssoftware bereitgestellt, die eine .csv-Konfigurationsdatei erstellt, welche dann in die Register geladen werden kann.

Über die Hersteller-Software funktioniert das auch, aber wenn ich das gleiche über LV versuche, bekomme ich folgenden Fehler angezeigt:

Error 1172 occurred at Invoke Node
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.
Inner Exception: System.NullReferenceException: Die Objektreferenz wurde nicht auf eine Objektinstanz festgelegt.


Mit der Erklärung kann ich leider nicht sonderlich viel anfangen. Die .csv-Datei habe ich mal angehangen. Sie befindet sich auch im selben Ordner wie die VI und die dlls.
Wenn ich die Datei per Hersteller-Software auf das Board lade, macht das Programm folgendes:

MAX11300.ReadPIXIConfigFile(C:\...\MAX11300Register_1.csv)...
MAX11300.ReadPIXIConfigFile Int16Converter().ConvertFromString() threw Exception: Address ist kein gültiger Wert für Int16.
nameStr = "Name"
addrStr = "Address"
initialValueStr = "Value"
descriptionStr = "Description"
MAX11300.ReadPIXIConfigFile(C:\...\MAX11300Register_1.csv) closed;
determining init order...

Ansonsten steht in der Dokumentation des Herstellers zu der entsprechenden .NET-Method nur Folgendes:

Read Configuration Registers from a comma-spaced value file.
IOS requirement: function DetermineInitSequenceFromCache(out regAddrInitSequence) determines register init order based on IOS spec algorithm
Parameters: filename: pathname to the comma-spaced value file to read e.g. "MAX11300Register.csv"
Returns true on success

Bzgl. des IOS requirement habe ich leider keine Ahnung, da es aber über die Hersteller-Software funktioniert, sollte es ja vmtl. nicht daran liegen.

Auch wenn es vmtl. nicht allzu viel bringt, habe ich mal noch ein Screenshot von dem Block angehängt.

Ich hoffe, dass meine Ausführungen halbwegs verständlich waren und jemand zumindest eine Idee zur Lösung des Problems hat.

Vielen Dank schonmal im Voraus.

Grüße,
GenoX


RE: Aufruffehler einer .Net - Method - jg - 13.11.2015 09:21

Schuss ins Blaue:
Erwartet deine .NET DLL den Pfad vielleicht in einer anderen Schreibweise? Vielleicht Slash anstatts Backslash?

Gruß, Jens


RE: Aufruffehler einer .Net - Method - GenoX - 16.11.2015 14:37

Hallo Jens,

erstmal danke für die Antwort. Habs gerade versucht, hat aber leider nicht funktioniert.

Habe mittlerweile auch vom Support folgende Antwort erhalten:

"...
I'm unable to replicate the reported issue
(System.NullReferenceException exception when loading specific
*.csv file). Tried using both EN and DE locale settings, as I
notice the date format in the attached file is not EN-USA locale,
but was still unable to replicate issue in debugger.

I'm using Windows 7/64-bit pro, with usually the EN locale
setting but also testing with DE (German) locale setting to check
for issues with USA vs EU numeric values (USA uses "." and EU
uses "," as decimal point). I thought perhaps the date was
causing an issue but this seems not to be the case.

It would be helpful if I could see the entire stack trace from
the exception.
..."

Ist zwar jetzt etwas abseits des Titels, aber kann mir jemand sagen, wie ich in LV diesen Stacktrace auslesen/mitloggen kann?
Hab schonmal im Internet gesucht und nicht so richtig was Passendes gefunden.