Esempio n. 1
0
int Controller::Initialize()
{

   // set property list
   // -----------------
   /*
   MM::Device* serialDevice = GetCoreCallback()->GetDevice(this, port_.c_str());
   if (serialDevice == NULL) {
      LogMessage("Serial port not found");
      return DEVICE_SERIAL_COMMAND_FAILED;
   }
*/
   this->LogMessage("Controller::Initialize()");

   currentChannel_ = 0;

   ReadGreeting();
   int result = ReadChannelLabels();
   if (result != DEVICE_OK)
	   return result;

   GenerateChannelChooser();
   GeneratePropertyIntensity();
   GeneratePropertyState();
   GeneratePropertyTrigger();
   GeneratePropertyTriggerSequence();
   
   initialized_ = true;
   return HandleErrors();

}
Esempio n. 2
0
int Controller::Initialize()
{
	string strError;

	ReadGreeting();

	Purge();
	Send("XMODEL");
	ReceiveOneLine();//Mainboard version returned

	int rlt = (int)buf_string_.find("pE-4000");
	if (rlt < 0) {
		strError = "\r\n\r\nIncompatible device driver!\r\n";
		strError += "The driver loaded: CoolLED-pE4000\r\n";
		strError += "The device found: ";
		strError += buf_string_.substr(7);
		strError += "\r\n\r\n";
		strError += "Internal Error Reference: ";
		SetErrorText(DEVICE_NOT_SUPPORTED, strError.c_str());
		return DEVICE_NOT_SUPPORTED;
	}

	for (int i = 0; i < 4; i++) {
		channelIntensities_[i] = 0;
		channelSelection_[i] = 0;
		channelWave_[i] = "";
		intensityUpdated_[i] = false;
		selectionUpdated_[i] = false;
		waveUpdated_[i] = false;
	}

	GenerateDescription();
	GenerateChannelState();
	GenerateChannelSelector();
	GeneratePropertyIntensity();
	GeneratePropertyState();
	GeneratePropertyLockPod();

	GetUpdate();

	mThread_ = new PollingThread(*this);
	mThread_->Start();

	initialized_ = true;
	return HandleErrors();

}
Esempio n. 3
0
int Sapphire::Initialize()
{

   LogMessage("Sapphire::Initialize()");

   GeneratePowerProperties();
   GeneratePropertyState();
   GenerateReadOnlyIDProperties();
	std::stringstream msg;


	ReadGreeting();

	//disable echo from the controller
	msg << "E" << "=" << 0;
   Send(msg.str());
   if (ReceiveOneLine() != DEVICE_OK)
      return ERR_DEVICE_NOT_FOUND;


	//disable command prompt from controller
	msg.str("");
	msg << ">" << "=" << 0;
   Send(msg.str());
   ReceiveOneLine();

	//msg.str("");
	//msg << CDRHToken_ << "=" << 0;
  // Send(msg.str());
  // ReceiveOneLine();

	// enable control of the laser diode
	msg.str("");
	msg << TECServoToken_ << "=" << 1;
   Send(msg.str());
   ReceiveOneLine();

	//disable external 'analogue' control of the laser

	// enable control of the laser diode
	//msg.str("");
	//msg << externalPowerControlToken_ << "=" << 0;
   //Send(msg.str());
   //ReceiveOneLine();

	// query laser for power limits
	this->initLimits();

	double llimit = this->minlp();
	double ulimit = this->maxlp();
	//if ( 1. > ulimit)
	//	ulimit = 100.; // for off-line test

	// set the limits as interrogated from the laser controller.
   SetPropertyLimits(g_Keyword_PowerSetpoint, llimit, ulimit);  // milliWatts
   
   initialized_ = true;



   return HandleErrors();

}