Example #1
0
void BACIMonitor::setTriggerTime(const ACS::TimeInterval& _triggerTime)
{
  ACS_TRACE("baci::BACIMonitor::setTriggerTime");
  if (_triggerTime != triggerTime_m)
    {
      if (_triggerTime<=0)
	  {
	  triggerTime_m=0;
	  }
      else if (_triggerTime < minTriggerTime_m)
	  {
	  triggerTime_m=minTriggerTime_m; 
	  }
      else 
	  {
	  triggerTime_m=_triggerTime;
	  }

      setLastTime(getTimeStamp()-getTriggerTime());

      if((triggerOnValue_m == true || triggerOnValuePercent_m == true) && triggerTime_m > 0)
        deltaValueAndTimerInteraction_m = true;
      else
        deltaValueAndTimerInteraction_m = false;
      monitorStateChanged();
      property_mp->updateMonitorStates();
    }
}
void FrameHandler::frame(Time frameTime)
{
    if(_mfUninitializedFrameTasks.size() != 0)
    {
        this->init();
    }

    setCurrTime(frameTime);

    if(osgAbs(_sfStartTime.getValue()) < 0.00001)
    {
        setStartTime(_sfCurrTime.getValue());

        setLastTime(0.f);
    }

    _sfCurrTime.getValue() -= _sfStartTime.getValue();

    if(_sfPaused.getValue() == false)
    {
        SFTime *pSFTimeStamp = editSFTimeStamp();

        if(_sfConstantTime.getValue() == true)
        {
            pSFTimeStamp->getValue() += _sfConstantTimeStep.getValue();

            if(pSFTimeStamp->getValue() < 0.)
                pSFTimeStamp->setValue(0.0);
        }
        else
        {
            pSFTimeStamp->getValue() +=
                (_sfCurrTime.getValue() - _sfLastTime.getValue()) *
                _sfTimeScale.getValue();

            if(pSFTimeStamp->getValue() < 0.)
                pSFTimeStamp->setValue(0.0);
        }
    }

    setLastTime(_sfCurrTime.getValue());

    ++(editSFFrameCount()->getValue());

    callTasks();
}
Example #3
0
bool Thread::needRun(){
    if(((lastTime + time) <= millis()) && activated){
        setLastTime(millis());
        return true;
    }
    else
        return false;
}
Example #4
0
    virtual void internalTransition(devs::Time time) override
    {
        CellDevs::internalTransition(time);
        switch (mState) {
        case INIT:
            mState = IDLE;
            setSigma(devs::Time(0.0));
            break;
        case IDLE:
            setLastTime(time);
            mState = NEWSTATE;
            setSigma(devs::Time(0.0));
            break;
        case NEWSTATE:
            bool v_state = getBooleanState("s");
            unsigned int n = getBooleanNeighbourStateNumber("s", true);

            if (v_state && (n < 2 || n > 3)) {
                setBooleanState("s",false);
                modify();
                mState = INIT;
                setSigma(mTimeStep);
            }
            else if (!v_state && (n == 3)) {
                setBooleanState("s",true);
                modify();
                mState = INIT;
                setSigma(mTimeStep);
            }
            else {
                mState = IDLE;
                setSigma(devs::infinity);
            }
            break;
        }
    }
void ComplexSceneManager::frame(void)
{
#if 0
    setCurrTime(getSystemTime());
    
    if(osgAbs(_sfStartTime.getValue()) < 0.00001)
    {
        setStartTime(_sfCurrTime.getValue());
        
        setLastTime(0.f);
    }
    
    _sfCurrTime.getValue() -= _sfStartTime.getValue();

    if(_sfPaused.getValue() == false)
    {
        SFTime *pSFTimeStamp = editSFTimeStamp();

        if(_sfConstantTime.getValue() == true)
        {
            pSFTimeStamp->getValue() += _sfConstantTimeStep.getValue();

            if(pSFTimeStamp->getValue() < 0.)
                pSFTimeStamp->setValue(0.0);
        }
        else
        {
            pSFTimeStamp->getValue() += 
                (_sfCurrTime.getValue() - _sfLastTime.getValue()) * 
                _sfTimeScale.getValue();
            
            if(pSFTimeStamp->getValue() < 0.)
                pSFTimeStamp->setValue(0.0);
        }
    }
    
    setLastTime(_sfCurrTime.getValue());

    SystemTime = _sfTimeStamp.getValue();

    ++(editSFFrameCount()->getValue());

    if(_sfSensorTask.getValue() != NULL)
    {
        _sfSensorTask.getValue()->frame(_sfTimeStamp.getValue (), 
                                        _sfFrameCount.getValue());
    }
#endif

    if(_sfDumpFrameStart.getValue() == true)
    {
        fprintf(stderr, "=================================================\n");
        fprintf(stderr, "Render Frame\n");
        fprintf(stderr, "=================================================\n");
    }

    FrameHandler::the()->frame();

    SystemTime = FrameHandler::the()->getTimeStamp();

    commitChanges();

    if(_sfDrawManager.getValue() != NULL)
    {
        _sfDrawManager.getValue()->frame(FrameHandler::the()->getTimeStamp(), 
                                         FrameHandler::the()->getFrameCount());
    }
}
void DianVoteControl::VoteAuto()
{
    if(curState == RUNNING)
    {
        QMessageBox::critical(0, "warn", "Already Started");
    }
    else if(curState == PAUSE)
    {
        // 修改主界面
        pbStart->hide();
        pbPause->show();

        // 启动秒表
        stopWatch->start();

        StartHid();     // 开启接收设备
    }
    else if(curState == STOP)
    {
        // 这里会把hid打开
        if(!PrepareHid())
        {
            // 把错误信息写入log文件
            return;
        }

//      emit clearDrawData();   // 注意,这一步一定要在GetOptionNum之前

        int num1 = GetLastTime();     // 获取持续时间

        if(!num1)
        {
            return;
        }

        int num0 = GetOptionNum();     // 获取选项个数
        if(!num0)
        {
            return;
        }

        // 画出秒表, 递减模式
        ShowStopWatch();
        Q_ASSERT(stopWatch != NULL);
        stopWatch->setMode(STOP_WATCH_DECREASE_MODE);

        emit setLastTime(num1);;
        emit setOptionNum(num0);

        StartHid();     // 开启接收设备

        // 修改主界面
        pbStart->hide();
        pbAuto->hide();
        pbPause->show();
        pbStop->show();
        pbOption->setEnabled(false);

        stopWatch->start();
        resizeAnimation->start();
    }

    // 改变状态
    curState = RUNNING;
}