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;

Similar Messages

  • Retour paramètre string par Labwindows/CVI pour Teststand

    Bonjour à tous,
    j'utilise Teststand 2012 Development System et Labwindows/CVI 2012 Development System sous Windows 7 professionnel.
    Le contexte : grâce à une DLL crée avec Labwindows/CVI j'appel la fonction "Traitement" par TS.
    Le prototype de la fonction est le suivant void __declspec(dllexport) Traitement (char message[256], car reponse[256]);
    Je passe en paramètre deux strings à cette fonction. Cette fonction reçoit un "message", effectue un traitement sur celui-ci et le renvois sous le tableau "reponse" à TS. Cette fonction a été testée et fonctionne sous CVI.
    Mon problème : J'ai vérifié ma fonction reçoit bien le message mais me retourne quelque chose d'erroné( cf. image) et n'est censé me retourner, dans"reponse", que les chiffres au début mais me rajoute des instructions en temps que string. Je ne comprend pas comment cette suite d'instruction ce rajoute et pourquoi?
    J'ai consulté tous les messages disponibles sur le forum et je n'ai pas réussi à trouver un problème équivalent et donc une solution.
    J'espère que vous aurez une idée, voir pourquoi pas une solution
    Dans l'attente d'une réponse,
    Cordialement,
    Erwan.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    message.png ‏74 KB

    Bonjour Akagi,
    Dans une chaîne de caractère, "Null" ou "\0", correspond effectivement à une fin de chaîne.
    Pour éviter ce comportement, vous pouvez changer le type de passage de paramètre dans TS en tableau de Numérique.
    Ce faisant, aucun traitement ne sera fait sur le caractère "NULL". pour rappel un char = 1 Octet, on peut donc utiliser un tableau de numérique U8 pour représenter une chaîne de caractère.
    En résumé, si votre chaîne de caractère = 3"Null"01, vous obtiendrez ainsi: tab[0] = 3, tab[1] = 0, tab[2]=1.
    Je suis désolé, mais j'ai du mal à saisir où est intégré le caractère "NULL" dans CVI, est-ce une entrée clavier saisie par l'utilisateur, autre?
    Est-il possible d'utiliser un autre caractère ou série de caractère(non spécial) permettant d'identifier cette transition/caractère spécial "Null"?
    EX: (\) = "Null", soit la chaîne 3(\)01 équivalent à 3"Null"01. Il suffit ensuite d'établir un algorithme permettant de changer (\) en "NULL".
    Cordialement,
    Rémi D.
    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;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • Mysql database connection with Labwindows/CVI 2009 sql toolkit

    Dear experienced users,
    I am using the following software/hardware:
    Windows 7/ Mysql database 5.6.15 64-bit with MySql ODBC 5.2 Ansi driver installed
    Labwindows/CVI 2009 with sql toolkit
    The user DSN of ODBC Data source administrator have been confiugred to one of mysql database. The test MYSQL Connector/ODBC is succesful.
    The Labwindows/CVI build setting is configure to debug64 after trying debug (32)
    The source code is from the example readtab.c with changes to the dsn I am testing
        hdbc = DBConnect ("DSN=dvd_collection");   
    The error message I have is confusing me.
    (it is in the attachd png)
    I thought it was due to the 64 bit mysql database. That's why I tried the 64 bit build from Labwiondws/CVI. I alsow tried Labview DB tools open connect.vi. It shows me the same error.
    Any suggestion is appreciated.
    Thanks,
    Jimmy
    Attachments:
    Capture.PNG ‏24 KB

    Jimmy
    I always use connection strings of the form "DSN=datasourcename;UID=database_user_id; PWD=database_user_password".
    Where:
    datasourcename = The name of the connection defined in the ODBC connection.
    database_user_id = One of the user identities created by the database administrator. Obviously the administrator will lock down the permissions appropriate to the task in hand.
    database_user_password = The password that identifies database_user_id, again set by the database administrator.
    Note that while it is obviously desireable to lock the permissions down as far as possible on the MySQL server, the more you do so, the slower the database will run, because of the way mySQL searches the permissions tables.

  • Non-sequential scanning with SCXI and Labwindows/CVI

    I'm trying to scan channels 0 and 2 (skipping channel 1) of a SCXI-1520 module with a SCXI-1000 chassis using LabWindows/CVI, but am getting error 10370 (Invalid Scan list).
    I've read here that the SCXI-1520 module supports non-sequential scanning, even with traditional NI-DAQ drivers, but I can't get this working.
    I'm using NI-DAQ 6.9.3 and LabWindows/CVI 6.0.
    I'm not using a channel string, but intead am using SCXI_Track_Hold_Setup and SCXI_SCAN_Setup.
    For the scan setup my arrays are:
    Module_List={1,1}
    #_of_Channels_List={1,1}
    Start_Channel_List={0,2}
    I've tried setting the Hol
    d_Count for the module to both 1 and 2 in SCXI_Track_Hold_Setup, but that doesn't help.
    Is this possible, and if so, how?

    OK, in essence, my code is:
    SCXI_Reset(chassis,-1);
    SCXI_Load_Config(chassis);
    hold_count=2; // Note: Tried 1 but that doesn't work either.
    SCXI_Track_Hold_Setup(chassis,slot,2,2,0,hold_count,device);
    // Note: tried 2,0,2 but doesn't work either, and then can't scan multiple modules.
    SCXI_Set_Gain(chassis,slot,-1,1);
    SCXI_Set_Excitation(chassis,slot,-1,VDC,5.0,&actual);
    SCXI_Configure_Filter(chassis,slot,0,BYPASS,0);
    SCXI_Configure_Filter(chassis,slot,2,BYPASS,0);
    SCXI_Configure_Connection(chassis,slot,-1,QUARTER);
    num_modules=2;
    Module_List={1,1};
    Channels_List={1,1};
    Start_List={0,2}
    SCXI_Scan_Setup(chassis,num_modules,Module_List,Channels_List,Start_List,device,0);
    // This causes error -10370:badScanListError
    Any help greatly appre
    ciated!

  • 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.

  • How do I send e-mail to a distribution list using LabWindows/CVI?

    I need to be able to send e-mail to a user-defined distribution list using LabWindows/CVI? Has anyone done this? Any ideas where I could look?

    I commented on something similar to this awhile back.  My issue was that I had the base version and didn't have the Internet classes.  So this external app worked like a charm
    It has a lot of command-line inputer options to use as well.
    http://forums.ni.com/t5/LabWindows-CVI/Need-Help-for-Sending-Email-with-LabWindows-8-5-or-9/m-p/1095...

  • How to use CAN256 and CAN257 in Labwindows CVI?

    I am trying to learn about CAN programming in LabWindows CVI. None of the samples do anything other than generate cryptic error messages. I do not have a card or interface device yet, but reading in the help files I found this:
    "NI-CAN provides a virtual CAN card with two interfaces, CAN256 and CAN257. The two virtual interfaces are connected by a virtual bus. When you write CAN frames to one virtual interface, those frames are received by the other virtual interface, and can be read as channels. This feature allows you to read and write CAN data in the same manner as two real CAN interfaces connected by a real CAN cable. The conversion does not require real NI CAN hardware, and your application is not required to check for specific CAN IDs."
    I modified the Waveform ouput project and add CAN256 to the dropdown in the uir file. However when I run it, I get the same error message as always, error -1074388725.
    Is there an example CVI code someplace to demonstrate the use of these virtual channels?

    Thanks Drew.
    Ultimately, my customer provided me with a WriteCAN256.vi and ReadCAN257.vi that were perfect for my needs. The WriteCAN256.vi along with my NI USB 8473s allowed me to provide data collection on multiple CAN devices and to verify that my Software can handle all data types from CAN devices.
    Note: My customer allowed me to share his .vi's. They are enclosed ...
    Best Regards,
    Don W
    Attachments:
    CanBus Read (Frames)_85.vi ‏55 KB
    CanBus Write (Frames)_85.vi ‏48 KB

  • How to use the checksumdll.lib in LabWindow/CVI to create CRCChecksum();

    Hi All,
    Any one know how to use the checksumdll.lib in LabWindow/CVI to create CRCChecksum() ?
    Thank you.

    Do you ave some documentation about that dll?
    Have you looked into dll properties searching for vendor name? Maybe you can look int vendorìs site and obtain some help.
    Ultimately: are you forced to use that dll or can you use any software to calculate the checksum? There are several CRCs that you can use: provided you know which is the type used you could find an algorithm to calculate the CRC and check an existing one.
    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?

  • How to set a DMA transfer type for PXIe-6536 in LabWindows/CVI?

    I have a PXI chassis PXIe-1078 with a controller PXIe-8115 running under Windows 7. The digital output board is PXIe-6536.
    I use a function DAQmxSetChanAttribute to set a property DAQmx_DO_DataXferMech to a value DAQmx_Val_DMA, since I want to use a direct memory access data transfer. This wokred well with a PCI-6534 board using the same LabWindows/CVI code before migrating it to the PXIe system.
    Unfortunately, running this code on the PXIe system reports a DAQmx error -200452: "Specified property is not supported by the device or is not applicable to the task".
    The task is created in the following simple way (the board name in MAX is 'Dev1'):
       DAQmxCreateTask ("digTask", &digitalTask);
       DAQmxCreateDOChan (digitalTask, "Dev1/port0:3", "DIG_CHANNELS", DAQmx_Val_ChanForAllLines);
       DAQmxSetChanAttribute (digitalTask, "", DAQmx_DO_DataXferMech, DAQmx_Val_DMA, 15);
    How can I solve this problem? How is it possible to choose between different transfer types?
    Thank you in advance for any hint!

    Hi CavityQED,
    The PCI-6534 is a "Digital I/O" board while the PXIe-6536 is a "High Speed Digital I/O" board, that's why they don't have the same properties.
    By the way you can use DMA transfer with this method :
    http://zone.ni.com/reference/en-XX/help/370520J-01/hsdio/direct_dma/
    Let me know if it helps you.
    Regards.
    Mathieu_T
    Certified LabVIEW Developer
    Certified TestStand 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;}
    LabVIEW Tour
    Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014

  • How to get bar graph in word in labwindow/CVI ?

    how to get bar graph in word in labwindow/CVI ?

    ashwinic9,
    spawning your question over more and more threads (the present one, this one and this other one) won't give you a faster answer; instead, it will irritate forum users! 
    Especially if you have at your disposal a fast way to perform a test. I pointed you some days ago to word report example, that writes a table to a word document: did you tried changing the graph into a bar graph and generating the report? I have done it for you and the result is OK, as you can see in the attached document.
    Now, since the example works well, there must be something in your particular situation that prevents the graph to be shown; that is: you must add some more data on your actual problem and maybe a small example that exposes the problem.
    But please: keep active only this discussion and let the other threads die! 
    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?
    Attachments:
    wordreport.doc ‏38 KB

  • I would like to know how to transform an API C++ application in MFC C++ application to use the measurement studio components or Labwindows CVI

    I don t know the way used to transform a C++ with API program in an MFC application using measurement studio or Labwindows CVI.
    Thank you for you help.

    You can use the Measurement Studio Add/Remove Components Wizard to add Measurement Studio components to your C++ application. For more information, see the "Adding and Removing Components from Measurement Studio Projects Using a Wizard" topic in the Measurement Studio reference. You can find it in the table of contents under:
    Visual C++ Help
    Tutorials
    Measurement Studio for Visual C++ 6.0
    If you're using the Measurement Studio update for Visual C++ .NET, this topic will be under:
    Visual C++ Help
    Tutorials
    Measurement Studio for Visual C++ .NET
    - Elton

  • I used to working with Labwindow CVI and i would like to know how can i use the commands "loadpanel" and "Displaypanel " in Labview. Using Invoke Nodes?

    I want to make another panel appears and runs, but i don´t want to use a subpanel. So, i would like to use somenthing similar to Loadpanel and Displaypanel, that you can use in Labwindows CVI, but in Labview, is ti possible?I hope your answers, thank you!!!

    Hi Bichillo,
    I posted an example here.
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=137&HOID=50650000000500000014570100&HTHREAD=000087828&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0
    It demonstrates how to do what you are asking.
    I do not mind you laughing at the code.
    Have fun!
    Ben

  • How does the URL of DataSocket constitute?And how to use it in LabWindows/CVI ?

    Hi !
    There's a problem puzzled me some days.How does the URL of DataSocket constitute ? And how to use it in LabWindow/CVI ?
    For example.I have downloaded a code in http://zone.ni.com/devzone/cda/epd/p/id/3787.I want to make it work properly.So I configure my DataSocket Server Manger according to the URL of this statement.
    DS_Open ("dstp://weather.natinst.com/weather/current",
    DSConst_ReadAutoUpdate, DSCurrentCallback, NULL,
    &dsCurrentHandle);
     My DateSockket Server Manger is configured as:
    However,it could not work properly when I debug it.
    There's a introduction at the top of the code."You may need to replace the references to weather.natinst.com to 130.164.140.10 if the DNS isn't working properly."So,I modified the statement into
    DS_Open ("dstp://130.164.140.10/weather/current",
    DSConst_ReadAutoUpdate, DSCurrentCallback, NULL,
    &dsCurrentHandle);
    but,it did work properly.
    We want to communicate with other computers via the URL of  DataSocket in LabWindows/CVI.Whereas,how could we make it ia the URL ?
    If anyone could help me solve this problem,I would appreciate it very much !
    Best regards.
                     xiepei
    I wouldn't care success or failure,for I will only struggle ahead as long as I have been destined to the distance.

    Hi !
    Thank you very much for your reply! I will accept your advice.
    Besides,I have another question.If I want to visit other computers or other websites,how does the URL of DataSocket  I constitute ? Does the URL has any relation with the DataSocket Server Manger ?If does,how to configure the DataSocket Server Manager to let them connected.If they have no relation,how to use the DataSocket Server Manger ?
    After all,I want to know how to use it in LabWinows/CVI ?
    Thank you very much !
    Best regards!
    I wouldn't care success or failure,for I will only struggle ahead as long as I have been destined to the distance.

  • LabWindows/CVI 2013 SP2 stops working when I try to open a file using the project file menu.

    I have windows 7 on my system and sometime late last year I starrted getting a Windows dialog telling me that LabWindows/CVI has stopped working when I try to open a file from the project file menu.  I also get an error when I run a project debug mode and use a selectFilePopup in the code.  The error says, "The program has suspended execution at address 0x75D5025E.  No source line information is available."  I've tried removing and reinstalling CVI to no avail.  Any suggestions?

    Constantin,
    Thank you for your response.  I've attached screnshots showing the version details for kernal32.dll and ntdll.dll.  I also looked at the updates to see which might have been installed when the problem started.  Unfortunately there are 15-20 updates every month.  I didn't take note of when the error started to occur.  At first it only affected my ability to open files from within the project (i.e. file->open->Source, etc).  Then I went back to modify a project that had a SelectFilePopup and found that that wouldn't work either. 
    Attachments:
    ntdll.dll version.jpg ‏15 KB

