Jump to content
Norm Kirchner

REx - Remote Export Framework and Remote Events

Recommended Posts

lEver wanted to communicate with VI which are across context boundaries?

Those typical boundaries, are

  • different LabVIEW project

  • LabVIEW into LabVIEW EXE,

  • EXE to EXE

  • PC to PC across a network or even the internet


 

Usually to get around these boundaries, we have to flatten to some easier transport mechanism like a string and then unflatten on the other end.

 

There are a whole other host of situations and and reasons why cross context boundary communication is useful and not just a simple slam dunk using existing primitives in LabVIEW

 

REx (Remote Export Framework) is a useful framework that you can take advantage of to eliminate the typical boundaries

Instead of spend 45 minutes trying to describe it, see the linked videos below, (also in the PPT) until more written content gets made.

 

Basic Demo - Current App http://screencast.com/t/JbW2mM3jx

 

Creating & Using a New Command http://screencast.com/t/GhkE2CEx4Ip

Send into EXE http://screencast.com/t/bxbI0B4l8Xs

EXE to EXE http://screencast.com/t/xCJw2B39mFQr

 
Debugging Ports / Services http://screencast.com/t/E0RXrgM3Yex
 
Rebuild of EXE (addendum) http://screencast.com/t/36oWmrybjRMj
 
*******************
1/12/15 Update: attached new VIPC which upgrades REx to 1.14.0.31 to address the issues w/ things not moving into the tools menu properly

Remote Export – REx Framework.pptx

REx Installation Full.vipc

  • Like 2

Share this post


Link to post
Share on other sites

Very cool Norm. Just saw the presentation by Nancy and I can't wait to try this out.

Share this post


Link to post
Share on other sites

Just updated VIPC which set VI in framework to necessary behavior for reentrancy, error handling and clone type.

Should be safe to move any code forward that uses this

Share this post


Link to post
Share on other sites

Any chance of this ending up on the Tools Network eventually?

Share this post


Link to post
Share on other sites
Any chance of this ending up on the Tools Network eventually?

Potentially.

I'd just need to go through the hoops to get it Qualified.

Probably some more/better documentation as well. :P

 

Would that help you out particularly?

Share this post


Link to post
Share on other sites
Very interesting !!!

Any Chance to have it in 2011 version ?

Regards

Eric

I think I could roll it back that far. when could you try it out?

Share this post


Link to post
Share on other sites

@Bobillier

Please check out the attached files that I did a save for previous on.

I don't have 2011 on my pc (or the time to check the install at the moment) so if you could see if it's operational for you that'll help me out (along w/ anyone else that wants to use the 2011 version)

 

Thanks,

Norm

REx 2011 Port.zip

  • Like 1

Share this post


Link to post
Share on other sites
@Bobillier

Please check out the attached files that I did a save for previous on.

I don't have 2011 on my pc (or the time to check the install at the moment) so if you could see if it's operational for you that'll help me out (along w/ anyone else that wants to use the 2011 version)

 

Thanks,

Norm

Thanks for the port!

I've just tested on my machine with LV2011 and it works just fine. I was able to run the DEMO Command Sender.vi & DEMO Command Listener.vi in the development environment, as well as the sender in the IDE and the listener as separate executable. No relinking issues or any kind of problem with file versions this far.

 

EDIT: Well ok, the Rex_Sprinboard library seems to miss some files for generating user icons and such. I guess that's just not available in LV2011. It's missing files from ..vi.libLabVIEW Icon API*

Does my installation miss something?

Edited by LogMAN

Share this post


Link to post
Share on other sites

Thanks Norm

I can open Rex.LVLib without problem in LV2011.

Your Zip contain Session-Root.Lvclass too. is it normal?

Please, is it possible to have your exempl in LV2011 ? Oups i see them in other folder

Best regards

Eric Bobillier

Edited by Bobillier

Share this post


Link to post
Share on other sites

Hi Norm After few controls , it appears that one def-type ( KeyedArray.ctl)is missing in your dependency for the Rex_Sprinboard,and all about ICON API are missing too. Eric

Edited by Bobillier

Share this post


Link to post
Share on other sites
EDIT: Well ok, the Rex_Sprinboard library seems to miss some files for generating user icons and such. I guess that's just not available in LV2011. It's missing files from ..vi.libLabVIEW Icon API*

Does my installation miss something?

All, I can't do much about the Icon stuff for the 2011 port as a lot changed around those versions.

Your best bet is simply to edit the Command Creator Springboard and comment out the icon modification part of the code.

It should be easy to find but if you run into trouble let me know and I'll direct you along.

 

Hi Norm After few controls , it appears that one def-type ( KeyedArray.ctl)is missing in your dependency for the Rex_Sprinboard,and all about ICON API are missing too. Eric

KeyedArray.ctl should make it's way onto your PC if you install AMC from the tools network.

I'm sorry about the dependency, but because I'm not going to spend too much time on the 2011port, hopefully this will work

Please let me know if that doesn't

 

Happy wireworking

~,~

Share this post


Link to post
Share on other sites

Hello Norm,

 

Thanks for your work!

I installed the REx using "REx Installation Full.vipc" in LabVIEW 2012 SP1.

Everything is working perfect (the same as described in videos), but I can't create a new command with the "MAIN - Create New REx_CMD.vi".

I have the attached error message displayed when press "Build".

 

Can you help me to resolve this issue?

 

Regards,

Andrei

 

 

 

post-52427-0-27167200-1404994863.png

Share this post


Link to post
Share on other sites

I resolved the issue and now everything is working smoothly...

The REx folder had to be moved on C:\Program Files (x86)\National Instruments\LabVIEW 2012\project\

 

Andrei

Share this post


