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:
The options I've considered:
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?
Here are my two cents regarding the open questions you post:
[...] 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,