INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DLL- Datentypen nicht in LabVIEW vorhanden



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!

12.04.2011, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2011 12:51 von jg.)
Beitrag #1

jak888 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 133
Registriert seit: Apr 2010

2010
2010
en

97447
Deutschland
DLL- Datentypen nicht in LabVIEW vorhanden
Hallo,

ich versuche gerade ein LabVIEW Programm zu schreiben, mit dessen Hilfe man mit dem tiny_CAN 2XL Modul kommunizieren kann. Hierzu stellt der Hersteller eine API bereit, bei der man im Prinzip nur die DLL einbinden muss und die nötigen Funktionen so nutzen kann (was ja auch der Sinn einer DLL ist).
Prinzipiell funktioniert das auch bis jetzt ganz Gut, leider bin ich bei ein paar der Funktionen auf Probleme mit den Datentypen gestoßen:
In einer Funktion wird beispielsweise der Datentyp "unsigned char" verlangt, den es in LabVIEW nicht gibt. Ich denke, dass ich das umgehen kann, indem ich den Datentyp uint_8 verwende.
In einer anderen Funktion wird der Datentyp "struct TCanMsg" gefragt. Dieser wie folgt aufgebaut:

Code:
struct TCanFlagsBits
{
unsigned Len:4; // Dlc
unsigned TxD:1; // TxD -> 1 = Tx CAN Message, 0 = Rx CAN Message
unsigned Res:1; // Reserviert
unsigned RTR:1; // remote transmition request bit
unsigned EFF:1; // extended frame bit
unsigned Res2:8;
};

union TCanFlags
{
struct TCanFlagsBits Flag;
uint32_t Long;
};

union TCanData
{
char Chars[8];
unsigned char Bytes[8];
uint16_t Words[4];
uint32_t Longs[2];
};

struct TTime
{
uint32_t Sec;
uint32_t USec;
};

struct TCanMsg
{
uint32_t Id;
union TCanFlags Flags;
union TCanData Data;
struct TTime Time;
};

Dabei stellt sich mir auch die Frage: Wie kann ich die TCanFlagsBits umsetzen?

Wie kann ich diesen Datentyp simulieren oder was muss ich übergeben, dass die Funktion bekommt, was sie erwartet? Wenn ich an dieser Stelle einen String übergebe kommt die Funktion zwar ohne Fehler zurück, aber ich traue dem ganzen Frieden nicht wirklich.

Ein anderes Problem ist noch, dass bei einer anderen Funktion als Fehler zurückkommt, dass keine Hardware angebunden wäre. Muss ich den Treiber (Das Gerät wird vom System als USB auf RS232 umsetzer erkannt) extra einbinden oder sollten die DLLs das erledigen?

Bin für jede Hilfe dankbar

EDIT jg (damit es nicht in Beitrag #8 untergeht): Crosspost unter NI-Support-Forum.

"Good judgement comes from experience, experience comes from bad judgement."
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
DLL- Datentypen nicht in LabVIEW vorhanden - jak888 - 12.04.2011 15:57

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  .dll nicht LabView kompatibel? virtualmake 5 6.024 10.09.2013 14:49
Letzter Beitrag: virtualmake
  DLL-Einbindung, Struct mit verschiedenen Datentypen als Pointer übergeben hawk72 4 10.561 11.05.2012 14:41
Letzter Beitrag: hawk72
  CRC Berechnung: Codebeispiel vorhanden Takuro 6 12.378 01.06.2011 17:17
Letzter Beitrag: Lucki
  pointer auf struct mit unterschiedlichen datentypen neven 8 7.242 27.11.2007 16:42
Letzter Beitrag: neven

Gehe zu: