Example #1
0
void CtImage::applyHard()
{
	DEB_MEMBER_FUNCT();

	if(m_img_type != m_next_image_type)
	  {
	    m_hw_det->setCurrImageType(m_next_image_type);
	    m_img_type = m_next_image_type;
	  }

	m_hw->apply();
	//Add operation into internal header
	CtSaving* saving = m_ct.saving();

	Bin bin;getBin(bin);
	if(!bin.isOne())
	  saving->addToInternalCommonHeader("binning",bin);

	Roi roi;getRoi(roi);
	if(!roi.isEmpty())
	  saving->addToInternalCommonHeader("roi",roi);

	Flip flip;getFlip(flip);
	if(flip.x || flip.y)
	  saving->addToInternalCommonHeader("flip",flip);

	RotationMode rMode;getRotation(rMode);
	if(rMode != Rotation_0)
	  saving->addToInternalCommonHeader("rotation",rMode);
}
Example #2
0
int main () {
	DEB_GLOBAL_FUNCT();

	Camera *m_camera;
	Interface *m_interface;
	CtControl* m_control;

	string hostname = "192.168.0.62";
	int port = 6341;
	int dataPort = 6342;
	int nx = 512;
	int ny = 512;
	int nchips = 4;
	bool simulate = false;

	try {

	  m_camera = new Camera(hostname, port, dataPort, nx, ny, nchips, simulate);
		m_interface = new Interface(*m_camera);
		m_control = new CtControl(m_interface);

		string type;
		m_camera->getDetectorType(type);
		cout << "Detector type : " << type << endl;
		string model;
		m_camera->getDetectorModel(model);
		cout << "Detector model: " << model << endl;
		float version;
		m_camera->getSoftwareVersion(version);
		cout << "Software version: " << version << endl;

		HwInterface::StatusType status;
		m_interface->getStatus(status);
		cout << "Detector Status: " << status << endl;

		//reset parameters for acquisition
		int nframes = 25;
		double time = 0.1;
		//		m_camera->setEnableCounters(Camera::COUNTER0);
		m_camera->setEnableCounters(Camera::BOTH);
		m_camera->setFramesPerTrigger(1);
		m_camera->setTriggerStartType(Camera::INTERNAL);
		m_camera->setTriggerStopType(Camera::INTERNAL);
		
		// setup fileformat and data saving info
		CtSaving* saving = m_control->saving();
		saving->setDirectory("/home/grm84/data");
		saving->setFramesPerFile(nframes);
		saving->setFormat(CtSaving::HDF5);
	 	saving->setPrefix("merlin_");
		saving->setSuffix(".hdf");
		saving->setSavingMode(CtSaving::AutoFrame);
		saving->setOverwritePolicy(CtSaving::Overwrite);

		// do acquisition
		m_control->image()->setImageType(lima::Bpp12);
		m_control->acquisition()->setAcqExpoTime(time);
		m_control->acquisition()->setLatencyTime(0);
		m_control->acquisition()->setAcqNbFrames(nframes);
		m_control->prepareAcq();
		m_control->startAcq();
		//		usleep(500000);
		//		m_control->stopAcq();
		sleep(5);

	} catch (Exception &e) {

	}
}
int main(int argc, char *argv[])
{
	DEB_GLOBAL_FUNCT();

	DebParams::setModuleFlags(DebParams::AllFlags);
	DebParams::setTypeFlags(DebParams::AllFlags);
	DebParams::setFormatFlags(DebParams::AllFlags);

	Camera *m_camera;
	Interface *m_interface;
	CtControl* m_control;

	int nbCards = 1;
	int maxFrames = 16384;
	string baseIPaddress= "192.168.0.1";
	int basePort = -1;
	string baseMACaddress = "02.00.00.00.00.00";
	int nbChans = 6;
	bool createModule = 1;
	string modname = "gm";
	int debug = 2;
	int cardIndex = 0;
	bool noUDP = 0;
       	string directoryName = "/home/xspress3/esrf/xspress3.8chan/settings";

	try {

		m_camera = new Camera(nbCards, maxFrames, baseIPaddress, basePort, baseMACaddress, nbChans,
				createModule, modname, debug, cardIndex, noUDP, directoryName);
		m_interface = new Interface(*m_camera);
		m_control = new CtControl(m_interface);

		// Setup user timing controls
		int nframes = 3;
		double m_exp_time = 5.0;

		// setup fileformat and data saving info
		CtSaving* saving = m_control->saving();
		saving->setDirectory("/home/xspress3/esrf/gmdata");
		saving->setFormat(CtSaving::HDF5);
	 	saving->setPrefix("xsp3_");
		saving->setSuffix(".hdf");
		saving->setSavingMode(CtSaving::Manual);
		saving->setManagedMode(CtSaving::Hardware);
		saving->setFramesPerFile(nframes);
		saving->setOverwritePolicy(CtSaving::Overwrite);

		// do acquisition
		m_camera->setCard(0);
		m_camera->setDataSource(-1, Camera::PlaybackStream0);
		m_camera->loadPlayback("/home/xspress3/esrf/Lima/camera/xspress3/test/Zr_mca15_pass0.d16", 0, 0);
		m_camera->setRunMode(true);
		m_camera->setUseDtc(false);
		//		m_camera->setDeadtimeCalculationEnergy(10000);
		//		m_camera->setDeadtimeCorrectionParameters(-1,2.5304E-9,2.2534E-7, 2.5304E-9,2.2534E-7, true, false);

		m_control->acquisition()->setAcqNbFrames(nframes);
		m_control->acquisition()->setAcqExpoTime(m_exp_time);
		m_camera->setTiming(0, 0, 0, 100);
		m_control->prepareAcq();
		m_control->startAcq();

	        struct timespec delay, remain;
		delay.tv_sec = (int)floor(m_exp_time/10.0);
		delay.tv_nsec = (int)(1E9*(m_exp_time/10.0-floor(m_exp_time/10.0)));
		DEB_TRACE() << "acq thread will sleep for " << m_exp_time/10.0 << " second";
		while (m_camera->isAcqRunning()) {
			delay.tv_sec = (int)floor(m_exp_time/10.0);
			delay.tv_nsec = (int)(1E9*(m_exp_time/10.0-floor(m_exp_time/10.0)));
			DEB_TRACE() << "sleep for " << m_exp_time/10.0 << " second";
			nanosleep(&delay, &remain);
		}
		DEB_TRACE() << "Finished collection 1";

		nframes = 2;
		m_exp_time = 1.0;

		long num;
		saving->getNextNumber(num);
		saving->setNextNumber(++num);
		m_control->acquisition()->setAcqNbFrames(nframes);
		m_control->acquisition()->setAcqExpoTime(m_exp_time);
		m_camera->setTiming(0, 0, 0, 100);
		m_control->prepareAcq();
		m_control->startAcq();

		delay.tv_sec = (int)floor(m_exp_time/10.0);
		delay.tv_nsec = (int)(1E9*(m_exp_time/10.0-floor(m_exp_time/10.0)));
		DEB_TRACE() << "acq thread will sleep for " << m_exp_time/10.0 << " second";
		while (m_camera->isAcqRunning()) {
			delay.tv_sec = (int)floor(m_exp_time/10.0);
			delay.tv_nsec = (int)(1E9*(m_exp_time/10.0-floor(m_exp_time/10.0)));
			DEB_TRACE()<< "sleep for " << m_exp_time/10.0 << " second";
			nanosleep(&delay, &remain);
		}

		DEB_TRACE() << "Finished collection 2";

	} catch (Exception& ex) {
		DEB_ERROR() << "LIMA Exception: " << ex;
	} catch (...) {
		DEB_ERROR() << "Unkown exception!";
	}
	return 0;
}
Example #4
0
int main()
{
      DEB_GLOBAL_FUNCT();

      Camera *m_camera;
      Interface *m_interface;
      CtControl* m_control;

      //DebParams::setModuleFlags(DebParams::AllFlags);
      //DebParams::setTypeFlags(DebParams::AllFlags);
      //DebParams::setFormatFlags(DebParams::AllFlags);

      string path = "/users/blissadm/local/maxipix/tpxatl25/";
      string filename = "tpxatl25";

      m_camera = new Camera(0, path, filename, true);
      m_interface = new Interface(*m_camera);
      m_control = new CtControl(m_interface);

      // next 2 lines here only for debugging
      CtAcquisition* m_ct_acq = m_control->acquisition();
      m_ct_acq->setAcqExpoTime(2.0);

      string type;
      m_camera->getDetectorType(type);
      cout << "Detector type : " << type << endl;
      string model;
      m_camera->getDetectorModel(model);
      cout << "Detector model: " << model << endl;

      HwInterface::StatusType status;
      m_interface->getStatus(status);
      cout << "Detector Status: " << status << endl;

      int nframes = 10;
      // setup fileformat and data saving info
      CtSaving* saving = m_control->saving();
      saving->setDirectory("./");
      saving->setFramesPerFile(nframes);
      saving->setFormat(CtSaving::EDF);
      saving->setPrefix("maxipix_");
      saving->setSuffix(".edf");
      saving->setSavingMode(CtSaving::AutoFrame);
      //saving->setOverwritePolicy(CtSaving::Append);

      // do acquisition
      m_control->acquisition()->setAcqExpoTime(2.0);
      m_control->acquisition()->setLatencyTime(0.01);
      m_control->acquisition()->setAcqNbFrames(nframes);
      m_control->prepareAcq();
      m_control->startAcq();
      while(1) {
	cout << "sleeping ...." <<  endl;
	sleep(1);
	if (!m_camera->isAcqRunning())
	  break;
      }
      sleep(5); //all done!
      delete m_control;
	delete m_interface;
	delete m_camera;
      return(1);
}
Example #5
0
int main () {
	DEB_GLOBAL_FUNCT();
	//	DebParams::setModuleFlags(DebParams::AllFlags);
	//	DebParams::setTypeFlags(DebParams::AllFlags);
	//	DebParams::setFormatFlags(DebParams::AllFlags);

	Camera *m_camera;
	Interface *m_interface;
	CtControl* m_control;

	string hostname = "192.168.0.62";
	int port = 6341;
	int dataPort = 6342;
	int nx = 512;
	int ny = 512;
	int nchips = 4;
	bool simulate = false;

//	float param;
//	int value;
//	Camera::Switch mode;
//	Camera::Depth depth;
//	Camera::Counter counter;
//	Camera::GainSetting gain;
//	Camera::Trigger trigger;

	try {

	  m_camera = new Camera(hostname, port, dataPort, nx, ny, nchips, simulate);
	  m_interface = new Interface(*m_camera);
	  m_control = new CtControl(m_interface);
	  CtAcquisition* ct_acq = m_control->acquisition();

		string type;
		m_camera->getDetectorType(type);
		cout << "Detector type : " << type << endl;
		string model;
		m_camera->getDetectorModel(model);
		cout << "Detector model: " << model << endl;
		float version;
		m_camera->getSoftwareVersion(version);
		cout << "Software version: " << version << endl;

		HwInterface::StatusType status;
		m_interface->getStatus(status);
		cout << "Detector Status: " << status << endl;
		/*
		// Set/Get operations
		m_camera->getAcquisitionTime(param);
		cout << "AcquisitionTime: " << param << endl;
		m_camera->setAcquisitionTime(3.2);
		m_camera->getAcquisitionTime(param);
		cout << "AcquisitionTime: " << param << endl;

 		m_camera->getAcquisitionPeriod(param);
		cout << "AcquisitionPeriod: " << param << endl;
	 	m_camera->setAcquisitionPeriod(5.6);
 		m_camera->getAcquisitionPeriod(param);
		cout << "AcquisitionPeriod: " << param << endl;

		m_camera->setChargeSumming(Camera::ON);
		m_camera->getChargeSumming(mode);
		cout << "ChargeSumming: " << mode << endl;

		m_camera->setChargeSumming(Camera::OFF);
		m_camera->getChargeSumming(mode);
		cout << "ChargeSumming: " << mode << endl;

		m_camera->setColourMode(Camera::Colour);
		m_camera->getColourMode(mode);
		cout << "ColourMode: " << mode << endl;

		m_camera->setColourMode(Camera::Monochrome);
		m_camera->getColourMode(mode);
		cout << "ColourMode: " << mode << endl;

		m_camera->setCounterDepth(Camera::BPP12);
		m_camera->setContinuousRW(Camera::ON);
		m_camera->getContinuousRW(mode);
	        cout << "ContinuousRW: " << mode << endl;

		m_camera->setContinuousRW(Camera::OFF);
		m_camera->getContinuousRW(mode);
		cout << "ContinuousRW: " << mode << endl;

		m_camera->setCounterDepth(Camera::BPP1);
		m_camera->getCounterDepth(depth);
		cout << "CounterDepth: " << depth << endl;

		m_camera->setCounterDepth(Camera::BPP6);
		m_camera->getCounterDepth(depth);
		cout << "CounterDepth: " << depth << endl;

		m_camera->setCounterDepth(Camera::BPP24);
		m_camera->getCounterDepth(depth);
		cout << "CounterDepth: " << depth << endl;

		m_camera->setCounterDepth(Camera::BPP12);
		m_camera->getCounterDepth(depth);
		cout << "CounterDepth: " << depth << endl;
		
		m_camera->setEnableCounters(Camera::BOTH);
		m_camera->getEnableCounters(counter);
		cout << "EnableCounters: " << counter << endl;
		
		m_camera->setEnableCounters(Camera::COUNTER0);
		m_camera->getEnableCounters(counter);
		cout << "EnableCounters: " << counter << endl;
		
		m_camera->setEnableCounters(Camera::COUNTER1);
		m_camera->getEnableCounters(counter);
		cout << "EnableCounters: " << counter << endl;
		
		m_camera->setFramesPerTrigger(430);
		m_camera->getFramesPerTrigger(value);
		cout << "FramesPerTrigger: " << value << endl;

		m_camera->setNumFramesToAcquire(345);
		m_camera->getNumFramesToAcquire(value);
		cout << "NumFramesToAcquire: " << value << endl;

		m_camera->setOperatingEnergy(358.0);
		m_camera->getOperatingEnergy(param);
		cout << "OperatingEnergy: " << param << endl;

		m_camera->getTemperature(param);
		cout << "Temperature: " << param << endl;

		for (int i=0; i<5; i++) {
			m_camera->getThreshold(Camera::THRESHOLD0, param);
			cout << "Threshold0: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD0, param + 3.0);
			m_camera->getThreshold(Camera::THRESHOLD0, param);
			cout << "Threshold0: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD1, param);
			cout << "Threshold1: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD1, param + 3.1);
			m_camera->getThreshold(Camera::THRESHOLD1, param);
			cout << "Threshold1: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD2, param);
			cout << "Threshold2: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD2, param + 3.2);
			m_camera->getThreshold(Camera::THRESHOLD2, param);
			cout << "Threshold2: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD3, param);
			cout << "Threshold3: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD3, param + 3.3);
			m_camera->getThreshold(Camera::THRESHOLD3, param);
			cout << "Threshold3: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD4, param);
			cout << "Threshold4: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD4, param + 3.4);
			m_camera->getThreshold(Camera::THRESHOLD4, param);
			cout << "Threshold4: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD5, param);
			cout << "Threshold5: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD5, param + 3.5);
			m_camera->getThreshold(Camera::THRESHOLD5, param);
			cout << "Threshold5: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD6, param);
			cout << "Threshold6: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD6, param + 3.6);
			m_camera->getThreshold(Camera::THRESHOLD6, param);
			cout << "Threshold6: " << param << endl;

			m_camera->getThreshold(Camera::THRESHOLD7, param);
			cout << "Threshold7: " << param << endl;
			m_camera->setThreshold(Camera::THRESHOLD7, param + 3.7);
			m_camera->getThreshold(Camera::THRESHOLD7, param);
			cout << "Threshold7: " << param << endl;
		}
		m_camera->setTHScanNum(5);
		m_camera->getTHScanNum(value);
		cout << "THScan: " << value << endl;
		m_camera->setTHStart(30.);
		m_camera->getTHStart(param);
		cout << "TTHStart: " << param << endl;
		m_camera->setTHStep(1.);
		m_camera->getTHStep(param);
		cout << "THStep: " << param << endl;
		m_camera->setTHStop(40.);
		m_camera->getTHStop(param);
		cout << "THStop: " << param << endl;

		m_camera->setGain(Camera::SHGM);
		m_camera->getGain(gain);
		cout << "Gain: " << gain << endl;

		m_camera->setGain(Camera::HGM);
		m_camera->getGain(gain);
		cout << "Gain: " << gain << endl;

		m_camera->setGain(Camera::LGM);
		m_camera->getGain(gain);
		cout << "Gain: " << gain << endl;

		m_camera->setGain(Camera::SLGM);
		m_camera->getGain(gain);
		cout << "Gain: " << gain << endl;

		m_camera->setTriggerStartType(Camera::INTERNAL);
		m_camera->getTriggerStartType(trigger);
		cout << "TriggerStart: " << trigger << endl;

		m_camera->setTriggerStartType(Camera::RISING_EDGE);
		m_camera->getTriggerStartType(trigger);
		cout << "TriggerStart: " << trigger << endl;

		m_camera->setTriggerStartType(Camera::FALLING_EDGE);
		m_camera->getTriggerStartType(trigger);
		cout << "TriggerStart: " << trigger << endl;

		m_camera->setTriggerStopType(Camera::INTERNAL);
		m_camera->getTriggerStopType(trigger);
		cout << "TriggerStop: " << trigger << endl;

		m_camera->setTriggerStopType(Camera::RISING_EDGE);
		m_camera->getTriggerStopType(trigger);
		cout << "TriggerStop: " << trigger << endl;

		m_camera->setTriggerStopType(Camera::FALLING_EDGE);
		m_camera->getTriggerStopType(trigger);
		cout << "TriggerStop: " << trigger << endl;
		*/

		//reset parameters for acquisition
		int nframes = 1;
		double time = 3.0;
		m_camera->setFramesPerTrigger(1);
		m_camera->setTriggerStartType(Camera::INTERNAL);
		m_camera->setTriggerStopType(Camera::INTERNAL);
		//		m_camera->setCounterDepth(Camera::BPP12);
		//		m_camera->setEnableCounters(Camera::BOTH);
		
		// setup fileformat and data saving info
		CtSaving* saving = m_control->saving();
		saving->setDirectory("/home/grm84/data");
		saving->setFramesPerFile(nframes);
		saving->setFormat(CtSaving::HDF5);
	 	saving->setPrefix("merlin_");
		saving->setSuffix(".hdf");
		saving->setSavingMode(CtSaving::AutoFrame);
		saving->setOverwritePolicy(CtSaving::Append);

		// do acquisition
		m_control->image()->setImageType(lima::Bpp12);
		m_control->acquisition()->setAcqExpoTime(time);
		m_control->acquisition()->setLatencyTime(0.5);
		m_control->acquisition()->setAcqNbFrames(nframes);
		m_control->prepareAcq();
		m_control->startAcq();
		while(1) {
			usleep(100);
			if (!m_camera->isAcqRunning())
				break;
		}
		sleep(5);

	} catch (Exception &e) {

	}
}