Jump to content

Controlling external applications using RPC


Recommended Posts

Has anyone implemented the RPC protocol in G to control external applications via RPC? I am looking at automating some tests using an external chasis which can be controlled via RPC calls. I would like to use LabVIEW as the automation platform to leverage our current code bas for communicating and controlling the product under test. I have seen the LabVIEW XMPRPC server but that is for controlling LabVIEW via RPC, not the other way. Any pointers or suggestion would be appreciated.

Thanks

Link to post
Share on other sites

QUOTE (Mark Yedinak @ Jan 21 2009, 08:30 AM)

Has anyone implemented the RPC protocol in G to control external applications via RPC? I am looking at automating some tests using an external chasis which can be controlled via RPC calls. I would like to use LabVIEW as the automation platform to leverage our current code bas for communicating and controlling the product under test. I have seen the LabVIEW XMPRPC server but that is for controlling LabVIEW via RPC, not the other way. Any pointers or suggestion would be appreciated.

Thanks

Mark,

I'm making the assumption that you're talking about the XML-RPC server project in the CR? If so, that does include an example of creating a LabVIEW call into an XML-RPC server. You are correct that this project mostly supports the server side, but it includes all of the stuff you need to pack XML-RPC into a request for any XML-RPC server and parse the response (see the Call Generate Sine Wave.vi for an example). But, you first just call it RPC, so I'm not clear exactly which RPC implementation and protocol you mean - there are lots of them and the XML-RPC project only supports one!

Mark

Link to post
Share on other sites

QUOTE (mesmith @ Jan 21 2009, 09:50 AM)

Mark,

I'm making the assumption that you're talking about the XML-RPC server project in the CR? If so, that does include an example of creating a LabVIEW call into an XML-RPC server. You are correct that this project mostly supports the server side, but it includes all of the stuff you need to pack XML-RPC into a request for any XML-RPC server and parse the response (see the Call Generate Sine Wave.vi for an example). But, you first just call it RPC, so I'm not clear exactly which RPC implementation and protocol you mean - there are lots of them and the XML-RPC project only supports one!

Mark

The chassis I want to control only uses your basic RPC. They do not support XML-RPC. their commands are documented but I the mechanics of the RPC for sending the commands. I looked at the RFC specs for RPC and could work from those but if someone has already done this it would make my life easier.

I can also capture a network trace of their GUI communication with the chassis and reverse engineer the communication. I will go down this road as a last result though.

Link to post
Share on other sites

QUOTE (Mark Yedinak @ Jan 21 2009, 09:21 AM)

The chassis I want to control only uses your basic RPC. They do not support XML-RPC. their commands are documented but I the mechanics of the RPC for sending the commands. I looked at the RFC specs for RPC and could work from those but if someone has already done this it would make my life easier.

I can also capture a network trace of their GUI communication with the chassis and reverse engineer the communication. I will go down this road as a last result though.

