Using LabView (Output to file function) to retrieve GPS RMC data

Hello Everyone,
I was wondering if anyone knows the process of getting the RMC data from a GPS unit into a labview file.
I already have it being processed by the program, and now I need to acquire the data and put it into a file where I can analyze it. The tricky part for me is getting it into a file (speed, directional properties, latitude and longitude) and organised so that I can shove it into excel and do my calculations there.
If anyone has any tips or answers, it would be greatly appreciated :-)
- Luke

If you can interface to the GPS unit, it should not be problem to write data to a ASCII file. Are you using a RS232 link then communication with your GPS?
Then the data is in the computer you have several options for parsing the string. A RMC data may lock something like this $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A The first thing to do is to create an array of strings using the
 "Spreadsheet String To Array Function" and "," as the delimiter
EDIT: Take a look here also http://www.gpsinformation.org/dale/nmea.htm#RMC
Message Edited by Coq rouge on 06-03-2009 06:05 PM
Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)

Similar Messages

  • How to implement a callback function using LabView's Call Library Function Node?

    I am trying to call a fuction from a SDK.dll library using the Call Library Function Node. The SDK was provided to
    me and I do not have the source code, just the .dll and .h files.
    The SdkSetPropertyEventHandler function has a callback fuction as one of its parameters. How do I implement the
    callback using the CLF node? I am a good LabView programmer but this is my first time using the Call Library
    Function Node. I have read all the info I can find on NI's web site and the discussion board but cannot figure
    this one out. I am using LabView 8.6.
    The SDK.h deacribes the function as:
    //  Function:   SdkSetPropertyEventHandler
    SdkError SDKAPI SdkSetPropertyEventHandler(
                SdkCameraRef                    inCameraRef,
                SdkPropertyEvent                inEvnet,          
                SdkPropertyEventHandler         inPropertyEventHandler,
                SdkVoid*                        inContext );
    //  Description:
    //       Registers a callback function for receiving status
    //          change notification events for property states on a camera.
    //  Parameters:
    //       In:    inCameraRef - Designate the camera object.
    //              inEvent - Designate one or all events to be supplemented.
    //              inPropertyEventHandler - Designate the pointer to the callback
    //                      function for receiving property-related camera events.
    //              inContext - Designate application information to be passed by
    //                      means of the callback function. Any data needed for
    //                      your application can be passed.
    //      Out:    None
    //  Returns:    Any of the sdk errors.
    A separate header file called SDKTypes.h contains the following data:
    typedef  SdkUInt32  SdkPropertyEvent;
    typedef  SdkUInt32  SdkPropertyID;
    typedef  void       SdkVoid;
    typedef  struct __SdkObject*    SdkBaseRef;
    typedef  SdkBaseRef    SdkCameraRef;
     SdkPropertyEventHandler
    typedef SdkError ( SDKCALLBACK *SdkPropertyEventHandler )(
                        SdkPropertyEvent        inEvent,
                        SdkPropertyID           inPropertyID,
                        SdkUInt32               inParam,
                        SdkVoid *               inContext );
    Thanks for your help.
    Alejandro
    Solved!
    Go to Solution.

    alejandroandreatta wrote:
    I am trying to call a fuction from a SDK.dll library using the Call Library Function Node. The SDK was provided to
    me and I do not have the source code, just the .dll and .h files.
    The SdkSetPropertyEventHandler function has a callback fuction as one of its parameters. How do I implement the
    callback using the CLF node? I am a good LabView programmer but this is my first time using the Call Library
    Function Node. I have read all the info I can find on NI's web site and the discussion board but cannot figure
    this one out. I am using LabView 8.6.
    Basically you do not do that. LabVIEW does not know pointers and certainly not function pointers. What you should do instead is writing a C DLL that implements the callback and also exports a function to be called by LabVIEW that translates between the callback and a LabVIEW user event. Look for PostLVUserEvent() here on the NI site to find examples how to do that.
    Rolf Kalbermatter
    Message Edited by rolfk on 02-11-2009 08:00 PM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to open saved files using 'read from text file' function

    Hi everyone, I am having a hard time trying to solve the this particular problem ( probably because I am a newb to lanbview ). Anyway , I am able to save the acquired waveforms by using the 'Write to text file' icon. I did manually modify the block diagram of the 'Write to text file' icon and create the correct number of connector so as to make my program work. But now I have no idea on how to modify the block diagram of the 'Read from text file' block diagram to make my program 'open' my saved waveforms. Or i do not have to modify anything from the block diagram of the 'Read from text file'? Can anyone teach/help me connect up? Do i need the build array on the "open" page?
    Here are some screenshots on part of my program  
    let me know if you guys would need more information / screenshots thank you!
    Attachments:
    ss_save.jpg ‏94 KB
    ss_open.jpg ‏94 KB
    modified_writetotextfile.jpg ‏99 KB

    Ohmy, thanks altenbach. oh yeah i forgot about those sub VIs. will upload them now. Was rather demoralized after reading the comments and really struck me on how weak i'm at on labview really hope to get this done. But of course i have to study through and see how it works. Actually i am going to replace those 'signal generators sub vi' with ThoughtTechonology's sample code so i can obtain data waveforms real-time using Electrocardiography (ECG) ,Electromyography (EMG ) and Electroencephalography (EEG) hopefully i can find out how to connect the sample code.
    ( ps . cant connect it now unless my program is working otherwise labview will crash ) 
    ( p.s.s the encoder of my biofeedback trainer already acts as an DAQ so i wont need to place an DAQ assistant in my block diagram i suppose )
    The sample code of ThoughtTechnology is named as attachment.ashx.vi. too bad i cant use it and present it as my project
    Attachments:
    frequency detactor.vi ‏53 KB
    signal generator.vi ‏13 KB
    attachment.ashx.vi ‏40 KB

  • Using hsgetvalue function to retrieve Hyperion Planning Data

    Hi All,
    Lots of discussion about hsgetvalue, but still I do not succeed in using this function. Maybe someone can help.
    Is this function work for HFM or also Hyperion Planning? Currently we are using Hyperion Planning 11.1.1.3 with related Essbase. This is what we've tried in Excel:
    =hsgetvalue(“";”Scenario#BudFin;Year#FY12;Period#Begbalance;Partner#NA_Partner;Product#A251;Account#BOM Weight;Version#Working;Misc#R-SBDA;Entity#No Entity;Currency#Qty") ===> the result is syntax error.
    =hsgetvalue("","Scenario#BudFin","Year#FY12","Period#Begbalance","Partner#NA_partner","Product#A251","Account#BOM Weight","Version#Working","Entity#No Entity","Currency#Qty","Misc#R-SBDA") ===> the result is No Connection.
    Actually I'm still confused about the Connection parameter, which connection name we have to use?
    Thanks.
    Gajah

    Hi,
    HsGetValue
    Data sources: Financial Management, Hyperion Enterprise, Essbase
    HsGetValue retrieves data from the data source for selected members of a dimension. When HsGetValue retrieves no data, the value specified for the #NoData/Missing Label replacement option is used.
    When users select Refresh or Refresh All, only HsGetValue is called. When users select Submit, HsSetValue is called first, HsGetValue is then called only if HsSetValue returns successfully.
    Syntax
    HsGetValue(“Connection”,”POV”)
    Connection parameters can have these values:
    Empty: the default connection
    HsActive: the active associated connection
    The user-defined name for a private connection
    You connect to data sources through shared or private connections.
    _# Shared Connections_
    Shared connections are stored in a central location and are available to multiple users through the Smart View Panel. You cannot add, edit, or rename shared connections, but you can save them as private connections, which you can edit and rename.
    _# Private Connections_
    Private connections are those that you create by saving a shared connection to your local computer or by entering a URL to a provider that is not configured for shared connections. When you create a private connection, it becomes the active connection.
    Creating Private Connections
    You can create a private connection from a connection that is not listed in Shared Connections if you know the URL.
    To add a connection using a URL:
    1. From the Smart View ribbon, click Panel.
    2. From the Smart View panel, click the arrow next to "Home" Icon, and then select Private Connections.
    3. In the text box, enter the URL or the local storage directory for the data source to which you want to connect. The URL syntax for the various data sources is as follows.
    Financial Management: http(s)://servername:port/hfmofficeprovider/hfmofficeprovider.aspx
    Hyperion Enterprise: http://servername:port/heofficeprovider/heofficeprovider.aspx
    Planning: http(s)://servername:port/HyperionPlanning/SmartView
    Essbase: http(s)://servername:port/aps/SmartView
    Reporting and Analysis: http(s)://servername:port/raframework/browse/listxml
    Financial Close Management: http://servername:port/fcc/servlets/smartview/fcmsvservlet
    Oracle Hyperion Strategic Finance: http://servername:port/StrategicPlanning/SmartView
    4. Click Next Button
    5. Enter the Name of the connect as "Essbase_Conn"
    6. Enter username, password and connect the worksheet.
    Now you can create functions by two methods -
    1. Using Function Builder
    2. Manually (Which you have opted)
    To create a function manually:*
    1. In Excel, click the cell in which you want to enter the function.
    2. Enter = (equal sign).
    3. Enter the function name, HsGetValue, for example.
    4 Enter parameters for the function,
    HsGetValue(“Connection”,”POV”)
    Connection parameters can have these values:
    # Empty: the default connection
    # HsActive: the active associated connection
    # The user-defined name for a private connection
    so the function looks like this:
    HsGetValue(“Essbase_Conn”;"Year#Jan;Measures#Sales;Product#100;Market#East;Scenario#Actual")
    5. To refresh the worksheet, from the Smart View menu, select Refresh. Functions are validated only when you refresh them.
    REFERENCE: Chapter 2 & Chapter 15 of the SmartView Guide at http://docs.oracle.com/cd/E17236_01/epm.1112/sv_user.pdf
    KosuruS
    Edited by: KosuruS on Jul 12, 2012 9:55 AM

  • Have anyone used Labview to call MSP430_Memory function in the MSP430.dll?

    Hi,
    I am trying to read data from Infromation Memory of a MSP430 MCU. I am using MPS-FET430UIF to communicate with the MCU and having trouble to get data using the function MSP430_Memory. Have anyone done this before? I greatly appreciate any help from this forum.

    Good Afternoon,
    I just have a couple of quick questions for you:
    How are you going about calling the dll in LabVIEW?
    Are you using the call library function node?
    Could you post your code so we can take a look at it and get a better idea how you are going about it?
    I hope you have a great rest of the day!
    -Cody C

  • Acrobat 10 crashes when excel files are used in the Merge Files function

    When using the Combine Files into a PDF function of Acrobat 10, Acrobat constantly crashes the moment it encounters and excel file in the list of files to be merged. So far the only way to fix this has been to export the excel file, from Excel 2013, as a PDF and then merge with that, but that can't be the only solution. Anyone have any luck with this or is it just an innate problem with Acrobat 10 and Office 2013. I should also mention both Office and Acrobat are on their latest updates and this is on a Window 7 64 bit system.

    Acrobat X PDFMaker (involved in the "combine" process) does not support Office 2013.
    See:
    Compatible web browsers and PDFMaker applications
    Be well...

  • Use LabVIEW 8.x file layout

    Hi there,
    From the LV help:
    Specifies to use a flat file layout to store source files inside a stand-alone application, shared library, or Web service. LabVIEW enables this option by default for build specifications you load from LabVIEW 8.6 or earlier. National Instruments recommends you disable this option for applications you develop in LabVIEW 2009 or later.
    Why shouldn’t I use the LV8.6 way?
    Or, why is the LV2009 or later method better?
    Thanks in advance for any reaction!
    Best regards

    Okay yeah the OO reason is a good one, but let me make a more basic example that I think is also a common one.
    Lets say I download some cool library from the tools network.  This library can do things like read and write .DOCX files (this is just an example).  This library contains VIs like "Open.vi" and "Close.vi".  Other libraries may also have "Open.vi" but they are part of a different library.  And in memory these names have the library appended.  So my VIs name in memory is actually "Cool Office Library.lvlib : : Open.vi".  This way LabVIEW can distinguish between the VIs that have the same name on disk, but are part of a different library.
    Now it should be obvious that the "Open.vi" from one library cannot exist in the same directory as another "Open.vi" even if they are part of different libraries.  Windows simply doesn't allow you to have two files of the same name, in the same directory.
    And this is where the file layout comes in.  In 8.x and older the layout was flat, putting all VIs needed for the EXE into a single directory.  This would mean attempting to put my office "Open.vi" in the same directory as all the other VIs.  In 2009 and newer this is handed by making an EXE that isn't a single directory, and instead it is layed out more or less like it is in Windows, where one "Open.vi" can exist in one directory, and another in another directory.  
    So if you choose the 8.x layout, and you have multiple "Open.vi" files, it will place them outside of the EXE without any block diagram.  This gets messy because now you EXE isn't the only file you need, you also need the support directory some times called "Data".  In the 2009 and newer layout all the VIs can be in the EXE in a nested directory structure.  Generally just don't use the 8.x layout unless you need to, and really you should need to.  Having that not checked helps fix naming collisions.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Receiving an error when trying to commit files using subversion in Dreamweaver: file or directory is out of date

    I'm trying to use subversion in dreamweaver. I've followed the setup steps and tested the connection to the svn repository. All good. I've even updated some files before successfully. Now, I'm trying to commit changes made in my local working copy of several files to SVN. I'm receiving Error#160024: Commit Failed. File or directory <subject file name> is out of date; try updating resource out of date" I've tried right click->version control->update. Then commit again. Same error. Any help?

    Hi rmcproperties,
    Found a discussion thread that could help you http://stackoverflow.com/questions/87950/how-do-you-overcome-the-svn-out-of-date-error
    Thanks,
    Preran

  • Configuration "use next available filename" in "write measurement file" function

    My project recording signal and saving using "Write to Measurement File" function. I want to perform record multiple segments signals should have configured option "use next available filename". For example, if the original file is data.tdms then it will save the file into: data_1.tdms, data_2.tdms, data_3.tdms, ...
    To do that I use a button control enable and disable write functionality.
    In the past I have done normally. Now, I can not make it anymore, now every write new data were add into one file created without the next new file as desired, it has almost become a option "Append to file".
    I use LabVIEW 2013
    Solved!
    Go to Solution.
    Attachments:
    write measurement file.vi ‏54 KB

    Hello ducta9,
    It looks like you currently have the Write to Measurement File Express VI configured to "save to one file" - this means that all data from a given session will be saved to the same file.  The file number will only be incremented once the application is restarted or the Reset Boolean input is set to True.  If you want to save to a series of files, select the "save to a series of files" option and configure the Express VI as needed to generate new files at intervals. 
    If you want to write variable-size chunks of data to a new file every time the user clicks the Enable button, you might be able to get away with just wiring a True constant to the Reset.  I would still recommend taking a look at the options available in the save to a series of files settings.
    Best Regards,
    Tom L.

  • TDMS Low level file functions and Saving Front Panel image

    Am using TDMS low level file functions to save while also plotting data in my data acquisition programme.  However, I also want to programmatically be saving the front panel image on every run of my data acquisition.  I have coded all other aspects, except the behavior of functionality of saving the front panel image on every successive runs of the application.  Unfortunately, I just have no idea on how to code this aspect on LabVIEW, and all effort to search for example codes on so far have not been successful.
    I would appreciate any useful hints or steps from anyone for me to follow, in order to accomplish this behavior, and that is being able to programmatically save my front panel images while using TDMS low level file functions in my File IO system of my application.
    Thanks in advance.

    Tebefia wrote:
    Am using TDMS low level file functions to save while also plotting data in my data acquisition programme.  However, I also want to programmatically be saving the front panel image on every run of my data acquisition.  I have coded all other aspects, except the behavior of functionality of saving the front panel image on every successive runs of the application.  Unfortunately, I just have no idea on how to code this aspect on LabVIEW, and all effort to search for example codes on so far have not been successful.
    I would appreciate any useful hints or steps from anyone for me to follow, in order to accomplish this behavior, and that is being able to programmatically save my front panel images while using TDMS low level file functions in my File IO system of my application.
    Thanks in advance.
    Did you see this link?
    CLA, LabVIEW Versions 2010-2013

  • "HOW to use Labview call Dll compiled by VC++"

    "hello,I use VC++ compile a DLL,and i want to call DLL Function in LABVIEW program.But there is a dll function
    when i call it in labview.There is error.The prototype of Dll Function that make error is "USHORT DLLFUN __stdcall IBWRT(unsigned short dev_address,const char *pstrWrite)",The second paramenter is a char pointer,
    and the paramenter pass a command which content is
    "MEASURE:CURRENTC? 1A,0.001MA".
    When i use VC++ to call this function,i program followed:
    CString m_wrt;
    int ReturnW;
    m_wrt="MEASURE:CURRENTC? 1A,0.001MA";
    char buffer[40];
    strcpy(buffer,m_wrt);
    ReturnW=IBWRT(4,buffer);
    and this call is correct.
    But when i use labview to call this function.ther
    e is
    error.So, who can help me,to tell me how to call this
    function.Thanks."

    Are you asking about porting code or calling C++ code in LabVIEW?  As far as porting code, there's no easy way to move code back and forth between LabVIEW and C++.  However, if you are trying to call C++ code in LabVIEW, you can compile it as a DLL and call it in LabVIEW using the Call Library Function node.
    Chad B. » National Instruments » ni.com

  • Call a java function on retrieval

    Hi,
    Is it possible to call a java function on retrieval from a member formula or may be business rule. Will it be more efficient than the member formula itself ? Currently our member formula on dynamic member is timing out.
    It'll be nice if you could point me towards some material to read on and experiment.
    Any pointers will be helpful.
    Thanks.

    >> if I'm wrong but this CRC will work only if my data is in database tables
        Data dynamically retrieved from Essbase VIA APS with using MDX queries
    >>dynamic calc member is retrieving and calculation data from the planning cube itself.
      No . It ONLY for stored member.
      I need reduce using DCALC
    >> Do you have any more detailed info on how to deploy this and how to call this in member formula or calc script
      Just now i don have any detailed document for this. But
       1)  You need to know about Essbase Load Rules, Maxl Load Data, MDX data retirvies.
       2)  You need advanced PL-SQL experience for using it

  • How to output a file showing visible time code from the source tape

    Can someone tell me which settings to use to output a file that has a visible time code readout from the source tape.  I shot an interview and now I want to make a video file for a transcriber so they can include the time code reference numbers from the source video on the written transcript.  Also, does the file need to be output from the timeline, or can this be done directly from a clip in the project.
    Thanks.
    Specs:
    PC with Windows Vista
    Premier Pro CS4

    Hi,
    You could try maybe selecting all your clips on the timeline and drag the "timecode" video effect onto it ( type the word timecode at the top of effect panel on left to find it fast )...
    Then you can change it from smpte if you want -----to source or media ...something like that...or to 'generate'...use what you like best..
    you can also change the codes position in the clip...
    Rod

  • How to retrieve GPS data?

    Hey
    Can anybody tell me if it is possible, in a generel way, to retrieve GPS positioning data? (and maybe post a link, where i can read more? )
    MY test devicde is a SonyErikson W760, with a buidin GPS reciever!
    I searched a little, but i don't know that much about how to retrive that kind of data.
    DO i have to use Locationprovider as in this sample??
    Criteria c=new Criteria();
                c.setHorizontalAccuracy(1000);
                c.setVerticalAccuracy(1000);
                c.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
                LocationProvider lp=LocationProvider.getInstance(c);
                Location loc=lp.getLocation(60);
                QualifiedCoordinates qc=loc.getQualifiedCoordinates();
                f.append("Alt: "+qc.getAltitude());
                f.append("Lat: "+qc.getLatitude());
                f.append("Long: "+qc.getLongitude());Or am i totally wrong?
    Al

    Hey.. Thanks...
    Yes I found some articles that described the topic. Thanks.
    I Read that you actually could retrieve an approximate position, from the gsm network, using the following four paramenters:
    MCC (Mobile Country Code),
    MNC (Mobile Network Code),
    LAC (Location Area Code),
    CellID.Could, anybody tell me if that is supported in the Location API ?? Or how to transform those four paramenters into a location point ??
    Al

  • Logging data in a file using Labview VIs vs. Mathscript functions.

    Hello,
     I'm working on a data logger at 200 Hz frequency. I wanted to log the data to a file after eace sample received. When I used (fopen,fprintf,....) on Mathscript, the Labview started to log the data at a slower rate. I then used the Labview file VIs and it is working fine up till now.
    My questions are as follows:
    1- Are the file functions in the Mathscript slower than the Labview VIs ?
    2- Is saving the data to a file after each sample is received a good idea or is there a better idea ? I just don't want to keep the data in the memory and after all the data is logged, I flush them to a file ... because, it seems that the PC will run out of memory.
    Thank you,
     Walid

    wfarid wrote:
    Hello,
     I'm working on a data logger at 200 Hz frequency. I wanted to log the data to a file after eace sample received. When I used (fopen,fprintf,....) on Mathscript, the Labview started to log the data at a slower rate. I then used the Labview file VIs and it is working fine up till now.
    My questions are as follows:
    1- Are the file functions in the Mathscript slower than the Labview VIs ?
    Yes. That's because you're going through another layer of software. Why were you trying to use MathScript to log data to file in the first place? Are you a Matlab "aficionado"? 
    2- Is saving the data to a file after each sample is received a good idea or is there a better idea ? I just don't want to keep the data in the memory and after all the data is logged, I flush them to a file ... because, it seems that the PC will run out of memory.
    It doesn't make sense to save data after each sample. File I/O is an expensive operation in terms of time, and you have the operating system to deal with, so while you may be able to keep up the rate for some time, eventually it will be thrown off. You can do as suggested which is to wait until you have a certain amount and then write that to file, or you can set up a producer-consumer or master-slave architecture. Let one process/loop collect the data and put into a buffer, like a queue, and the other process/loop can stream it to disk at a more reasonable rate. You just have to make sure the buffer is large enough so that if the file I/O gets hung up you won't reach the buffer's limit.

Maybe you are looking for