LabVIEWForum.de
[LV]BoolArray -> [C]DLL -> [LV]BoolArray - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: [LV]BoolArray -> [C]DLL -> [LV]BoolArray (/Thread-LV-BoolArray-C-DLL-LV-BoolArray)



[LV]BoolArray -> [C]DLL -> [LV]BoolArray - Adiboing - 17.12.2010 11:13

Hey oh Leute,

vorneweg es schneit hier bei uns grad total und ich finds Mega geilBig Grin

ok xD

Also ich habe in LV ein 2d BoolArray dieses soll dann an meine DLL geschickt werden(Input). Und dann in der DLL wird aus true == false, sprich auch 1 wird 0 und andersrum. Leider kann ich der DLL kein 2dBoolArray übergeben. Deshalb benutze ich im moment "Boolean to 1,0".

Ich hatte mir schon gedacht das wenn ich aus den hereinkommenden int werten ein boolarray mache könnte ich das zurückliefern, aber das geht leider nicht. Soll heißen mit C kann ich per DLL auch kein 2dBoolArray zurück an LV geben. Und ich weiß beim besten Wille nicht wie ich aus meinem 2dIntegerArray(Output) nen 2dboolArray machen könnte.

[attachment=31312]
[attachment=31313]

Weiß jemand wie ich das realisieren könnte?

peace AdiWink


[LV]BoolArray -> [C]DLL -> [LV]BoolArray - rolfk - 17.12.2010 11:36

' schrieb:Hey oh Leute,

vorneweg es schneit hier bei uns grad total und ich finds Mega geilBig Grin

ok xD

Also ich habe in LV ein 2d BoolArray dieses soll dann an meine DLL geschickt werden(Input). Und dann in der DLL wird aus true == false, sprich auch 1 wird 0 und andersrum. Leider kann ich der DLL kein 2dBoolArray übergeben. Deshalb benutze ich im moment "Boolean to 1,0".

Ich hatte mir schon gedacht das wenn ich aus den hereinkommenden int werten ein boolarray mache könnte ich das zurückliefern, aber das geht leider nicht. Soll heißen mit C kann ich per DLL auch kein 2dBoolArray zurück an LV geben. Und ich weiß beim besten Wille nicht wie ich aus meinem 2dIntegerArray(Output) nen 2dboolArray machen könnte.

Weiß jemand wie ich das realisieren könnte?

peace AdiWink

Also das Umgekehrte von "Boolean to 1,0" ist natürlich "Ungleich 0"!!! Sehr einfach! Denk einfach mal ausserhalb der kleine Box der Boolean Palette.

Alternative wäre um den Parameter als Adapt to Type zu konfigurieren. Dann musst Du aber damit Rechnung tragen dass das LabVIEW Array das hineinkommt folgendermassen aussieht:

typedef struct {
int32 dim1; // Size of first dimension
int32 dim2; // Size of second dimension
LVBoolean elm[0]; // actual data as an linear byte array (LVBoolean == uInt8)
} LVBooleanArr, **LVBooleanArrHdl;

By Konfiguration "Handles as Value":

MgErr MyBoolean2DArrayFunc(LVBooleanArrHdl BoolArrHdl);

By Konfiguration "Pointers to Handles ":

MgErr MyBoolean2DArrayFunc(LVBooleanArrHdl *pBoolArrHdl);


[LV]BoolArray -> [C]DLL -> [LV]BoolArray - Adiboing - 17.12.2010 12:04

Das ist nicht mein Problem.

Sondern:
- wie kann ich in LV der DLL direkt ein 2dBoolArray übergeben?
- wie kann ich in C ein 2dBoolArray als return angeben?
- oder wie kann ich aus einem 2dIntegerArray das nur 0 und 1 enthält ein 2dBoolArray erstellen.


[LV]BoolArray -> [C]DLL -> [LV]BoolArray - rolfk - 17.12.2010 12:15

' schrieb:Das ist nicht mein Problem.

Sondern:
- wie kann ich in LV der DLL direkt ein 2dBoolArray übergeben?
- wie kann ich in C ein 2dBoolArray als return angeben?
- oder wie kann ich aus einem 2dIntegerArray das nur 0 und 1 enthält ein 2dBoolArray erstellen.

Zu dem ersten und zweiten Punkt siehe mein Edit.

Zum dritten Punkt das geht eben doch mit der "Not Equal to 0" Vergleichsoperation.