UCalc Fast Math Parser for LabVIEW?

Several customers have been using the uCalc math parser product with LabVIEW.  Recently one LabVIEW / uCalc user has attracted my attention to the fact that the new version of uCalc FMP is now harder to use with LabVIEW.  Direct support for LabVIEW was never figured into the design of uCalc.  It just so happened that the older uCalc version worked with it.  Now, I’d like to figure out if there are enough potential uCalc FMP users to make it worth adding direct support for LabVIEW.
uCalc FMP lets you evaluate math expressions that are defined at runtime.  You can define functions, operators, and variables, and use them in your formulas.  The older version that is easier to use with LabVIEW can be found at www.ucalc.com/mathparser/ucfmp20.zip (you won’t find the old version in the current download page for now).
I myself have no experience with LabVIEW.  However, with some 3rd party help, the user who contacted me recently was able to interface the new uCalc version with LabVIEW.  Perhaps LabVIEW developers may want to weigh in.  Might you be able to create an “official” uCalc FMP wrapper for the current version of uCalc, or give some tips on what it would take for me to do it?
Daniel Corbier
www.ucalc.com

In the previous DLL, I exported a series of functions such as an eval routine that returns the result of evaluating an expression, as in
ucEval("5+4")
which would return 9; a routine to define functions as in
ucDefineFunction("Area(length, width) = length * width")
or variables as in
ucDefineVariable("MyVar = 123") 
plus a list of other routines.
The new version was completely redesigned.  You can do a lot more.  However, one exported function named uCalc() encapsulates most of the component's functionality.  Instead of exporting many routines from the DLL, wrappers for routines like ucEval, ucDefineFunction, ucParse, etc., are defined in include files for the supported compilers.  On the surface, things run roughly the same for the supported compilers, despite the changes under the hood.  But apparently not so for LabVIEW.
ucDefineVariable for instance, which previously was directly exported from the uCalc DLL is now defined as follows in the include file for Visual Basic (classic):
Public Function ucDefineVariable(Definition As String, Optional ItemAddress As Long = 0, Optional ByVal t As Long = 0) As Long
   Dim ItemDef$
   ItemDef$ = "Var: " + Definition
   If ItemAddress Then ItemDef$ = ItemDef$ + " At " + Str$(ItemAddress)
   ucDefineVariable = uCalc(uc_Define, ItemDef$, 0, 0, 0, t)
End Function
By the way, what is the link to download the evaluation version of LabVIEW?  I found links for the tutorial.  And there's a "Test-Drive LabView" link that brings me to an online evaluation version.
Daniel Corbier
www.ucalc.com

