Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Software Distribution

Highlighted

Hi,

I'm trying to wrap my head around distributing software for CompactRIOs. I have a software application that acquires data using C-series modules and custom FPGA logic to process data. I have a few goals for distributing this application:

  1. I don't want customers to be required to have a LabVIEW development environment to install the software. The added step of having to ship the hardware first to me to setup the system is highly undesirable.
  2. Make the installation process as simple as possible. Ideally a single file that I can send them that they install through SSH or MAX
  3. I'd like to be able to support hardware configurations that I don't have the hardware for myself

The options I've considered:

  • RAD images - Fulfills #1 and #2, but not #3 since I can't take an image of a system I don't have. There's also a problem where these cRIO may be managed using SystemLink and re-imaging a system blows away their minion ID
  • Plain rtexe file - Fulfills #1 and #3, but not #2 since the customer won't be able to deploy chassis settings and shared variables. They also need to manually install NI software drivers through MAX (not a deal breaker though)
  • Package - Can create a package distribution that wraps the rtexe build. I haven't tested this, but this should fulfill #2 and #3. Packages have a nice dependency feature that allows you to setup dependencies on NI driver software (although this may only work when using SystemLink). Still have problem with chassis settings and shared variables needing to be deployed.

I like the idea of the package route. When customers have SystemLink they can just all the package to their repo and install. Without SystemLink they just need to ssh into the cRIO and install the package using OPKG (and maybe manually install driver dependencies). I'm getting hung up on deploying chassis settings and shared variables though. Is there a way to do this outside of LabVIEW? Maybe a Host VI that I can create that they run to set the cRIO up? Is there a better way to do all this that I'm not considering?

 

 

0 Kudos
Message 1 of 2
(93 Views)

Here are my two cents regarding the open questions you post:

 


@mbremer wrote:

[...] Is there a way to do this outside of LabVIEW? Maybe a Host VI that I can create that they run to set the cRIO up? Is there a better way to do all this that I'm not considering?


I know you can deploy the network shared variables from the application itself, per Deploying Network Shared Variables from a Compiled Executable.

 

The targets settings might require more work than checking two boxes in the build specification. I am unsure of all the pieces that go into it (disclaimer: I always use the RAD Utility as-is), but it might be a good exercise to dig into the source code and see how it is handled there: Replication and Deployment (RAD) Utility with LabVIEW 2018

 

Hopefully you also get to try the packages and SystemLink option. Perhaps adding these server capabilities of remote monitoring and data analysis might also rise the customer value of your solution.

 

In any case, let us know your final decision. This is one of those cases where no matter the amount of tools available, there doesn't seem to be a direct answer. I am curious to see how it turns out.

 

All the best,

0 Kudos
Message 2 of 2
(55 Views)