OK - so this is the ONC RPC as specified in IETF RFC 1831 (that's a pretty ancient standard in computing years)? I guess I'm still a little confused because to the best of my knowledge there is no "basic" RPC. RPC (Remote Procedure Call) has been implemented a thousand different ways - SOAP, CORBA, Windows Remoting, etc, and in the grand tradition of computing none of them are compatible with any of the others! So, I don't really have anything else to offer except encouragement!

Good Luck!

Mark

Link to post
Share on other sites

QUOTE (mesmith @ Jan 21 2009, 10:32 AM)

OK - so this is the ONC RPC as specified in IETF RFC 1831 (that's a pretty ancient standard in computing years)? I guess I'm still a little confused because to the best of my knowledge there is no "basic" RPC. RPC (Remote Procedure Call) has been implemented a thousand different ways - SOAP, CORBA, Windows Remoting, etc, and in the grand tradition of computing none of them are compatible with any of the others! So, I don't really have anything else to offer except encouragement!

Good Luck!

Mark

Yes, it is a pretty old RFC. It looks like I may need to look at a network trace. I am sure it will be fairly straight forward but I was hoping it might have been done already. My guess is that it will be a Windows based method since their GUI interface is a Windows based application.

Thanks again for the suggetions.

Link to post
Share on other sites
  • 2 weeks later...

QUOTE (Mark Yedinak @ Jan 21 2009, 11:36 AM)

Yes, it is a pretty old RFC. It looks like I may need to look at a network trace. I am sure it will be fairly straight forward but I was hoping it might have been done already. My guess is that it will be a Windows based method since their GUI interface is a Windows based application.

Thanks again for the suggetions.

If you are talking about the MS RPC protocol you may want to think again about that approach. This is not just a simple protocol but the full blown DCE RPC specification with MS proprietary extensions. The various network protocol layers that this all can be embedded in each other, and the various security providers that the different layers can use including several encryption layers will likely make this a never ending project to be implemented in LabVIEW.

As Mark has explained RPC is just a term used for anything that can allow remote execution of code through some kind of network connection. In that sense even VI Server is an RPC protocol. So you really need to find out the dialect of RPC you are talking about.

Rolf Kalbermatter

  • Like 1
Link to post
Share on other sites

I have been talking with the vendor for the test equipment I will be controlling and it looks like we have another much more straightforward approach. After looking at the network traces of the communication it didn't look like it would be a very easy protocol to implement.

Thanks for all the suggestions.

Link to post
Share on other sites
  • 2 years later...

I got same problem about ONC/RPC on LabVIEW,and needs some advises about that.

I need to build ONC/RPC Server on a PXI controller with LabVIEW on WINDOWS XP,so the other PC can treat the PXI controller as a LXI Instrument,I have read the specifications of LXI and VXI-11 and some other papers,and have Search the NI forumn and LAVAG,so I download XML-RPC example,RPCGEN,windows SDK and so on,but seems helpless,and I found someone said that it is difficult to build ONC/RPC on windows,and Microsoft's RPC is different from ONC/RPC,I also downloaded the JAVA Remote Tea ONC/RPC library for windows,but I know nothing about JAVA.

It is said that the LXI Consortium has the code for ONC/RPC,but only valid for its members.

Which way mybe helpfull?Any reply is appreciate.

Link to post
Share on other sites

I got same problem about ONC/RPC on LabVIEW,and needs some advises about that.

I need to build ONC/RPC Server on a PXI controller with LabVIEW on WINDOWS XP,so the other PC can treat the PXI controller as a LXI Instrument,I have read the specifications of LXI and VXI-11 and some other papers,and have Search the NI forumn and LAVAG,so I download XML-RPC example,RPCGEN,windows SDK and so on,but seems helpless,and I found someone said that it is difficult to build ONC/RPC on windows,and Microsoft's RPC is different from ONC/RPC,I also downloaded the JAVA Remote Tea ONC/RPC library for windows,but I know nothing about JAVA.

It is said that the LXI Consortium has the code for ONC/RPC,but only valid for its members.

Which way mybe helpfull?Any reply is appreciate.

This is a library implemented in C, that claims to implement the ONC/RPC protocol. It's old but fully based on the original Sun specs.

This is a C# implementation and this and this are in Java.

  • Like 1
Link to post
Share on other sites

This is a library implemented in C, that claims to implement the ONC/RPC protocol. It's old but fully based on the original Sun specs.

This is a C# implementation and this and this are in Java.

Thanks Rolfk! I will try the library implemented in C ,thank you very much!

I also got some informations form VXI-11 Server Example.I have simulated a VXI-11 call message using TCP functions on LabVIEW,but still a long way to go.

I will report here fews days later.

Have a good day!

Link to post
Share on other sites
  • 8 years later...

I've got a need for ONC-RPC from LabVIEW running on a Linux system.

 

Looks like that library link is dead that you posted.  I will try to dig around to see if it just moved.  

Does anyone know of existing toolkits?  I'd look at VIPM, but my main laptop died and is being fixed and I am not allowed to install any software on this loaner PC. 

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.