12-21-2010 11:01 PM
I am using VME-MX2 board and everything is working fine with the software developed in LabWindows.
I have one more application developed in visual studio with RTX-RTSS () system, which is using real time os IntervalZero (formerly Ardence and Venturcom) RTX is the only software solution architected as a high-performance extension to control Microsoft Window.s
Now I need to share some data between this 2 applications. Could you suggest what is the best possible way to share real time data?
Awaiting your quick reply.
12-27-2010 10:41 AM
What language is the application in Visual Studio written in? That will affect what API you can use to communicate between the two processes. Just to check, are both applications running on the same machine?
12-29-2010 07:56 PM
Happy New Year !!!
Thanks for your reply. Please find below the answers to your questions,
Yes, both applications running on the same machine.
Application 1 -
What language is the application in Visual Studio written in?
The application in Visual studio consist of following 3 modules,
1. HIgh Level Program - User interface is written in C# and Win32 process
2. Intermediate Level Program is written in C++ and Win32 process. (Activex Control)
3. Low Level Program is written in C and Real time process. (Time-Critical I/O control)
This one is with RTX-RTSS system, which is using real time OS IntervalZero (formerly Ardence and Venturcom).
Application 2 - Written in LabWindows and it uses VME-MXI-2 for PCI.
Both applications are running and now I need to share some data among these 2 applications.
Awaiting for your reply and guidance.
Thanks with regards,
12-30-2010 01:42 PM
You have several options. You could use Windows to communicate between your processes, specifically with pipes. The language difference between the two applications should not matter as long as you are sending and recieving what you expect. Generally pipes have a client-server relationship. There is some example code on the web for this, such as this.
However, since you are using two NI products to develop your application, it is probably going to be easier to work with either DataSockets or Network Variables. Which one you want will depend on what you want to optimize, which is described in a little more detail in the article Migrating to Measurement Studio Network Variable from DataSocket. Additional Measurement Studio documentation can be found in the Measurement Studio help by searching for DataSocket, specifically Using the Measurement Studio DataSocket .NET Library in the local help. Documentation on DataSocket in CVI can be found by searching the CVI help for datasocket, specifically in the DataSocket Overview.
Help for Network Variables can similarly be found, but here are some additional links to online resources:
Comparison of LabWindows/CVI Network Variable Connection Types
Adding Network Variables to a Measurement Studio Windows Application
I hope this helps. Happy new year to you as well!
01-09-2011 09:08 PM
Is there any way I can use RTX-RTSS API's to establish communication between LabWindows/CVI and RTX RTSS developed in visual studio? I want to use RTAPI.h or RTKAPI.h (real time api) in LabWindows/CVI to use shared memory created by RTX-RTSS system.
Can you suggest anything regarding it?
Thanks with regards,
01-10-2011 04:54 PM
I think that the documentation on the RTX API that you have will be the most useful to you. CVI is an ANSI C development environment, so as long as that API works with ANSI C, then you can use it in CVI. The rest is a question of how to develop with RTX, which is not an NI product and so I can't offer much expertise at all.