Quote:
|
With regards to the pausing, I'm guessing you're reading them both in the same while loop. That VI blocks until it reads in an image. To solve this, move one to a separate loop.
|
Unfortunately, the problem isn't that simple. They are in two separate while loops, which would normally cause them to run in parallel. However, in one of the deeply nested VIs (HTTP Authentication, I believe), there is a TCP Open block which has a timeout of 2 seconds. So, when one camera has failed to make a connection, the HTTP VI is called repeatedly, only pausing for the default 500ms wait that occurs when the camera is not active.
While the one camera is waiting on a connection to open (TCP Open), it blocks the TCP Read operation of the other camera used to get the image.
I have "solved" this problem by limiting the number of times a camera can attempt to connect (in case one is unplugged). Then, I decide when to try again based upon what the robot is doing. In my case, it will retry the vision camera when shooting, and retry the intake camera when driving around (robot tells the Dashboard what to do via NetworkTables).
I have still not solved the problem of being able to record both at once, although I assume it may have something to do with a conflict in resources (access to file system, encoding, etc.).