03-13-2023 01:58 PM
I have two video cards on a PC both with 2 outputs a piece. Is there a way to use LabVIEW to output a test image to each port individually? All I want to see is the test image on a monitor connected to the different ports. Thanks for your help!
03-13-2023 03:50 PM
As far as I know, LabVIEW can't interact directly with the video card. It can, however, send an image to each monitor, which would be enumerated by Windows. You can create a window, then set which panel it displays on and set it to Maximized.
In other words, you would need Windows to recognize the ports and monitors before LabVIEW could do anything with them. If there are some lower level API's available then someone else might be able to help. It would be good if you could explain what you're actually trying to do.
03-13-2023 03:55 PM
/google "LabVIEW Boarderless front panel"
See if this gives you any ideas...
03-14-2023 12:52 PM
Thank you for your replies. I will try to explain my problem a little better. Imagine you have 2 video cards
with 2 ports on each card in your computer. The goal is to test all of those ports and ensure you can output
video on each. How would you do that programmatically with LabVIEW? Imagine all ports are connected to a different monitor. Can you write a program to output an image out each port and see it on each monitor?
Thanks.
03-14-2023 12:55 PM
I guess I'm confused as to why you can't just do this with Windows. Hook up four monitors- do you see the desktop? Then the ports work.
03-14-2023 10:35 PM
So I don't believe video is being output on all ports all the time. I also do not want the user using the control panel or configuring any ports on there own. I am wondering if there is a way I can program a test to output video on each port one at a time and verify it. I will check that video is not being displayed on all ports all the time, but I am pretty sure that is not the case. Thanks!
03-15-2023 03:29 AM - edited 03-15-2023 03:30 AM
LabVIEW can not address hardware directly in any way. You need drivers for that and LabVIEW interfaces to them. In the case of graphics cards they are normally managed 100% by the OS. LabVIEW only interfaces to them through the official Windows GDI interface. This interface is not meant to give an application control over individual cards or monitors but represents a graphic canvas on which an application can draw lines, arcs and similar. And it does not do so directly normally but through so called windows that are fully managed by Windows. Only inside these windows is an application like LabVIEW allowed to draw its things.
What you want to do would require a very deep dive into Windows API calls, DirectX programming and a lot of involved C/C++ code! How many 10000 bucks can you spare for this? 😀