Ejemplo n.º 1
0
void 
CLeCroy4300B<Controller,RdoList>::writePedestals(Controller& controller, 
                                                 const std::vector<int>& peds)
{
    int slot = m_pConfig->getIntegerParameter("-slot"); 
    unsigned int nPeds = peds.size();
    if (nPeds>16) {
        std::cerr << "!!! CLeCroy4300B configured with more than 16 specifiers"
                  << std::endl;
        std::cerr << "    Only the first sixteen values will be used. " 
                  << std::endl;
    }

    int status = 0;
    for (int i=0; i<nPeds; ++i) {
        uint16_t qx = 0;
        uint16_t ped_i = static_cast<uint16_t>(peds.at(i));

        do {
            // clear to enable for input
            execClear(controller);

            // write the pedestal to chan i
            status = controller.simpleWrite16(slot,i,17,ped_i,qx);
            handleStatus(status);
            handleQ(qx&0x1);
        } while (qx==0);
    }
}
Ejemplo n.º 2
0
void CLeCroy4300B<Controller,RdoList>::Initialize(Controller& controller)
{
    int slot = m_pConfig->getIntegerParameter("-slot"); 
    std::vector<int> peds = m_pConfig->getIntegerList("-pedestals");
    uint16_t q=0;

    // clear
    execClear(controller);

    writePedestals(controller,peds);

//    setCommandRegister(controller);
    configureCommandRegister(controller);

}
Ejemplo n.º 3
0
KILLENUM Runtime::executeCrunch()
{
  accept( Token::CRUNCH );
  Token::Code code = tokenizer.token();

  zdebug() << __FILE__ << ":" << __LINE__ << code << tokenizer.string();

  KILLENUM ret = PROCEED;
  switch ( code ) {
    case Token::BECOME: ret = execBecome(); break;
    case Token::BIND: ret = execBind(); break;
    case Token::CHANGE: ret = execChange(); break;
    case Token::CHAR: ret = execChar(); break;
    case Token::CLEAR: ret = execClear(); break;
    case Token::CYCLE: ret = execCycle(); break;
    case Token::DIE: ret = execDie(); break;
    case Token::END: ret = execEnd(); break;
    case Token::ENDGAME: ret = execEndgame(); break;
    case Token::GIVE: ret = execGive(); break;
    case Token::GO: ret = execGo(); break;
    case Token::IDLE: ret = execIdle(); break;
    case Token::IF: ret = execIf(); break;
    case Token::LOCK: ret = execLock(); break;
    case Token::PLAY: ret = execPlay(); break;
    case Token::PUT: ret = execPut(); break;
    case Token::RESTART: ret = execRestart(); break;
    case Token::RESTORE: ret = execRestore(); break;
    case Token::SEND: ret = execSend(); break;
    case Token::SET: ret = execSet(); break;
    case Token::SHOOT: ret = execShoot(); break;
    case Token::TAKE: ret = execTake(); break;
    case Token::THROWSTAR: ret = execThrowstar(); break;
    case Token::TRY: ret = execTry(); break;
    case Token::UNLOCK: ret = execUnlock(); break;
    case Token::WALK: ret = execWalk(); break;
    case Token::ZAP: ret = execZap(); break;
    case Token::ENDOFLINE: ret = throwError("COMMAND ERROR");
    default: {
      sendMessage( tokenizer.string() );
      break;
    }
  }

  return ret;
}