Пример #1
0
/**
* Test routine for the 
*/
void TestCameraStreaming(CMMCore& core)
{
   const long numFrames = 20;
   const int memoryFootprintMB = 100;
   const double intervalMs = 300.0; // ms

   core.setCircularBufferMemoryFootprint(memoryFootprintMB);

   cout << "Buffer capacity: " << core.getBufferTotalCapacity() << endl;
   string camera = core.getCameraDevice();
   core.setExposure(200.0);

   // test normal mode
   core.snapImage();
   core.getImage();

   core.startSequenceAcquisition(numFrames, intervalMs, true);

   CDeviceUtils::SleepMs(5000);

   core.stopSequenceAcquisition();

   int count=0;
   while (core.deviceBusy(camera.c_str()))
   {
      Metadata md;
      core.getLastImageMD(0, 0, md);
      double interval = core.getBufferIntervalMs();
      printf("Displaying current image, %ld in que, %.0f ms interval.\n", core.getRemainingImageCount(), interval);
      MetadataSingleTag mdst = md.GetSingleTag(MM::g_Keyword_Elapsed_Time_ms);
      printf("Elapsed time %s, device %s\n", mdst.GetValue().c_str(), mdst.GetDevice().c_str());
   }
   printf("Camera finished with %.0f ms interval.\n", core.getBufferIntervalMs());
   core.setProperty(camera.c_str(), "ShutterMode", "Auto");



   cout << "Done! Free space =" << core.getBufferFreeCapacity() << endl;

   core.startSequenceAcquisition(numFrames, intervalMs, true);


   count=0;
   while (core.deviceBusy(camera.c_str()))
   {
      Metadata md;
      core.getLastImageMD(0, 0, md);
      double interval = core.getBufferIntervalMs();
      printf("Displaying current image, %ld in que, %.0f ms interval.\n", core.getRemainingImageCount(), interval);
      MetadataSingleTag mdst = md.GetSingleTag(MM::g_Keyword_Elapsed_Time_ms);
      printf("Elapsed time %s, device %s\n", mdst.GetValue().c_str(), mdst.GetDevice().c_str());
   }
   printf("Camera finished with %.0f ms interval.\n", core.getBufferIntervalMs());
   core.setProperty(camera.c_str(), "ShutterMode", "Auto");

}
Пример #2
0
/**
* Test routine for the MMConfig_Demo.cfg.
*/
void TestCameraLive(CMMCore& core)
{
   const int memoryFootprintMB = 100;

   core.setCircularBufferMemoryFootprint(memoryFootprintMB);

   cout << "Buffer capacity: " << core.getBufferTotalCapacity() << endl;
   string camera = core.getCameraDevice();
   //core.setProperty(camera.c_str(), "ShutterMode", "Open");
   core.setProperty(camera.c_str(), "Binning", "4");
   core.setExposure(200.0);

   // test normal mode
   core.snapImage();
   core.getImage();

   core.startContinuousSequenceAcquisition(0);

   int count=0;
   while (core.deviceBusy(camera.c_str()))
   {
      core.getLastImage();
      double interval = core.getBufferIntervalMs();
      printf("Displaying image %d, %ld in que, %.0f ms interval.\n", count+1, core.getRemainingImageCount(), interval);
      count++;
      if (count >= 100)
         core.stopSequenceAcquisition();
   }
   printf("Camera finished with %.0f ms interval.\n", core.getBufferIntervalMs());
   //core.setProperty(camera.c_str(), "ShutterMode", "Auto");

}
Пример #3
0
/**
 * Test routine for the MMConfig_Stream.cfg.
 */
void TestCameraStreaming(CMMCore& core)
{
   const long numFrames = 20;
   const int memoryFootprintMB = 100;
   const double intervalMs = 300.0; // ms
   ACE_Time_Value displayTime(0, 80000L); // us
   ACE_Time_Value restTime(5, 0L);


   core.setCircularBufferMemoryFootprint(memoryFootprintMB);

   cout << "Buffer capacity: " << core.getBufferTotalCapacity() << endl;
   string camera = core.getCameraDevice();
   //core.setProperty(camera.c_str(), "ShutterMode", "Open");
   //core.setProperty(camera.c_str(), "Binning", "2");
   core.setExposure(200.0);

   // test normal mode
   core.snapImage();
   core.getImage();

   core.startSequenceAcquisition(numFrames, intervalMs);

   StreamTask streamWriter(&core);
   int result = streamWriter.activate ();

   int count=0;
   while (core.deviceBusy(camera.c_str()))
   {
      core.getLastImage();
      double interval = core.getBufferIntervalMs();
      printf("Displaying current image, %ld in que, %.0f ms interval.\n", core.getRemainingImageCount(), interval);
      ACE_OS::sleep(displayTime);
   }
   printf("Camera finished with %.0f ms interval.\n", core.getBufferIntervalMs());
   core.setProperty(camera.c_str(), "ShutterMode", "Auto");

   
   streamWriter.wait ();

   cout << "Done! Free space =" << core.getBufferFreeCapacity() << endl;

   core.startSequenceAcquisition(numFrames, intervalMs);

   StreamTask streamWriter1(&core);
   result = streamWriter1.activate ();

   count=0;
   while (core.deviceBusy(camera.c_str()))
   {
      core.getLastImage();
      double interval = core.getBufferIntervalMs();
      printf("Displaying current image, %ld in que, %.0f ms interval.\n", core.getRemainingImageCount(), interval);
      ACE_OS::sleep(displayTime);
   }
   printf("Camera finished with %.0f ms interval.\n", core.getBufferIntervalMs());
   core.setProperty(camera.c_str(), "ShutterMode", "Auto");

   
   streamWriter1.wait ();
}