Hello Eric,
After a long hiatus waiting for the camera to arrive from Germany, we procured our Basler pia640-210gm GigE camera. The camera shares a GigE switch with a real-time OS computer and the host. The host computer, running LV and Vision 8.0, has the Intel Pro/1000GT ethernet card and I've followed all the recommendations such as jumbo frames, etc to get the highest bandwidth. (On a side note, is there any better way to check on the network activity besides hitting control-alt-delete and watching the network usage? This seems to "read low" - I see only ~10% usage when streaming images at 210 fps...supposedly ~60 MB/s, or roughly half of the GigE bandwidth...)
My objective now is to MOVE or reposition the area of interest on-the-fly like you suggested. I can set the AOI to ~100x100 pixels ahead of time but the spot on the camera that I am trying to capture can move +/- 1mm, so the AOI must follow it. At time= -150 ms from camera trigger, I will have a rough idea as to where the spot will be on the sensor. I must then move the AOI to that approximate location, either by changing the property node and resetting the camera, or writing directly to the camera's registers. I would like the AOI "set" and ready when the hardware trigger comes into the camera at t=0. Then I have a simple centroid-finding task to complete in ~2ms.
I've attached a trial vi which tries to reset the AOI parameters as fast as possible. These initial trials take ~250 ms to cancel the old parameters and then write new ones. The ideal time would be <150 ms from when the information is available to when the camera is able to accept a trigger. Perhaps this isn't the best way to do it. The "unconfigure acquisition" is necessary to remove the old parameters or else the new ones can't be written, but it takes too much time.
Is there available a look up table of all the registers for GigE? Maybe I am getting confused with IEEE 1394, but I believe there must be a base register address to which attributes are added. I like your idea of changing the raw registers but cannot find any of this in the documentation. I know that the AOI can be moved while capturing because it does it quite quickly in the Basler Pylon viewer with a manual slider bar (the dimensions of the AOI are fixed).
I appreciate your help,
Lcarlson