Jump to content
Norm Kirchner

REx - Remote Export Framework and Remote Events

Recommended Posts

A user of REx took things to beyond what I thought someone might, and started sending messages every 10ms or less.

By doing so it exposed a potential issue if you're using REx across a network / through the EXE boundary as well I believe.

 

The act of calling the CBR (Call By Reference node) under the hood as REx does, causes some time to be used by the UI thread.

So if you're going to town on making REx calls and then start interacting with the UI a bunch long w/ updates and re-draws,

You can see a performance slow down in the latency of the calls being made.

 

See the link for a low level explanation of the usage of the CBR and the UI thread
http://forums.ni.com/t5/LabVIEW/Threading-and-Re-Use-of-buffers-Using-Call-By-Reference-node/td-p/1506046

 

I could comment more, but I wanted to get this out there before it slipped through the cracks


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.

 

Hey there Goof.

The state of the security is that of whatever VI Server does, which I'm pretty sure is just basic flattening.

 

However, for those of you that are concerned about that, just this NI week, I sat down with a customer and found a novel way to replace the sole usage of VI server as the transport mechanism, which in turn should give the ability to use other more secure methods like web services and such that can use HTTPS.

 

Do let me know if this is a hard need or just something that you figure would be something really good to consider adding / checking on 

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.

 

Hi,

 

Very late I know, but I have just caught up with the presentation given by Nancy at the 2013 NI Week and 2014 as well.

 

Does anyone know if the example that was shown during this presentation with Rex communication to three different clients is available for download ? It look quite interesting and I would love to have a closer look.

Share this post


Link to post
Share on other sites
I sat down with a customer and found a novel way to replace the sole usage of VI server as the transport mechanism, which in turn should give the ability to use other more secure methods like web services and such that can use HTTPS

 

Hmmm. I just sat down and attempted to give Rex websocket capabilities since it is already event driven, follows the Open. Write/Read and Close  structure and *should* have slotted straight in with a simple wrapper (I'm updating the Websocket API to use HTTPS and thought this would be a great use case).

 

The only issue I found was that there is no background "service", so to speak, that could monitor the TCPIP to generate the events since VI Server methods evoke directly remotely (via the ACBR). Did you add a background VI service, or did you go through the web service interface to get to the users webservice VIs?

Share this post


Link to post
Share on other sites

  • I am having trouble getting this package to work. I think this is due to the installer putting code in places other than it is supposed to be (as others have noted above). I have tried moving things to try to fix this, but am not having any luck.  Is there an updated installer that fixes these issues, or does anyone have a detailed description of the changes needed to make the installed package work properly?

Share this post


Link to post
Share on other sites

So I'm getting a little confused here. Everything is installed in the user lib at first, which doesn't insert the "Rex - New Command" utility in the Tools menu. Moving the whole Rex folder to C:\Program Files (x86)\National Instruments\LabVIEW 2014\project\ does the trick. But now when I click on "Rex - New Command", it can't find the files it needs and seems to be looking for them in the user lib.

 

Long story short, what files should be where?

 

Thanks!

Share this post


Link to post
Share on other sites

So I'm getting a little confused here. Everything is installed in the user lib at first, which doesn't insert the "Rex - New Command" utility in the Tools menu. Moving the whole Rex folder to C:\Program Files (x86)\National Instruments\LabVIEW 2014\project\ does the trick. But now when I click on "Rex - New Command", it can't find the files it needs and seems to be looking for them in the user lib.

 

Long story short, what files should be where?

 

Thanks!

 

 

 

  • I am having trouble getting this package to work. I think this is due to the installer putting code in places other than it is supposed to be (as others have noted above). I have tried moving things to try to fix this, but am not having any luck.  Is there an updated installer that fixes these issues, or does anyone have a detailed description of the changes needed to make the installed package work properly?

 

 

 

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.

 

All,

I apologize for the long delay, but I've finally updated the post with a new VIPC file which addresses the Tools Menu REx create new message.

Please let me know if this does not resolve your issues.

 

Thanks,

Norm 

~,~

ni_lib_rex-1.14.0.31.vip

Share this post


Link to post
Share on other sites

In the REx - Send Command.vi is there a reason you do not expose the the caller by default

 

Wait For Response ? & Timeout, ms as controls and Command Timed Out ? as an indicator

 

they would seem to be logical things that any calling VI would want to set or check

Share this post


Link to post
Share on other sites

Hello,

I tried to implement it into my project, but I always have an error 15 :

"Error 15 occurred at REx.lvlib:Remote Connection Session.lvclass:Validate Remote Session.vi:3480001

Possible reason(s):

Able to connect to application but invalid Active Listener ID.

Validate Listener ID and try again
==============
Attempting to Connect to
Applicaiton Name: LabVIEW.exe
Address:
Port #: 3363
Service Name:
Remote Listener ID: test"

I tried without connecting the Listener ID like in the example, but I had the same error. And explanations videos are no longer accessible !

I had the 4 last lines of the listener.exe ini file into my ini file but it doesn't work neither...

Any solutions or maybe a version for LabVIEW 2017 ?

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.


×
×
  • Create New...

Important Information

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