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(); }
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(); }
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(); }