Hallo Leute,
ich habe nun mit dem NI-Support telefoniert und Sie haben mir gesagt, dass ich eben nicht drumherum kommen würde eine Wrapper DLL zu schreiben.
Da ich im Programmieren nicht so fit bin, kann ich das wohl vergessen.
@IchSelbst
' schrieb:typedef struct CPC_MSG {
unsigned char type;
unsigned char length;
unsigned char msgid;
unsigned long ts_sec;
unsigned long ts_nsec;
union {
unsigned char generic[CPC_MSG_LEN];
CPC_CAN_MSG_T canmsg;
CPC_CAN_PARAMS_T canparams;
CPC_CONFIRM_T confirmation;
CPC_INFO_T info;
CPC_OVERRUN_T overrun;
unsigned char busload;
unsigned char canstate;
} msg;
} CPC_MSG_T;
Obwohl diese Struktur einen Union-Anteil hat, könnte das gehen. Bisher habe ich in dieser System (CPC_...) nichts gefunden, was nicht, wenn auch mit Umständen, gehen sollte. Du musst halt alles als U8 interpretieren und dann entsprechend konvertieren. Das geht.
Die vielen Typen, die hier im Union-Teil aufgeführt sind, hab ich jetzt nicht explizit nachgelesen. Daher kann ich hierüber nur ungefähre Ratschläge geben. Sollte es sich um expliziete Daten handelt, geht es auf jeden Fall (über Array ...). Sind es Pointer oder sind da Pointer dabei, wird es nicht funktionieren (resprektive dur wirst eine Wrapper-DLL benötigen).
Mit dem Union- Anteil greifen doch alle Structuren auf denselben Speicher zu, wie soll das denn in LV gehen?
Kannst du mir eventuell ein Beispiel machen, oder vielleicht, wenn es nicht zu schwer ist, helfen genau diese Funktion ("struct CPC_MSG* CPC_Handle(int handle);") zu programmieren, damit ich sehe, wie du es eigentlich meinst. (Ich bin leider kein Guru im Programmieren!)
Gruß Joe