Hi,
I know I am late here, but anyhow...
My projects range into the medical and medical devices area. The two largest apps span the whole bandwidth:
1. ECG Mapping:
This is an app to control an examination and DAQ setup, basically to perform 96 channel ECG recordings and to evaluate the results. It is used in the Deutsches Herzzentrum Berlin (German Heart Center Berlin). Its aim is to review the electrical operation of the human heart without the danger of intrusive heart cathether examinations. It measures ECG on 96 places around the patients torso, as well as the exact position of each ECG electrode. From this signals it calculates a signal mapping (voltage level graphs like barographs on metheorological maps) onto a virtual globe around the heart. This is done (off-line, of course) for each sample time. From the movement of the voltage level graphs one can see the movement of the excitement of the heart muscle and its time course. This allows to detect problems like stroke-damaged areas or extra systole sources.
It is about 600 VIs with several dynamically called parts, Needed some new technique (at least for me) for storing large amounts of data, data compression, highspeed multiport serial communication and, last but not least, sphaerical triangulation and displaying techniques. Took about two years...
2. Multiseat test sequencer:
This sounds perfectly like an app for NIs TestStand, And I started with it, but finally gave up after nearly a full year of devellopment. Now I did what we needed with LabVIEW.
The app controls a teststand with two SVGs, a PXI chassis containg two DMMS, two switching modules and some AO and DIO devices and, last but not least, 8 USB ports and 27 serial ports. It is used to test up to 8 medical devices.
Its main VI controls the whole system, starts test processes from templates, gets their results and displays it to the user.
Each single test process is a kind of test sequencer preloaded with an array of steps to perform. This array can be changed during the test process whenever needed (errors, missing components etc). Each test process communicates with _its_ UUT. All access to 'global' ressources is protected by semaphores. Some parts of the process are dynamically called daemeons. Interprocess communication is done using named queues.
The app has more than 650 VIs, Parts of 'em are toolkits or from my private libraries. Took about a year for the LabVIEW part now. Had to learn a lot about using DLLs, exchanging data with C-DLLs, evaluation complex C-data structures, writing multiprocess-safe code, using stacked type definitions etc.
As it is a test system, it is still (and probably will forever) be under construction.)
Greetings from Germany!
--
Uwe