Similar Messages

  • ANN: uCalc Fast Math Parser 2.95 - better LabVIEW support

    uCalc Fast Math Parser 2.95 is now available.  With the help of a LabVIEW user, better support for LabVIEW was implemented in this version, in the form of a wrapper dll (uCalcWrp.dll).
    uCalc Fast Math Parser lets you evaluate math expressions defined at runtime.   I am not a LabVIEW user myself, but I'm told that LabVIEW has a parser, but uCalc has the advantage of being faster, and more flexible.
    See www.ucalc.com/ucalcfmp.html for details.
    Daniel Corbier
    www.ucalc.com

    Unfortunately, currently uCalc doesn't have detailed documentation specifically for LabVIEW the way it does for other supported compilers.  However, there is a LabVIEW entry in the help file (uCalcFMP.chm), under Compiler Specifics (the LV entry directs you to a topic entitled Other Compilers).  There you will see the list of uCalc routines that are exported from the DLL.  This will help you determine the number of parameters and data types to use in your prototypes.
    By the way, if the help file appears blank (as people occasionally report), simply right-click the uCalcFMP.chm file, and change the security setting to allow that file to be viewed.
    Daniel Corbier
    www.ucalc.com

  • ANN: uCalc Fast Math Parser 2.96 released

    uCalc Fast Math Parser 2.96 was officially released this week.  uCalc FMP will allow your applications to evaluate math expressions defined at runtime.  uCalc FMP can work with LabVIEW using the uCalcWrp.dll wrapper DLL (included in the download).
      For more details see:
    Product Overview
    Main Features
    What's New in v2.96
    Download
      Daniel Corbier
    Author of uCalc FMP
    www.ucalc.com
    Daniel Corbier
    www.ucalc.com

    Unfortunately, currently uCalc doesn't have detailed documentation specifically for LabVIEW the way it does for other supported compilers.  However, there is a LabVIEW entry in the help file (uCalcFMP.chm), under Compiler Specifics (the LV entry directs you to a topic entitled Other Compilers).  There you will see the list of uCalc routines that are exported from the DLL.  This will help you determine the number of parameters and data types to use in your prototypes.
    By the way, if the help file appears blank (as people occasionally report), simply right-click the uCalcFMP.chm file, and change the security setting to allow that file to be viewed.
    Daniel Corbier
    www.ucalc.com

  • Fast XML parser for java 1.1.8

    Hello!
    I have to following problem. I am using at the moment kxml2 to parse XML data and it could be faster.
    The data is parsed in a application running on different digiboxes, which use java version 1.1.8(IIRC).
    Anybody here who knows of a smallish but very fast XML parser which runs with java 1.1.8?
    O.

    Found this while browsing this forum: http://www.japisoft.com/fastparser/
    I'll try it when I get to work tomorrow. It says it is 1.1 compliant so It could be the
    thing I'm looking for.
    O.

  • Fast enough computer for LabView?

    Hello, I would like to know if I have a fast enough computer for the
    application I'm developing. I have just ordered the PCI/232-16 Serial
    Interface card from National Instruments and plan to use it with a
    Pentium 150 running Windows NT with 64MB of memory. I'm writing the
    LabView program to contain 16 individual while loops for each ports of
    the interface card (that's 16 while loops, just to let you know). I'll
    be constantly writing and reading from the ports and displaying the data
    read by the port. If anyone can comment on what I have so far, or can
    say anything about how fast LabView code executes, I'd greatly
    appreciate it.
    Thanks,
    Joe

    I may be wrong about this, but most NI cards seem to use a single UART and
    timeshare it - this could cause you serious problems if you are aniticipating
    being able to read and write from all 16 ports simultaneously. I'd check
    the hardware specification for that NI card closely before worrying about
    the computer being fast enough. I've had to revert to Comtrol RocketPorts
    in the past because of this issue.
    Cheers,
    Ben
    Jaime Rios wrote:
    >Hello, I would like to know if I have a fast enough computer for the>application
    I'm developing. I have just ordered the PCI/232-16 Serial>Interface card
    from National Instruments and plan to use it with a>Pentium 150 running Windows
    NT with 64MB of memory. I'm writing the>LabView program to contain 16 individual
    whi
    le loops for each ports of>the interface card (that's 16 while loops,
    just to let you know). I'll>be constantly writing and reading from the ports
    and displaying the data>read by the port. If anyone can comment on what I
    have so far, or can>say anything about how fast LabView code executes, I'd
    greatly>appreciate it.>>Thanks,>Joe>

  • Pls help. which java tool to use for math parser?

    hi there
    pls tell me which java tool and classes do i need to use to create a math parser for defferentiation functions. i googled the topic and only got confused. thanks in advance.

    sabbir736 wrote:
    hi there
    pls tell me which java tool and classes do i need to use to create a math parser for defferentiation functions. i googled the topic and only got confused. thanks in advance.You use a CAS (Computer Algebra System) for such a task: not Java. I recommend Maple or Matlab, or if you don't have any money to spend: you could try Maxima: http://maxima.sourceforge.net/ I heard some good things about it.

  • XML for LabView?

    Quick question:
    Is there any interest for an XML parser for
    labview? For example: a set of vi's that
    can input/parse/create/output XML files/streams.
    -A.

    2014spring wrote:
    Hi Carli,
    Thanks for asking. I got all kinds of problems when trying to use the dlls as I'm new to this. Attached is one of the problems.
    ps: The SDK can be downloaded from their website: http://www.redrat.co.uk/software/SDK/index.html.
    Thank you so much for looking into my problems!
    Have you tried contacting the manufacturer???
    They are the best resource for issues such as this.
    The DLL is a .NET DLL and Googling the error,
    http://blogs.msmvps.com/rfennell/2010/03/27/mixed-mode-assembly-is-built-against-version-v2-0-50727-...

  • Need suggestion about a fast XML parser

    I have a program which needs to parse lots of XML files of sizes varing from few MBs to hundreds of MBs. It needs to parse the file in one-pass, and for which the SAX approach is best suited. I initially tried coding this program using the SAX parser provided by Java library, but it takes way-way too much time to parse the files. I then googled out Piccolo XML Parser, but it throws ArrayIndexOutOfBound exception. Furthermore, sometimes XML files could terminated prematurely.
    Can you suggest any SAX XML parser for this job?

    I am pasting here a trimmed version of my code..... sorry this is not the simplified and complete in itself version as the norm is.
    public Vector<String> search(String dumpfile, String srfor, int type, long size, boolean showTTH, boolean phpSerialize, String hubname) {
         Vector<String> results = new Vector<String>();
         try {
             SAXParserFactory factory = SAXParserFactory.newInstance();
             SAXParser parser = factory.newSAXParser();
             BufferedInputStream ubin = new BufferedInputStream(new FileInputStream(dumpfile));
             ubin.read(new byte[2]); //To discard the starting BZ flag.
             CBZip2InputStream bin = new CBZip2InputStream(ubin);
             String line = null;
             int c=0;
             line = "";
             while((c=bin.read())!='\n' && c!=-1) line = line + (char) c;
             String dnt = line;
             if (c==-1){// (line == null){
              dnt="";
              return null;
             line = "";
             while((c=bin.read())!='\n' && c!=-1) line = line + (char) c;
             if(c==-1)// (line == null)
              return null;
             if (!phpSerialize)
              results.add("Dump's Date and Time stamp: " + dnt + "\n==========================\n"+"hubname: " + line);
             else
              results.add("$" + dnt +"\n"+"|" + line);
             if(hubname!=null && !line.trim().toLowerCase().contains(hubname.toLowerCase().subSequence(0, hubname.length()))){
              results.add("No hits.");
              return results;
             while((c=bin.read())!='\n' && c!=-1);
             FilelistHandler handler = new FilelistHandler(srfor,type,size,showTTH,phpSerialize,hubname,results);
             try{
              parser.parse(bin, handler);
             }catch(org.xml.sax.SAXParseException saxe){
              saxe.printStackTrace();
             if(results.size()==1){
              results.add("No hits.");
         } catch (FileNotFoundException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (ParserConfigurationException e) {
             e.printStackTrace();
         } catch (SAXParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
             System.err.println("Line: "+e.getLineNumber()+"; Col:"+e.getColumnNumber());
         } catch (SAXException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         return results;
    private class FilelistHandler extends DefaultHandler {
         static final int USER = 0;
         static final int FILE = 1;
         static final int DIR = 2;
         static final int ANY = 3;
         static final int UNKNOWN = 4;
         private Vector<String> results;
         Vector<String> dirs = new Vector<String>();
         private String srfor;
         private int type;
         private int level = -1;
         private long size;
         private boolean showTTH;
         private boolean phpSerialize;
         private String hubname;
         private String currentUser;
         private String currentIP;
         public FilelistHandler(String Srfor, int Type, long Size, boolean ShowTTH, boolean PhpSerialize, String Hubname, Vector<String> res) {
             srfor = Srfor.trim().toLowerCase();
             type = Type;
             size = Size;
             showTTH = ShowTTH;
             phpSerialize = PhpSerialize;
             hubname = Hubname;
             results = res;
         public void startElement(String uri, String lname, String qname, Attributes attrs) throws SAXException {
             String result = null;
             long currsize = 0L;
             String TTH = "";
             String value = "";
             int currType = UNKNOWN;
             if (qname.equalsIgnoreCase("Directory")) {
              value = attrs.getValue("Name");
              dirs.add(attrs.getValue("Name"));
              currType = DIR;
             } else if (qname.equalsIgnoreCase("user")) {
              currentUser = attrs.getValue("username");
              currentIP = attrs.getValue("ip");
              currType = USER;
             } else if (qname.equalsIgnoreCase("File")) {
              value = attrs.getValue("Name");
              currsize = Long.parseLong(attrs.getValue("Size"));
              TTH = attrs.getValue("TTH");
              currType = FILE;
             if (currType == FILE || currType == DIR) {
              // Searching.
              boolean found = false;
              result = currentUser + ":" + currentIP + ":" + (currType == FILE && showTTH ? TTH + ":" : "") + getPwd(dirs);
              if (result.trim().toLowerCase().contains(srfor.subSequence(0, srfor.length())) || currType == FILE && TTH.equalsIgnoreCase(srfor)) {
                  found = true;
              if (type != ANY && currType != type)
                  found = false;
              if (size >= 0 && currType == FILE)
                  if ((size == 0 && currsize != size) || (size != 0 && (((double) (Math.abs(currsize - size))) / size) > 0.1))
                   found = false;
              if (found) {
                  if (!phpSerialize) {
                   if (currType == FILE)
                       result = result + "/" + value;
                  } else {
                   int index = 0;
                   result = serializeEntity(index++, currType == FILE ? "f" : "d");
                   result = result + serializeEntity(index++, currentUser);
                   result = result + serializeEntity(index++, currentIP);
                   if (currType == FILE && showTTH)
                       result = result + serializeEntity(index++, TTH);
                   result = result + serializeEntity(index++, getPwd(dirs));
                   if (currType == FILE)
                       result = result + serializeEntity(index++, value);
                   result = "a:" + index + ":{" + result + "}";
                  results.add(result); // ADDING THE RESULT.
         public void endElement(String uri, String lname, String qname) throws SAXException {
             if (qname.equalsIgnoreCase("Directory")) {
              dirs.remove(dirs.size() - 1);
         private String getPwd(Vector<String> dirs) {
             String pwd = "";
             for (String dir : dirs) {
              pwd = pwd + "/" + dir;
             return pwd;
         private String serializeEntity(int index, String s) {
             return "i:" + index + ";s:" + s.length() + ":\"" + s + "\";";
         public Vector<String> getParsedData() {
             return results;
        }

  • Still problems serializing xml-docs with xml-parser for java v2.0.2.7

    Hi !
    I'm using the Oracle XML Parser 2.0.2.7.0 and get some problems when serializing the XMLDocument.
    In one class (DOMOut) I parse a xml-file with the oracle.xml.parser.v2.DOMParser, then obtain the XMLDocument and write it to System.out
    In another class (DOMIn) I fetch the XMLDocument from System.in, search for a given Element and print it's TextValue (if existing) to System.out
    That is where the error occurs.
    I get the XMLDocument from System.in but the returning NodeList from doc.getElementsByTagName() is empty. [nl.getLength()==0] even if it shouldn't be.
    Look at this code and output:
    [DOMOut]
    DOMParser parser = new DOMParser();
    parser.parse(url);
    XMLDocument doc = (XMLDocument)parser.getDocument();
    ObjectOutputStream out = new ObjectOutputStream(System.out);
    out.writeObject(doc); out.flush();
    [DOMIn]
    ObjectInputStream in = new ObjectInputStream(System.in);
    XMLDocument doc = (XMLDocument)in.readObject();
    doc.print(System.out);
    NodeList nl = doc.getElementsByTagName("Name");
    System.out.println("Length of NodeList: "+nl.getLength());
    if (nl.getLength()==0)
    System.out.println(argv[0] + ": not in this document!");
    else {
    XMLNode node = (XMLNode) nl.item(nl.getLength()-1);
    System.out.println(node.getNodeName() + ": " + (node.getFirstChild()).getNodeValue());
    This is the relevant code.
    I javac both classes and then do this:
    java DOMOut xmltestfile.xml > xx
    java DOMIn Name < xx
    And get this as output:
    <?xml version = '1.0'?>
    <!DOCTYPE course [
    <!ELEMENT course (Name,Dept,Instructor,Student)>
    <!ELEMENT Name ((#PCDATA)*)*>
    <!ELEMENT Dept ((#PCDATA)*)*>
    <!ELEMENT Instructor (Name)>
    <!ELEMENT Student (Name)*>
    ]>
    <course>
    <Name>Calculus</Name>
    <Dept>Math</Dept>
    <Instructor>
    <Name>Jim Green</Name>
    </Instructor>
    <Student>
    <Name>Jack</Name>
    <Name>Mary</Name>
    <Name>Paul</Name>
    </Student>
    </course>
    Length of NodeList: 0
    Name: not in this document!
    Has anyone an idea?
    If I do all this stuff without serializing it works.
    If I do not search for argv[0], but the string "Name" it fails.
    If I do search for "*" it works fine!
    I'm very confused could anybody please help me a bit??
    Stefan.
    [[email protected]]

    The link has been fixed. You will go to the v2 download page
    now. Sorry for the inconvience.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    Renilton Oliveira (guest) wrote:
    : I didn't find the file for version 2.0.0.0 as well.
    : Renilton
    : Andrei Filimonov (guest) wrote:
    : : I tried to download XML Parser for Java v2 it seems that
    only
    : v
    : : 1.0.1.4 is available. Could you please give an exact URL for
    : v2
    : : download?
    : : Andrei Filimonov
    : : Oracle XML Team wrote:
    : : : The Oracle XML v2 parser is now available for download
    here
    : as
    : : : an early beta release and is written in Java. It features
    : an
    : : : improved architecture over the Oracle XML v1 parser and
    has
    : : : shown better performance on small to large XML documents.
    : It
    : : : will also be able to format the XML document according to
    a
    : : : stylesheet, having integrated an XSLT processor.
    : : : Version 2 of the XML Parser for Java, besides
    incorporating
    : an
    : : : XSLT processor, has been re-architected from version 1.
    This
    : : has
    : : : resulted in a number of changes to the class names
    : especially
    : : : those that support Namespaces. See v2changes.txt and
    : the .diff
    : : : difference files in the sample directory.
    : : : Oracle XML Team
    : : : http://technet.oracle.com
    : : : Oracle Technology Network
    null

  • Using XML Parser for PL/SQL in 8.1.7

    The XML Parser for PL/SQL is part of 8.1.7,
    which is a good thing.
    Now my question: What steps do I need to
    perfom after installation of 8.1.7 to make
    the parser available for my PL/SQL packages,
    which call
    xmldom.makeNode()
    xmldom.appendChild()
    xmlparser.newParser()
    and other procedures from these packages ?
    The schema SYS does not contain the
    required packages XMLDOM, XMLPARSER, ...
    after installation of 8.1.7.
    Do I have to call loadjava and
    sqlplus @load.sql extra as in 8.1.5 and
    8.1.6 before ?
    Of course I'd like to use the natively
    compiled XML parser
    libjox8_oraclexml_parser_v2.so.
    Doesn't the above loadjava override the
    installation of this fast parser ?
    How can I be safe, that I am using the fast
    parser under the PL/SQL cover ?
    Tnx for your help
    Richard
    null

    Richard,
    That's weird? The packages were installed when I installed 8.1.7. You can just download the latest version of the XDK and reinstall using loadjava and then running the load.sql file to get the packages in. You should use the -f parameter for loadjava to force the new classes to be loaded over the old ones. For code examples and lots of other good tips on using the XDK, check out my new website for everything Oracle and XML at: www.webspedite.com/oracle.

  • Driver for MM4000 series (motion controller) for labview 6.1 (gpib)

    Hello,
    I need the instrument driver for a newport motion controller MM4006.
    I found the driver for MM4000 series, it could be ok, but I need it for labview 6.1 and not  for labview 7 or 8.
    Is it possible to find this driver for older version of labview than 7 or 8?
    Thanks
    Best regards.
    Ludovic

    Good idea, I'm not sure of the result, but... Here is the zip file (aviable here).
    (oups, you were faster ^^)
    Message Edité par Mathieu R. le 12-08-2006 05:19 PM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  
    Attachments:
    npmm4000.zip ‏419 KB

  • Aeroflex 2975 driver for LabVIEW 8.0

    Is there a way to convert the Aeroflex IFR 2975 driver for LabVIEW CVI for use in LabVIEW 8.0?  OR, is there a driver already developed for this? 

    Frank,
     I am using the LV 7.1.1 version of this CVI driver in an application I wrote. We should be able to recompile this for 8.0. Basically as I explained with no handshaking the instrument falls out of sync with the controlling computer. Basically the only GPIB command that is supported in that driver is *IDN?. So what I have done is after other  calls I use this command and compare the return string to see if it is what I expected. If not I use a popup telling the operator that a GPIB error occurred and to reboot the IFR to clear the bus. I also have instructed the operator to run NI Spy in the background...this seems to cut down the occurance of these errors. Another way to clear the bus that is faster and usually works is to stop the application, and read the bus using MAX until you see a timeout when there is no more data available( usually twice). Then rerun the application. Depending on the application this might be a work around though not an elegant one.
     Since the driver was converted from a CVI driver it uses the call library function node. This does not allow us to control the timing between the Write functions and Read functions. If you are doing something that is relatively simple you could use the TCL command set and VISA to write a driver. Just put a wait function between the Write and Read function and experiment with the timing until it looks like it won't fail. I've considered doing this myself but have been hoping that they will actually make the instrument 488.2 compliant. I am assuming that the actual error is that the data buffer is being read by the controller before the instrument is finished writing to it. The other scenario is that the data buffer might not actually be getting flushed every time it is read. I'm hoping my first assumption is correct or they have even more problems with the instrument.
     In January of '05' they actually enabled the following commands *SRE xx, *SRE? and *STB?. I recently wrote a simple vi to see what happens to the Status Byte after using IDN? command and reading the data buffer. The MAV bit begins logic low, then goes hi when the data is available. After reading the data (i.e. "IFR Systems, 2975.....) I again query the Status Byte. The MAV bit is still in a logic hi state. I sent screenshots of the front panel and block diagram as well as the .spy files to them. All was heavily notated and they said they were going to look at it. If anyone is interested in this I can post this code as well.
    Using LabVIEW 2010SP1 and TestStand 4.5

  • Circular Buffer implementa​tion for LabVIEW 8.5

    Greetings,
    Several weeks ago I downloaded the implementation of a circular buffer for LabVIEW 8.5 from ni.com. The current webpage is:
    http://zone.ni.com/devzone/cda/epd/p/id/5883
    Unfortunately, this webpage has been updated since then and the available files for download (swcircularbuffer1.0.19.zip) are for LabVIEW 8.6.
    So my question is: where can I find the implementation of a circular buffer for LabVIEW 8.5 ?
    Thank you very much!
    telmo
    Solved!
    Go to Solution.

    Thanks Smercurio,  I needed this too. 
    After looking at the code and seeing a note on the download page concerning a possibly more efficient method I'm wondering whether anyone has tried it yet.  I'm thinking that using the in-place structure to simply overwrite a pre-defined memory space would indeed be a better implementation of a circular buffer than the somewhat kludgy bounds checking and data wrapping that the NI code provides.  I plan to work on it myself of course but my boss gave me one of those "it would be great if we could have it tomorrow" talks that I'm sure most LV coders know only too well.  [While the C++ guys get two weeks to write Hello Wurld. ]
    Anyway, the app is quite simple:   Run my USB-6251 card with a single channel as fast as possible (1.25MS/s) collecting to the circular buffer.  When a trigger is pressed, store the buffer so I get a file with a few mSec of pre-trigger data.  
    I haven't yet tried the NI code so it may be sufficient for my needs but if anyone is working with the in-place structure and has ideas, code or suggestions I'd love to hear them.
    Using LabVIEW: 7.1.1, 8.5.1 & 2013

  • Help on java math parser

    hi there,
    can anyone pls tell me where i can get some help on 'java programing for math parser'? if the answer is yes then pls tell me where.

    I don't know of a parser that's part of the standard java library, but surely there must be tons of stuff findable with Google. Have you tried to google this?

  • M Series code for Labview

    I am using the PXI-6230 on Linux.  I downloaded the MHDDK for NI-Visa, and the code uses C, along with some examples that are in C.  There are some good examples, but I need working code that will work in Labview.  Are there some examples that people have for the PXI-6230?  Or is there some way I can use the C code for Labview?  Any help is appreciated.
    Thanks,
    Thomas Pham

    Hi Thomas,
    The DDK is a set of reference examples for writing a device driver from scratch. Since most write-it-yourselfers expect to be running in an uncommon environment (where LabVIEW cannot run) or need to undergo some kind of final validation or peer review (where not everyone may have LabVIEW available), a text-based implementation provides them a faster "see how it works" starting point for those purposes.
    When programming for the 6230 from LabVIEW, you have a few options available.
    You can use the existing C++ chip objects in the DDK but manipulate them into a shared library (a .so) so that you can call the Library Function Node in LabVIEW [1].
    You can use the register I/O palette [2] in VISA and transcribe the C++ chip objects into LabVIEW.
    Expand the DAQmx Base driver [3] to make the extra RLP calls for the 623x (explained below).
    All three are somewhat challenging, and you will also need some additional information about the specifics of programming for the 623x sub-family. Since they have isolated IO, some of the registers are re-purposed for enabling and disabling the isolators. There are several threads in this forum [4] about the 623x-specific calls that need to be made.
    If you choose to exapand the DAQmx Base driver, you will find that a bug in the code will make the system think your 6230 is a 6222 [5]. In addition the 623x-specific RLP calls, you'll need to correct and differentiate the 6230 from the other M Series boards.
    [1] Call Library Function Node -- LabVIEW Help
    http://zone.ni.com/reference/en-XX/help/371361G-01​/glang/call_library_function/
    [2] Register Access Functions -- VISA Help
    http://zone.ni.com/reference/en-XX/help/371361G-01​/lvinstio/high_level_reg_acc_func/
    [3] DAQmx Base 3.4 for Linux
    http://joule.ni.com/nidu/cds/view/p/id/2128/lang/e​n
    [4] 623x RLP Considerations
    http://forums.ni.com/t5/forums/searchpage/tab/mess​age?location=Node%3A90&q=623x#message-list
    [5] DAQmx Base 3.4 incorrectly attaches to the 6230
    http://decibel.ni.com/content/message/20827#20827
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)

Maybe you are looking for

  • Family Sharing - what's the difference with sharing iTunes/App Store ID/password?

    I currently share my iTunes and App Store account with my son and my wife. I am thinking about turning on Family Sharing. However, beyond my having to approve my son's purchases and him not having to know my password, I am not sure of the real benefi

  • PC Alert 4 and Windows XP bluescreens and crashes?

    I'm just inquiring as to wether anyone else has had trouble with PC Alert 4? Is it PC Alert or the newest KT4V-6712 mobo drivers.... which is the culprit? A few months back, after a routine Live Update (installing the newest versions of my mobo drive

  • Posted depreciation value is missing in Tax dep area

    Hi I have an asset  where  depreciation values (posted ) is missing from  Tax depreciation area.Its ( posted values dep) there in Book depreciation .It's also there in planned values of  tax depreciation areas.Do I have to run ASKB   to put it (poste

  • What is the use of the key date in filters in IP?

    Hi all, can anybody tell me what the key date on the filter in the planning modeler is good for? It seems to be always overwritten by either the key date in the query or the one set for the infocube in the planning modeler. Even if I don't set a key

  • NEW ADOBE ACCOUNT REMOVING DRM FROM ALL BOOKS

    I have had ADE and Sony Reader for PC for some years without any major problems. Recently I have been having some issues downloading a particular book - the acsm would not download the file from Google Play Books. In trying to fix this I seem to have