This is very common issue for writing camera drivere. Here is my solution (for iCube camera):
Callback function:
DLL void iCubeCallback (char *pBuffer, int IBufferSize, LVUserEventRef *eventRef){ struct tBuff { char *pBuff; int size; } buff; buff.pBuff=pBuffer; buff.size=IBufferSize; PostLVUserEvent(*eventRef, (void *)&buff); }
Initialization:
And Get Frame.vi:
Do you know any undocumented functions for that?
Well you can convert C algorithmes quite easily into the formula node as that one supports a subset of C. For whole C
programs there is simply no way to translate that in a meaningful way into a LabVIEW program by automatic and in fact
even translation by humans is mostly an exercise in vain as the runtime concepts are quite different. And if a human
can't do it how could you come up with an algorithm that does it automatically. I'm not saying that you can't rewrite a C
program in LabVIEW but that is not translation but simply reading specs (here from the C program) and writing a
LabVIEW program from scratch. C is in no way as formal and strict as more modern design paradigmas such as UML etc.
and I haven't seen LabVIEW code generators that can translate such design documents readily into LabVIEW VIs.
If it is indeed simply the code generation part from the embedded Toolkit (and I'm almost 100% sure it is), then all I can
say is: The code generation works but it ain't pretty to look at. Personally I don't see much use in generating simply C code.
The embedded Toolkit makes some sense when used with a preconfigured tool chain for a certain target but just generating
C code from LabVIEW code is not much more than for the wow effect.
Converting a simple VI algorithme into C is quite a bit leaner and meaner when done by hand and converting complex
programs is likely an exercise in vain as there are to many dependencies on the underlying runtime and OS environment
that this could be done in a really generic way .
Here is the video : http://www.vimeo.com/17700095
<iframe src="http://player.vimeo.com/video/17700095" width="400" height="300" frameborder="0"></iframe><p><a href="
This is a work in progress of course, any suggestion is very welcome.