Maybe I'm trying to pound a square peg into a round hole, so please let me know if I'm abusing LV, but ...
I'm trying to parameterize our RT VI app that deals with digital output channels. We use the same basic VI for multiple configurations. The only thing that changes is the channel allocations. So for instance, actuator 1 is on port0/line5 for one configuration and port1/line2 in another. I really don't like the idea of modifying the VI every time we have a new configuration because it makes configuration management insane. If I make a change to the basic VI, now I have to upate N copies of the VI and hope I catch everything.
So I'm making the main app VI read an XML configuration file that specifies all the allocations. Sounds great at first, but how do I create the XML file? I created a VI that manages the data in the VI, allowing the user to add/remove channels and edit the name and channel and then save it to an XML file. The configuration is comopsed of an array of clusters, with the cluster containing the name and DAQmx channel. My intent was to let the user select the channel from the list of valid channels by using the DAQmx Global Channel control. But the problem is, the configure VI runs on the host, which doesn't see any of the channels because they are on the RT target. But if I try to run the configure VI on the target, it refuses to deploy because I have GUI widgets.
Is my approach fundamentally flawed? Is there a better way of parameterizing our VI? Or is there a trick to getting access to the valid channels on the host VI? The information MUST be available because after all, when I modify a target VI and select a global channel constant, I'm doing this on the host.
Thanks,
Keith.