Link to post
Share on other sites

Is it possible that the REx to send/receive data between two EXE on the same local host, but build from different projects?

Thanks!

Share this post


Link to post
Share on other sites

Is it possible that the REx to send/receive data between two EXE on the same local host, but build from different projects?

Thanks!

 

Yes.

This allows you to talk between ANY LabVIEW instance irrespective of the boundary.

Good luck!

The only thing to be very intentional in setting up, is making sure that you have the right 'Service Name' configured for the listener and pointing to that specific one on the remote connection

 

Good luck

Share this post


Link to post
Share on other sites

Very, very cool, Norm. :)

 

Let's say I wanted to remotely monitor a test system. Would it be breaking to have the remote system broadcast its disposition to the entire network every 30 seconds or so, ignoring errors in the case that no listeners are running? What are the limits of data types that can be passed? What would be the ideal way to show the entire front panel of the remote system? Duplicate the front panel on a listener, bundle the data on the sender, then unbundle on the listener?

 

Edit: I'm imagining more than just the remote panel capabilities built into LabVIEW.

 

Edit 2: So I upgraded from 1.12.0.27 (installed when I installed TLB`, I think) to the version attached here (1.14.0.29), and now the REx»New Command button is gone from my tools menu, and the examples folder went from having the source files shown in your video, to only having the Listener exe and ini in it. It's like it uninstalled what I had and didn't replace it. I did uninstall the whole package and reinstall it, and restart LabVIEW, but no joy.

 

Edit 3: Ok, I found the demos, at least. Looks like everything is in user.lib now. Were the tools menu options supposed to go away?

 

Ryan R.

Edited by RnDMonkey

Share this post


Link to post
Share on other sites

This is not going well for me at all. The springboard just won't work. Between the package being installed to a different location than the springboard expects, and the attached casting error, I can't get it to work.

 

Ryan R.

 

 

post-43593-0-66642500-1406562235_thumb.p

post-43593-0-09390700-1406562237_thumb.p

Share this post


Link to post
Share on other sites

Well, after a full system restart, the menu options are back, and creating a new command worked! Amazing what restarting a Winblows machine can do!

 

Ryan R.

Share this post


Link to post
Share on other sites

Well, after a full system restart, the menu options are back, and creating a new command worked! Amazing what restarting a Winblows machine can do!

 

Ryan R.

 

I'm sorry for all the troubles.

It's true that I haven't done as much testing of the install w/ the recent builds.

I'll double check and re-post the updates that you found. Thank you!

 

Also, since you've now got command creation going, are you able to get it to talk across the boundaries you need?

 

~,~

Share this post


Link to post
Share on other sites

How secure are the messages communicating this way via tcp/ip and the vi server (correct me if this is not the case)?

Is it open to simple sniffing/wireshark/viserver listen to all?

I know this is not a specific issue for REx, I just thought that you might have a solution maybe by communication between processes in memory for local machines or hashing/encrypting the messages.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By David Akinpelu
      I am implementing a TCP connection between MyRio(client) and Python(server). The goal is to send data from the server to the client, perform some calculations, and send the result to the server. I need to keep changing the data being sent to the client. I noticed the first data works fine and the result returned to the server, but the client could not read subsequent data. I debugged and was able to detect that the error is coming from the first read function is the "Reading values subvi"  but I don't know how to correct it. How do I go about it?
      I have attached the files below.
      Reading Unknown Bytes from TCP.vi Second_client.vi SimpleServer.py
    • By Deon
      The Threshold Hysteresis VI allows an input (for example, a sensor) to drift out of an inner limit without generating an invalid flag, but if it drifts outside an outer limit it then becomes invalid. For the reverse, when the input crosses back into the outer limit it remains invalid until the value falls inside the inner limit.
      For simplicity, only one input parameter is provided for both the inner & outer limits, and is negated for the lower limit, as generally tolerance limits are equidistant from the nominal.
    • By Deon
      View File Threshold Hysteresis v1.0 LV8.6.1
      The Threshold Hysteresis VI allows an input (for example, a sensor) to drift out of an inner limit without generating an invalid flag, but if it drifts outside an outer limit it then becomes invalid. For the reverse, when the input crosses back into the outer limit it remains invalid until the value falls inside the inner limit.
      For simplicity, only one input parameter is provided for both the inner & outer limits, and is negated for the lower limit, as generally tolerance limits are equidistant from the nominal.
      Submitter Deon Submitted 11/10/2014 Category General LabVIEW Version License Type  
    • By jossie
      Hello I am quite new to labview and I have some questions regarding labview. We have came up with a simulation build in labview as shown in the folder. However, we will be making use of Myrio to connect current and voltage sensors to send the data to labview when labview is running. We are currently having difficulties trying to search if it is possible to send the wave files and the popout messages ( messagebox.vi and Player2Wins.vi) to NI Dashboard for Labview in Ipad by using myrio. Is it possible for myrio to store wave files and the additional VIs and sending these to NI Dashboard for Labview? 
       
      Otherwise, it is possible for Labview to send the entire program.vi, messagebox.vi and Player2Wins.vi to cloud and people are able to see the GUI in program.vi remotely? ( We have found information like Labview web services etc. We hope that people are able to view our GUI and press the " Press start" button as well as closing the popout messages in a website not from our local network). 
       
      I sincerely apologize if what I am asking does not make sense to people who are reading this. I hope that someone will help me with this as it is very difficult for me to do and I need some guidance from people who are familiar with these. Thanks for taking your time to read and your reply. 
      Simulation_Build_(3).zip Pop-up_Message.vi Player2Wins.vi
    • By edupezz
      Hello, i created a new tips repository in:
      https://edupez.com/
      English and Portuguese
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.