Intercept LabWindows/CVI CLOSE event

In my LabWindows UI the user can click the X on the top right to quit the application.
I'd like to intercept that message to do various things before it gets to the TestStand Engine.
I tried to use InstallWinMsgCallback for a WM_QUIT and WM_CLOSE but it doesn't get called.     
Thanks,
Ronnie
TestStand 4.2.1, LabVIEW 2009, LabWindows/CVI 2009
Solved!
Go to Solution.

OK - I figured it out - it's the EVENT_CLOSE generated by the MainPanelCallback.
TestStand 4.2.1, LabVIEW 2009, LabWindows/CVI 2009

Similar Messages

  • Compiling examples closes LabWindows/CVI

    I have a NI USB-5132 module, with NI-SCOPE 3.7.  I can bring up the device in "Measurement and Automation Explorer", and sees it as "Dev1".  I can bring up NI-Scope Soft Front Panel, and toggle the device, read whatever I want to read.  However, I'm trying to run on my CVI/LabWindows 2009 platform, but when I try to compile ANY of the examples, the development software closes.  No error message....nothing.  When I try to create a new DAQmx task, it sees no available devices for ANY of the possible measurements.  
    Please help!  Otherwise, it would seem my work has purchased a very expensive method to click the exit button.

    Hi Chris, 
    I'm sorry to hear that you are having so much trouble! Could you please provide some more details regarding when you experience this crash? Does this crash occur when you compile all programs or just specific ones? What examples are you attempting to compile? If this is the first time that you are compiling and are experiencing this issue, please refer to the following known bugs in CVI 2009
    LabWindows™/CVI™ 2009 and 2009 SP1 Known Issues
    LabWindows/CVI may crash if compiling a project that includes LabWindows/CVI header files with a line containing the #pragma soft_reference statement
    Compiling a file with a syntax error can cause LabWindows/CVI to crash.
    If these known bugs are not relevant to your code, can you please post a WinDbg log. The following explains how to do this. Despite this article being applied to LabVIEW, this is relevant for CVI as well.
    Using WinDbg for LabVIEW Error Reporting
    If you are running an operating system previous to Windows 7, please refer to the following: 
    Description of the Dr. Watson for Windows (Drwtsn32.exe) Tool
    I look forward to your response. Have a great day!
    Regards,
    Jackie
    DAQ Product Marketing Engineer
    National Instruments

  • How to access the result list in teststand after execution using labwindows​/cvi

    I am developing a user interface in labwindows/cvi that runs multiple teststand sequence files and would like to combine their reports (generated in teststand) into a single file at the end of a UUT. What is the best way to do this? At the moment, I'm trying to access the result list local variable after the execution has ended using API calls from labwindows/cvi and an end-of-execution callback event but those run-time variables do not exist anymore. How do I get a hold of the result list array at the end of an execution? I would like to grab this variable and pass it along from sequence to sequence using labwindows/cvi and not teststand itself. Is this possible? Any help would be great.
    Thanks in advance,
    Luis

    Hey Luis,
    Check out the response to this thread at the NI TestStand board here!

  • Yokogawa UT driver for LabWindows/CVI 6.0 won't translate to LabVIEW 8.6?

    The device driver for the Yokogawa UT series furnace controllers is in LabWindows/CVI 6.0 and I would like to use it in LabVIEW. I tried to use the utility to convert from LabWindows/CVI to LabVIEW, but it said it couldn't and that the device driver is from before LabWindows/CVI 5.01.
    In any case, here is the series of events.
    I downloaded the LabWindows/CVI to LabVIEW Converter, from
    the page on LabVIEW's developer's connection that had the driver for the
    Yokogawa UT controller.
    From an empty LabVIEW Block Diagram, I click
    Tools>>Instrumentation>>Create LabVIEW Interface to LabWindows/CVI
    Instrument Driver...
    This takes a little while to load. During loading an
    FC_Interface_Main.vi runs, apparently trying to find a file.
    Once that is done, the two options are Basic and Advanced. I leave
    basic selected. I click next. browse to find the ykut.fp file from the
    driver I downloaded.
    I then click next. The error window that is seen in the screen shot is
    then shown.
    I called a tech support guy at NI about this, and I e-mailed him with all the above, but there was no reply, though the conversion utility is no longer available on the same web page as this specific device driver.
    In any case, if anybody could give a little guidance, it would be appreciated.

    Hello Screamingzebras,
    I converted the .fp file to be version 5.5 and ran the utility that was mentioned.  I have attached two files to this post.  "ykut.zip" is the converted .fp file (version 5.5).  "yut.zip" is the converted instrument driver.
    Regards,
    Jon S.
    National Instruments
    LabVIEW R&D
    Attachments:
    yut.zip ‏174 KB
    ykut.zip ‏25 KB

  • Permission Denied Error when calling Matlab script from LabWindows​/CVI

    Hello,
    I am reading in data from a DAQ and am writing it to a .csv file in LabWindows/CVI.  I am then sending this data to Matlab to be filtered.  I would like the filtered data to be accessed by LabWindows/CVI so that I can display it as a strip chart.  I have gotten everything to work except the writing to a file in a Matlab script that is called from LabWindows/CVI.  I am basically using the shipped example in found in the activex demo. (http://zone.ni.com/devzone/cda/epd/p/id/2994). I select the script that I want to run and each time it tries to open a file with write permissions I get a "Permission Denied" error.  This occurs when using fopen() in Matlab.  I have also tried using csvwrite() as well as dlmwrite().  Each one gives me a similar error.  The script currently does not try to do any data processing.  It just opens the file, if it is successful it then prints "hello" and then closes it.  The script works well when it is run in Matlab, just not when it is called in LabWindows/CVI.  Below is the script.  Any thoughts, comments or suggestions are greatly appreciated.  I am also open to using other approaches for sending data between Matlab and LabWindows/CVI.  Thanks in advance!!
    fclose('all');
    [file, errmsg] = fopen('out.txt', 'w');
    if(file<0)
        disp(errmsg)
    else
        fprintf(file, 'hello');
        fclose('all');
    end;
    [file, errmsg] = fopen('out.txt', 'w');
    if(file<0)    
    disp(errmsg)
    else  
     fprintf(file, 'hello');    
    fclose('all');
    end;

    I am using Windows 7.  I am running CVI as an administrator and was able to get rid of the "Permission Denied" error by going into the User Account Controls in windows and changing it to "Never Notify".  However, this did not fix the problem of Matlab not being able to write to a file when the script is run from CVI.  In the Matlab code below, It now gets in to the "else", suggesting that fopen() returns a good file handle.  After getting in to the else statement, it will not actually write to the file, nor does it create it.  However, I can make changes to the plot settings and those appear.  Everything is functional when run from Matlab but when run from CVI, things get screwy with opening the file for writing.  It handles the read well.  It seems like there would have to be some file permission errors but, in the CVI program, I open and write to the file "in.csv".  Any help is greatly appreciated.
    clear;
    fclose('all');
    t = zeros(1000);
    t = csvread('in.csv');
    for i=1:1000
        t(i) = t(i)*4;
    end;
    [file, errmsg] = fopen('out.txt', 'w');
    if(file<0)
        disp(errmsg)
    else
        fprintf(file, 'goodbye');
        for i=1:1000
            %t(i) = t(i)*3;
            fprintf(file, '%f,', t(i));
        end;
        fclose(file);
        plot(t/3, t);
        ylabel('t');
        xlabel('Time (s)');
        title('Is this really working?!?');
    end;
    Thanks,
    Chris

  • Interopérabilité entre labview et labwindows/CVI

    Bonjour,
    j'utilise labview 7.0 dans lequel je souhaite utiliser une DLL compilée avec LabWindows/CVI. Cette DLL contient une fonction de communication avec un équipement distant de type get_value.
    Donc, grâce à cette DLL, l'outils labview demande une valeur à l'équipement distant. La fonction CVI envoie la requête à l'équipement distant et attend la réponse de celui-ci avant de retourner la réponse sous labview.
    Donc l'exécution de la fonction CVI est assez longue mais entre l'envoie de la requête et la réception de la réponse, le processeur n'est pas utilisé. Néanmoins, durant l'exécution de la fonction, le rafraichissement de la fenetre labivew n'est plus opérationnel et de manière général, l'application labview sem
    ble gelée.
    Est-il possible de libérer le process pour labview au sein de la DLL sans en sortir ?
    J'ai essayé les fonction delay, process draw event et process system event mais rien ne semble libérer le process.
    Y a-t-il une solution?
    Merci

    Hello,
    La bonne vieille recherche d'exemples (Help-> Find Examples) reste toujours efficace. Je vous suggère d'aller faire un tour dans la partie MultiThreading. On y trouve toutes les principales fonctions pour créer des threads et y exécuter du code (en parallèle, donc !).
    Cet article est aussi un bon départ.
    Cdt,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • CVI crashes - event log shows [FATAL] [LW_UAE_Handler] [..\jeff\i386\except.c:161] Assertion failed: 0.

    Hello,
    When calling lua_error(L) (pushing a Lua error in an embedded lua interpreter in my CVI code), I have been encountering a complete crash.  Not only does my code stop running, but the full CVI 9.1.1 IDE crashes without even an error message.  When I look in the windows xp event log I find the following:
    The description for Event ID ( 0 ) in Source ( CVI ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: [16:45:30.768] [FATAL] [LW_UAE_Handler] [..\jeff\i386\except.c:161] Assertion failed: 0.
    When I recompile my project with visual studio, the identical code does not crash or cause any problems.  Any insite on this problem would be greatly appreciated.
    thanks,
    Alex Corwin

    Hello Alex,
    Could you try to generate a crash dump? Also, here is a community example of code using an embedded interpreter LUA in a LabWindows/CVI Project.
    Regards,
    Jeff L.
    Applications Engineer | National Instruments

  • No EVENT_LEFT​_CLICK_UP in LabWindows​/CVI 7.0

    In LabWindows/CVI 9.0 there is EVENT_LEFT_CLICK_UP, but in LabWindows/CVI 7.0 there is NO EVENT_LEFT_CLICK_UP I tried to use the number defined in the userint.h of 9.0 but that doesn't work. I would really perfere to use the EVENT_LEFT_CLICK_UP instead of double click event. is there a better work around?

    I believe you could do something like this by utilizing the EVENT_LEFT_CLICK modifier, and then waiting for the user to release the mouse button.  I know this is possible in 7.1 so I believe it'll work in 7.0.
    case EVENT_LEFT_CLICK:
       do
         GetGlobalMouseState (&panel, &xcoord, &ycoord, &leftbtn, &rightbtn, &keys);
       }while(leftbtn == 1);//wait for user to release mouse button
       //code that should be executed when the user releases the left mouse button
       break;

  • Rapport cyclique variable - Labwindows CVI - PXI 5411

    Bonjour Madame, Monsieur,
    Je développe actuellement une application sous Labwindows CVI permettant de faire varier en fréquence 3 signaux déphasés de 120° entre eux . Pour cela je dispose de 3 cartes PXI 5411.
    Cependant, le rapport cyclique est fixé à 50% par défaut. Mes signaux doivent avoir un rapport cyclique Th=75%.
    Je ne sais pas comment programmer cela sous CVI.
    Voici mon bout de code (dans moin exemple j'ai fixé la fréquence à 500Hz) :
    int CVICALLBACK COMMANDBUTTON (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
     ViReal64 DC=75.00; 
     ViReal64 frequence=500.00;
     ViChar GBF1[256]="DAQ::3";
     ViChar ChannelGBF1[256]="0";
     ViReal64 Amplitude1=5;
     ViReal64 DCOffset1=2.5;
     ViInt32  Waveform1=NIFGEN_VAL_WFM_SQUARE;
     ViChar GBF2[256]="DAQ::5";
     ViChar ChannelGBF2[256]="0";
     ViReal64 Amplitude2=5;
     ViReal64 DCOffset2=2.5;
        ViInt32  Waveform2=NIFGEN_VAL_WFM_SQUARE;
     ViChar GBF3[256]="DAQ::7";
     ViChar ChannelGBF3[256]="0";
     ViReal64 Amplitude3=5;
     ViReal64 DCOffset3=2.5;
        ViInt32  Waveform3=NIFGEN_VAL_WFM_SQUARE;
     switch (event)
      case EVENT_COMMIT:
       /* Ressource 1 maître, ressource 2 et 3 esclaves*/  
     if(vi1 != VI_NULL) { niFgen_close(vi1);}  
     if(vi2 != VI_NULL) { niFgen_close(vi2);}
     if(vi3 != VI_NULL) { niFgen_close(vi3);}  
     niFgen_init(GBF1, VI_TRUE,1, &vi1);
     niFgen_init(GBF2, VI_TRUE, 1, &vi2);  
     niFgen_init(GBF3, VI_TRUE,1, &vi3);  
      /* Configuration du maître*/
     niFgen_ConfigureRefClockSource(vi1, NIFGEN_VAL_RTSI_CLOCK);
     niFgen_RouteSignalOut(vi1, "0", NIFGEN_VAL_OUT_START_TRIGGER,NIFGEN_VAL_RTSI_1);
     niFgen_RouteSignalOut(vi1, "0", NIFGEN_VAL_SYNCHRONIZATION,NIFGEN_VAL_RTSI_0);   
       /* Configuration esclave 1*/
     niFgen_ConfigureRefClockSource(vi2, NIFGEN_VAL_RTSI_CLOCK);
        niFgen_ConfigureTriggerSource(vi2, "0", NIFGEN_VAL_RTSI_1);
        niFgen_ConfigureSynchronization (vi2, "0", NIFGEN_VAL_RTSI_0);  
       /* Configuration esclave 2*/
     niFgen_ConfigureRefClockSource(vi3, NIFGEN_VAL_RTSI_CLOCK);
        niFgen_ConfigureTriggerSource(vi3, "0", NIFGEN_VAL_RTSI_1);
        niFgen_ConfigureSynchronization(vi3, "0", NIFGEN_VAL_RTSI_0);   
      /* Configuration et generation forme d'onde esclave 1*/
        niFgen_ConfigureOutputMode(vi2, NIFGEN_VAL_OUTPUT_FUNC); 
     niFgen_ConfigureStandardWaveform(vi2, ChannelGBF2, Waveform2, Amplitude2, DCOffset2, frequence,120);
     niFgen_InitiateGeneration(vi2);
        niFgen_ConfigureOutputEnabled(vi2, "0", VI_TRUE);     
     niFgen_SetAttributeViReal64 (vi2, ChannelGBF2, NIFGEN_ATTR_FUNC_DUTY_CYCLE_HIGH, DC); 
      /* Configuration et generation forme d'onde esclave 2*/
        niFgen_ConfigureOutputMode(vi3, NIFGEN_VAL_OUTPUT_FUNC); 
     niFgen_ConfigureStandardWaveform(vi3, ChannelGBF3, Waveform3, Amplitude3, DCOffset3, frequence,-120);
     niFgen_InitiateGeneration(vi3);
        niFgen_ConfigureOutputEnabled(vi3, "0", VI_TRUE);
     niFgen_SetAttributeViReal64 (vi2, ChannelGBF2, NIFGEN_ATTR_FUNC_DUTY_CYCLE_HIGH, DC); 
     /* Configuration et generation forme d'onde maître*/
        niFgen_ConfigureOutputMode(vi1, NIFGEN_VAL_OUTPUT_FUNC);
        niFgen_ConfigureStandardWaveform(vi1, ChannelGBF1, Waveform1, Amplitude1, DCOffset1, frequence,0);   
        niFgen_InitiateGeneration(vi1);
        niFgen_ConfigureOutputEnabled(vi1, "0", VI_TRUE); 
        niFgen_SetAttributeViReal64 (vi2, ChannelGBF2, NIFGEN_ATTR_FUNC_DUTY_CYCLE_HIGH, DC); 
        break;
     return 0;
    Naturellement, je me connecte sur la sortie SYNC OUT des cartes PXI. Aussi, j'ai essayé à l'aide du Front Panel NiFgen et là j'arrive à faire varier le rapport cyclique (quelque soit le signal généré sur la sortie ARB OUT).
    Pourriez-vous m'aider??
    La fonction ; niFgen_SetAttributeViReal64(vi2,ChannelGBF2,NIFGEN​_ATTR_FUNC_DUTY_CYCLE_HIGH, DC);
    ne fonctionne pas.
    Cordialement,
    Eric

    Bonjour Eric,
    Tu as posté ta question sur la partie internationale du forum.
    Si tu souhaites avoir plus de chance d'avoir une réponse je te conseille soit d'y poser ta question en anglais soit de la poser sur le forum francophone : French forum
    Nevertheless, you should be able to change the duty cycle with the following function:
    ViStatus niFgen_SetAttributeViReal64 (ViSession vi, ViConstString Channel_Name, ViAttr Attribute_ID, ViReal64 Attribute_Value);
    You can take a look at CVI examples and especially to the 5404ClockGeneration. cws example which change dynamically the duty cycle with the function above. (Help>>Find Examples)
    Regards,
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Always getting errors when trying to control YOKOGAWA 7651 power supply on Labwindows/CVI

    Hi,
    I'm trying to set the voltage on the YOKOGAWA 7651 power supply through labwindows/cvi. I've set up a numeric slide on my userinterface with callback function "yoko7651dcvolts" and constant name "YOKO7651DCVOLTS".
    I always get this error when I run my program:
    "FATAL RUN-TIME ERROR: "DcSource.c", line 53, col 65, thread id 0x00001F3C: Invalid argument type: found 'pointer to double', expected 'pointer to int'."
    This error points to the third argument of the GetCtrlVal function below. The program/compiler wants me pass the variable "yoko1volts" as integer, but I want to (and should) be able to set voltages as floating numbers.
    Plus, even when I declare "yoko1volts" as integer, it stills doesn't work. All I get is zero, zero, and zero...on the power supply meter everytime I press the numeric slide.
    This is the section of the C code that is problemic:
    int CVICALLBACK yoko7651dcvolts (int panel, int control, int event,
    void *callbackData, int eventData1, int eventData2)
    double yoko1volts;
    switch (event)
    case EVENT_COMMIT:
    GetCtrlVal (yoko76511Panel, YOKO7651_1_YOKO7651DCVOLTS, &yoko1volts); // to read the values entered on the numerical meter on the user interface
    yk7651_set_volts (yoko76511Panel, yoko1volts); // set the entered values as voltage on the instrument
    break;
    return 0;
    This is the related h-file:
    #define YOKO7651_1 4
    #define YOKO7651_1_YOKO7651SWITCH 2 /* control type: binary, callback function: yoko7651switch */
    #define YOKO7651_1_YOKO7651DCVOLTS 3 /* control type: scale, callback function: yoko7651dcvolts */
    Please help, how can I fix this issue?
    All the drivers (including the YOKOGAWA 7651 power supply) are properly installed and mounted. As a matter of fact, I can successfully turn the power supply on and off with the code below:
    int CVICALLBACK yoko7651switch (int panel, int control, int event,
    void *callbackData, int eventData1, int eventData2)
    int yoko7651switchstate;
    switch (event)
    case EVENT_COMMIT:
    GetCtrlVal (yoko76511Panel, YOKO7651_1_YOKO7651SWITCH, &yoko7651switchstate);
    SetCtrlVal (yoko76511Panel, YOKO7651_1_YOKO7651SWITCH, !yoko7651switchstate);
    yk7651_output (yoko76511Panel, !yoko7651switchstate);
    break;
    return 0;
    It's just setting the voltage on the power supply that is very problematic. Any help is appreciated...Thanks.
    Solved!
    Go to Solution.

    I second Al opinion of a disconnection between the UIR and the variable that holds the panel handle.
    As a side note, I noted that the problematic line is reading the value of the controll whose callback is executed:
    #define YOKO7651_1_YOKO7651DCVOLTS 3 /* control type: scale, callback function: yoko7651dcvolts */
    int CVICALLBACK yoko7651dcvolts (int panel, int control, int event,
    void *callbackData, int eventData1, int eventData2)
    double yoko1volts;
    switch (event)
    case EVENT_COMMIT:
    GetCtrlVal (yoko76511Panel, YOKO7651_1_YOKO7651DCVOLTS, &yoko1volts); // to read the values entered on the numerical meter on the user interface
    yk7651_set_volts (yoko76511Panel, yoko1volts); // set the entered values as voltage on the instrument
    break;
    return 0;
    In a situation like this, I would try using GetCtrlVal (panel, control, &yoko1volts); instead, that should get rid of all problems in panel handle / control ID.
    Despite this solution is working, in any case I would deep into the problem as an incorrect panel handle can lead to erratical behaviour in other places of the program.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • LabWindows/CVI String组件 如何限制字符输入

    问题:
           LabWindows/CVI 9.0 使用String组件作编辑框使用,如何限制字符输入,比如输入除数字外的字符时提示错误或者禁止输入非数字字符。
    Primary Software: LabWindows/CVI Development Systems>>Base Package
    Primary Software Version: 9.0
    Primary Software Fixed Version: N/A
    Secondary Software: N/A
    Problem:
                When i use String as edit object to input some numbers,how can i do that limit the data input  only is Number?   thank you!
    Solved!
    Go to Solution.
    Attachments:
    QQ截图20131018180436.png ‏4 KB

    Thanks for your advice, I have solved the problem.
    int CVICALLBACK StringCallback (int panel, int control, int event,
       void * callbackData, int eventData1, int eventData2) {
      int key; / / The character being pressed.
      switch (event) {
       case EVENT_KEYPRESS:
        / / Get the pressed character.
        if ((key = GetKeyPressEventCharacter (eventData2)) == 0) break;
        / / If a digit (0 to 9) is pressed, swallow the keypress.
        if (!isdigit (key))
         SetKeyPressEventKey (eventData2, 0, 0, 0, 0, 0);
        break;
      return 0;

  • Introducing LabWindows/CVI 2009

    National Instruments released LabWindows/CVI 2009 on Friday, December 4th.
    LabWindows/CVI 2009 includes enhanced productivity tools and introduces a new toolkit for run-time analysis and optimization. LabWindows/CVI 2009 also includes support for new technologies such as the Microsoft Windows 7 operating system, 64-bit application development and deployment, and provides a new interface for communicating with NI PXI FPGA-based hardware including FlexRIO and R Series data acquisition modules.
    Visit the What's New  page to see a full list of the new features in LabWindows/CVI 2009 that will help users create more reliable applications in a shorter amount of time and take advantage of new PC technologies. You can also view the What's New webcast series to get a closer look at the new features in LabWindows/CVI 2009. Some of the new features include:
    The new Execution Profiler Toolkit, an application performance measurement and analysis tool
    Improved debugging capabilities  capabilities with extended information in the variables and watch windows
    Easier user interface development with the attribute browser
    Integrated support for 64-bit application development and deployment
    The C- Interface to LabVIEW FPGA, a communication interface for FPGA-based hardware
    Support for Windows 7, the latest Microsoft operating system
    Additional Technical Resources Just for LabWindows/CVI Developers
    Subscribe to the LabWindows/CVI Quarterly quarterly newsletter  to receive the latest product news, tips and tricks, and developer resources. You can also join the LabWindows/CVI user community  and start collaborating with users.
    Adri Kruger
    LabWindows/CVI Product Manager
    Message Edited by Adri K. on 12-07-2009 03:28 PM
    Adri Kruger
    National Instruments
    LabVIEW Product Marketing

    Turbo,
    There isn't a document that covers all the features from 6.0 to 2009, though there are documents that talk about individual upgrades. 
    http://www.ni.com/lwcvi/whats_new.htm
    Also this document covers the upgrades since 8.0  http://zone.ni.com/devzone/cda/tut/p/id/7995
    There have been quite a few upgrades, you can always download an evaluation version and test it out for yourself http://www.ni.com/lwcvi/try.htm
    Richard S -- National Instruments --Applications Engineer -- Data Acquisition with TestStand

  • Book: LabWindows/CVI Programming for Beginners

    Has anyone read the followong book LabWindows/CVI Programming for Beginners LabWby Shahid F. Khalid ?
    This book in not in print anymore and  inpossible to find.
    Does anyone know of any similar source material?
    I have both LabWindows/CVI Basics I&II but the content is extremely limited and not enogh details.
    Does NI offer anything better than the embedded Help?
    A Programmers Reference would be nice.
    Thanks.

    Hello NI Nubie,
    I have that book, and also its "advanced" sequel by the same author.  They both went out of print a long time ago.  The books are OK, but they are only available on the secondary market for ridiculous prices now, and that is assuming that you can even find them.
    If I could pass on some advice that might be more helpful to you in learning CVI: pretend those books do not exist for now.  Instead, I think that for learning CVI, there is nothing better than looking at other people's CVI project-level code and really understanding it, inside and out, and then making your own modifications to it to enforce what you just learned from it.  There are several places to start looking for project-level CVI code, which I will list in (what I think) are the highest-to-lowest priority of your training.
    The first place I recommend is the examples that ship with CVI (located in the "samples" directory under the CVI installation directory).  I say this because these are supported by the NI developers and support crew.  In fact, back in 1995 when I was learning CVI 3.1, I dove into the "Icon Editor" application, for several reasons: it was a *complete* application (as opposed to the other, mostly point-solution "academic" examples under the samples directory), it showed how to segment your code into multiple source and header files, and it showed many advanced user interface features (menus, cut-and-paste).  There is now an "example finder" to help locate examples that "fit" to what you are currently trying to accomplish.  I also use the freeware "grep-like" tool called "Agent Ransack" (URL is below) to hunt down specific CVI functions and identifiers (such as certain EVENTS and how these examples use them).
    Agent Ransack on MythicSoft.com
    The second place I recommend is the other "support" locations on the NI web site.  There are knowledgebase articles, tutorials, submitted examples, community examples, and also extra "academic" examples from NI engineers that aren't the same as the ones that ship with CVI.  There are also whitepapers scattered in there as well, and a few that have hidden sample code that is embedded at the bottom of the article.  You really have to hunt for this stuff, and it would be great if the NI folks could try to index this a bit better somehow.  I sometimes even resort to using Google's search engine to find them on the NI web site, because the NI search engine may not find them.
    The third place I recommend are user-based web sites created by power-users of CVI who like to share their code.  Two that I found long ago that remain at the top of the list (in my opinion).  One is Guillaume Dargaud's site, where he has lots of CVI examples and freeware.  The other is Philippe Baucour's "Rebel" CVI site (but you will need to use an online translator if you don't speak French, though).
    Guillaume Dargaud's web site (drill down for CVI examples and freeware)
    Philippe Baucour's "Rebel" CVI web site
    Finally, you might find it interesting to know that there is a tremendous repository of C source code scattered all around the Internet, mostly as part of free and open-source software projects, many of which are supported on sites such as SourceForge.net, and many other locations.  Many of these places are filled with people (in forums or mailing list servers) who live in the C programming world on a full-time basis, and can help you through some of the advanced techniques.  Some of these projects might be targeted to Windows, some use cross-platform techniques, so they have a chance of being applied to your CVI efforts.  There is also an entire universe of programming "libraries" and capabilities that you can use to augment your CVI projects as well.  All of this because of the open-source revolution, riding on the back of GNU/Linux and the community and corporate entities that are backing it all.  Examples that come to mind are Cygwin and MinGW.  If you only have the time to just look up these two items on Wikipedia, you will see that this is just the tip of the iceberg of the possibilities that are available to you as a C and CVI programmer on Windows.
    I hope this was helpful to you.
    JB
    To whom it may concern: My alias is also my nickname, I've had it since I was a (very) skinny basketball-playing teen. OK, so I've got a 38 inch waist now, but my hometown friends haven't shaken that appellation for me. I trust that you will someday be OK with that alias, as I have been with that nickname.

  • Visual Studio or LabWindows/CVI?

    I have a bit of a dilemma.
    I currently own Visual Studio 2010, IMAQ Vision Development Module 2013, and Measurement Studio (not sure of version). I currently do all of my programming in VB.net. Because IMAQ VDM is stuck in .Net framework 3.5 and there will be no further .net development by NI, I need to plan for the future. My applications need run on Win 8, 9, 43, or whatever my company decides to migrate to from Win 7.
    My understanding is that the NI modules I currently own will work with LabWindows/CVI. Correct? I also believe I can use them with C++ using the VS IDE. Is this also correct?
    Within my applications I do a lot of interfacing with Excel, writing text files, and interfacing to non-NI devices (cameras, DAQs, scanners, etc). I am able to do these things pretty easily using VB.net using vendor-provided SDK's.
    Therefore, my question is this...given the investment I have in software already, do I gain anything by migrating to LabWindows/CVI? What do I lose?
    I should point out that regardless of the path I choose I will need to bone up on my programming skills in the corresponding language.
    Thanks for all your help!

    Hello Steverino!
    Here are some advantages when using LabWindows/CVI over Visual Studio, which make the product more suitable for various industry-related applications:
    You are correct, LabWindows/CVI integrates with the NI platform: NI hardware and software, like TestStand or LabVIEW (e.g. debugging source code from one software to another, seamlessly).
    NI hardware and third-party hardware connectivity.
    OpenMP support.
    CVI integrates with intrument control.
    CVI Run-Time benefits from User Protection.
    Run-Time checking (e.g. for uninitialized variables).
    Scientific User Interface Controls and GUI Editor.
    Advanced debugging capabilities:
    Remote debugging support from ADE.
    Real-Time debugging support from ADE.
    Memory leak detection using the LabWindows/CVI Resource Tracking Window.
    Just-In-Time debugging.
    Deployment: build custom installers and patches that you can ship as stand-alone easy-to-use installers.
    LabWindows/CVI libraries: Advanced Analysis, Toolbox, Connectivity (Network Variables, Network Streams, DataSocket), etc.
    Support for LabWindows/CVI Toolkits: SQL Toolkit, Vision, PID, RT.
    Regards,
    - Johannes.

  • Software Development Engineer positions at Hysitron, Inc. in Minneapolis (LabWindows CVI exp preferred)

    Software Development Engineer
    Hysitron, Inc. is a premier scientific instrument manufacturer. Founded in 1992 with headquarters located in Eden Prairie, MN we are committed to promoting nanotechnology by developing advanced transducer and control technology. This leadership has made Hysitron the world leader in nanomechanical test instruments. The TriboIndenter®, TriboScope®, Ubi, and other Hysitron innovations have opened new horizons for scientists interested in investigating and understanding mechanical properties of materials at nano-scale. Hysitron fosters an environment and culture where innovation flourishes, teamwork is encouraged, and superior performance is rewarded.
    Hysitron invites applications for multiple software development engineer positions from those aspiring to explore and succeed in the nano world. Hysitron, Inc. is an Equal Opportunity Employer M/F/D/V
    Job responsibilities
    The software development engineers would be responsible for developing test and measurement software applications for nano-mechanical testing instrumentation. Job deliverables would include:
    -          Develop software applications in C based Labwindows CVI for Hysitron Instrumentation
    -          Support the development of applications to address challenges in instrument automation and control
    -          Test software applications using debugging and simulation tools
    -          Perform software releases and software quality assurance activities
    -          Participate in the design of new software products
    -          Perform maintenance activities for existing products
    -          Adapt and deliver on quality software development practices
    Minimum qualifications
    -          BS in Computer Science/ Computer Engineering/ Equivalent Scientific or engineering discipline
    -          Min of 3 yrs experience in Instrumentation software development in an industrial or R&D environment
    -          Expert at programming language C, knowledge of C++
    -          Working knowledge of various communication protocols, e.g. USB, RS232, IEEE, RS485, TCP/IP, Modbus
    -          Knowledge of general software design/documentation processes in test and measurement systems
    -          Proficient problem solving skills
    -          Strong analytical and technical skills
    -          Excellent communication and interpersonal skills
    Preferred Qualifications
    -          Proficient with LabWindows CVI and XML
    -          Working experience with DSP(Code Composer Studio) and/or FPGA level programming
    -          Exposure to digital electronics and instrumentation
    -          Working experience in Robotics interface programming
    -          Experience with Controls/Automation engineering
    Application and Information
    Qualified candidates should send a letter of application and their resumes to (please include ‘SW Engineer’ in subject line):
    Hysitron, Inc.
    10025 Valley View Rd
    Eden Prairie, MN 55344 USA
    Phone: (952) 835-6366
    Fax: (952) 835-6166
    E-MAIL: [email protected]
    Web: www.hysitron.com

    This position is still accepting resumes/CVs.

Maybe you are looking for

  • GR based BAPI_INCOMINGINVOICE_CREATE payment terms issues!!

    hello friends,                 I am using BAPI_INCOMINGINVOICE_CREATE for posting of GR based Invoice verification (Alternation to MIRO).I am able to post the document through BAPI if and only if ::- 1) i specify payment terms(PMNTTRMS in header data

  • Create dynamically a number of Input Fields

    hi all, one issue about creating dynamically a range of Input fields: i have one sap.ui.layout.form.FormContainer. at first i want to have one Input field in it. if this field is filled, i want to have a new one below, which is empty, and the cursor

  • Upgraded kernel...can't load modules??

    Okay today I ran pacman -Syu and upgraded to kernel 2.4.21.  My only problem now is that on boot, I cannot load any modules, and when I go to modprobe them manually I am given this error: [root@protium root]# modprobe ne2k-pci modprobe: Can't open de

  • PFCG role creation

    Security Guys,         My requirement is creation of role for an ABAPER who should run all the Z reports but not exactly the report RSDU_EXEC_SQL_PROGRAM ( meaning no SAP Standadrd reports ). Is there a way to achieve this ? Thanks / Arunkumar P

  • Problem with material setting

    Hi, When I enable 'texture' in an 'appearance', it seems that the 'material' property no longer takes effect. There is no ambient and diffuse effect at all. A directional light is enabled all the time in the scene. Could any one tell me why and how t