Code Monkey home page Code Monkey logo

Comments (5)

jonnew avatar jonnew commented on August 24, 2024

I doubt its due to CPU load. It seems more likely that some internally specified maximum has been reached for the data bus, or you have actually reached some hardware limitation.

With respect to different cores: each oat-frameserve instance is a separate program. Each will use whatever cores are available. You don't have to do that manually.

In your script above, assuming its in the shell or a bash script, you would put and & after each command to send it to the background and start the next command.

from oat.

lengoanhcat avatar lengoanhcat commented on August 24, 2024

In my script, I put & after each command to run each oat-frameserve in the background.

Yeah, I agree that it is probably not due to CPU loads. In my case, oat_frameserve is always successful in starting any 5 out of 6 streams. That implies some hardware / software internal constrains.

In terms of hardware, each camera has its own bus (80 MB/s) which theoretically allows me stream 640x480 RGB8 60 fps. Curiously, I could only stream up to 32.74 fps. I think I am missing something here.

06:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)                                       
07:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)                                       
24:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)                                       
25:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)                                       
2a:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)                                       
2b:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 06)

In terms of software, could you give me some hints /clues of how to check / monitor the internal bus with oat?

from oat.

jonnew avatar jonnew commented on August 24, 2024

With regard to frame rate: does the max frame rate depend on the number of cameras you are running? That would imply some bus bandwidth limitation. If not, then I've noticed that Point Grey can be very optimistic with their frame rate specifications. e.g. the camera will only achieve a maximal rate under a certain ROI constraint or shutter mode. For my GigE cameras which are specified at 30 Hz, they will only achieve this if I free run the shutter or use mode 14 r and even then some shutters triggers are ignored. Make sure this is not what is limiting you. You can try different shutter settings in oat-frameserve to see if that helps.

With respect to bus bandwidth/monitoring: I don't really have any specific ideas since i work mostly with GigE cameras. I would recommend just getting on the phone with Point Grey to ask it this is some hardwired limitation of the hardware or driver, or if there is some software work around that we could potentially patch into oat-frameserve

from oat.

lengoanhcat avatar lengoanhcat commented on August 24, 2024

The max frame rate does not depends on how many cameras I run. Its maximum is 32.75 fps.
Which oat command I should use to specify the mode 14 r / or any other modes ?
I am trying to contact PointGrey to specifically ask about possible limitation in streaming videos from six different cameras. Hopefully, I could report any good news soon.

from oat.

lengoanhcat avatar lengoanhcat commented on August 24, 2024

Hi,

I am now in contact with technical supporter from PointGrey and they suggest to following function and codes to start and sync across multiple cameras. Is there any good way to incorporate the code lines into oat. Noted that, I am able to open all six cameras with FlyCap2 GUI but still unable to create six different oat frameserver.


int grabStatus = StartSyncCaptureAndGrab(ppCameras, numCameras);
if (grabStatus != 0)
{
// Cleanup if start sync capture fails intermittently
for (unsigned int i = 0; i < numCameras; i++)
{
if (ppCameras[i] != NULL)
{
ppCameras[i]->StopCapture();
ppCameras[i]->Disconnect();
delete ppCameras[i];
}
}

    cout << "Press Enter to exit..." << endl;
    cin.ignore();
    return -1;
}

Regards,

Cat Le

from oat.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.