Maybe you are looking for

  • Shipping Point Determination for Sub contracting Process

    Dear Experts, While processing the GR for a Sub Contract Purchase Order, we are getting an Error  'VL 100 - Shipping Point XXX doesn't exists' However, I am not understanding where from this Shipping point is picked. Checked the Shipping point determ

  • What is the best way to turn emitter on/off very fast?

    What is the best way to turn emitter on/off very fast? Now we are using very slow shutdown. Why do we need this feature? Because it is important to solve the problem of interference, when two IR sensors are working at the same time and are grabbing t

  • How can i get the h:selectOneRadio value with javascript

    Hi all. I have this code <h:selectOneRadio id="color" style="font-family: Arial;font-weight:lighter;font-size: 12px" onclick="showColor()" > <f:selectItem itemLabel="RED" itemValue="1" /> <f:selectItem itemLabel="BLUE" itemValue="2" /> </h:selectOneR

  • Job Pricing Configuration

    Hi All, We are currently implementing Job Pricing functionality and we had a problem in mapping the survey job range with internal job. What we wanted to have is comparison with Min, Mid and Max salary of a survey job with internal job. When we reach

  • Downgrade MAC OS X10.8 Mountain Lion to 10.6 Snow Leopard

    Hi all, I have one iMac Z0m7, and it is installed MAC OS X 10.8 by default. However, for some reason, I need to downgrade Mac OS X 10.8 to 10.6 Snow Leopard. There are any way to do this? Thanks Kevin