LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple Displays & communication between apps.

Does anyone out there have any experience using multiple displays with CVI applications? 
 
I'm not sure whether to use two computers for these two applications, and communicate between them via TCP, or use one computer, two displays and ???? to communicate between the two applications.
 
Two displays are required, as one is an Instructor and one is a Student.  I don't think that I can use one application because the Student will often have a modal dialog box in foreground, while the Instructor needs to be able to do things.
0 Kudos
Message 1 of 4
(3,040 Views)
Multidisplay isn't that hard in general.  You'll just need to get the monitor infomation and then display and move the panel to whichever monitor you want.  One thing you'll need to watch out for is any type of general popup message though... you just need to set the "default" monitor before you make the popup call, otherwise it may appear on the wrong monitor.

Without any specifics, it sounds like you would be able to use one physical computer with two monitors and one application.  You can just lock the panels to a certain location on whichever monitor.  There is one catch though in that the mouse will be treated as one.... i.e. if the student selects something the teacher will have to move the mouse back to his monitor and vise versa.  You can always use touch screens (which is what I do) and then not have to worry about excess mouse movement.
0 Kudos
Message 2 of 4
(3,038 Views)
Thanks, gtoph.  Good info.  I experimented a bit -- ran two aps, one with a SetPanelPos @ +1024 Horiz, to move it to the second monitor.  Worked pretty well. 
 
There are issues still.  And yes, I'm using touch screens, but the Student will use a mouse half the time.  Issue:  If the second monitor is not turned on at the same time (I guess) or before the main computer and monitor, it remains disabled.  This requires the operator to go to the Displays control panel and enable the monitor -- very bad for a kiosk situation.  Issue:  Can't do this with a single app, because as I said before, the student will have a modal dialog box in the foreground for long periods while the Instructor needs to do things.  Thus the idea of two apps.  I don't have the mechanics of communication between two apps on the same machine.
0 Kudos
Message 3 of 4
(3,031 Views)

One option as described here is to use shared memory to allow communication between programs running on the same machine. An alternative option which might better suit your application is to implement a TCP client/server approach. While this is normally targetted at applications on different computers, it still allows both client and server app to run on the same machine if desired, just by using the appropriate network addressing (localhost, IIRC) which can be held in a configuration file. Again, the CVI examples for TCP should give you plenty of ideas.

JR

0 Kudos
Message 4 of 4
(3,023 Views)