View Single Post
  #5   Spotlight this post!  
Unread 20-03-2016, 19:52
Araknos Araknos is offline
Co-captain, Elec./Prog. Ace (Lead)
AKA: Anthony Demetrescu
FRC #3476 (Code Orange)
Team Role: Leadership
 
Join Date: Jan 2016
Rookie Year: 2012
Location: California
Posts: 4
Araknos is an unknown quantity at this point
Re: Recording Two Video Streams via Labview Dashboard

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.).
Reply With Quote