LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

cases programmatically from xml in case structure

I give an example of my intentions:

 

I have 5 devices sending CAN messages. All have their unique ID's.

 

I have 5 different GUI's which get their values from the CAN messages updates.

 

Not all messages are intended for all 5 GUI's. So I want to make some sort off central CAN service process that receive an xml config file from a client GUI. This xml file tells the CAN service which ID fits at which GUI.

 

GUI1 updates its values from 3 ID's -> EES,IES,AES. GUI1 sends an xml to the CAN service which maps it to him.

GUI2 updates its values from 5 ID's -> DDR,DFR,DSR.GUI2 sends an xml to the CAN service which maps it to him.

and so on....

0 Kudos
Message 11 of 12
(371 Views)

There are a lot of ways you can do this, but I would recommend the following:

 

  1. Use a subpanel on your main VI to host the GUI of the item being monitored.  This GUI will be loaded dynamically in response to the ID from the CAN.  You may or may not be able to use the same GUI for multiple IDs, depending on how similar they are.  Note that it my be easier to have a single GUI and show/hide controls if the functionality is similar enough.  The choice will depend on your preferences and the rest of the design.
  2. Separate the message processing into a different VI/process than the GUI.  This is also dynamically loaded based on the ID.  Once again, you may be able to use the same processing for multiple IDs.

You can implement these dynamic loads either with VI server or LabVOOP.  If you need an example of VI server use, check out this series of posts (the second one in the series covers subpanels). 

0 Kudos
Message 12 of 12
(364 Views)