예제 #1
0
파일: SliderWnd.cpp 프로젝트: malensek/3RVX
void SliderWnd::UpdateKnob(int x, int y) {
    int oldLoc, newLoc, drag, knobMax, knobMin;

    if (_vertical) {
        oldLoc = _knob->Y();
        drag = y;
        knobMax = _knob->TrackY() + _knob->TrackHeight() - _knob->Height();
        knobMin = _knob->TrackY();
    } else {
        oldLoc = _knob->X();
        drag = x;
        knobMax = _knob->TrackX() + _knob->TrackWidth() - _knob->Width();
        knobMin = _knob->TrackX();
    }

    if (drag - _dragOffset > knobMax) {
        newLoc = knobMax;
    } else if (drag - _dragOffset < knobMin) {
        newLoc = knobMin;
    } else {
        newLoc = drag - _dragOffset;
    }

    if (oldLoc != newLoc) {
        if (_vertical) {
            _knob->Y(newLoc);
        } else {
            _knob->X(newLoc);
        }

        MeterWnd::MeterLevels(_knob->Value());
        SliderChanged();
        Update();
    }
}
예제 #2
0
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->lineEdit->setText("NaN"); 
    ui->horizontalSlider->setValue(500);
    ui->horizontalSlider->show();
    
    onethread = new myThread(this);
    onethread->duty_value = 500;
    connect(onethread, SIGNAL(deviceAmbient()),
            this, SLOT(SliderChanged()));
    connect(onethread, SIGNAL(deviceAmbient()),
            this, SLOT(EditContentChange()));
    onethread->start(QThread::NormalPriority);
    connect(ui->pushButton, SIGNAL(clicked()),
            this, SLOT(CloseApp()));
}
예제 #3
0
void MyThread::run()
{
    for(int i=0; i<8; i++)
        arryHauptlicht[i] = false;

    int sliderOld = pca->pca9635PWMRead(pcaHL,0x03);
    slider->set(SLIDERSETONE,sliderOld / 2.55);
    emit SliderChanged(sliderOld);

    int sliderVal = slider->get(SLIDERGETONE);
    int sliderValNeu = 0;
    int sliderDif = 0;
    emit Verbunden(1);
    while(1)
    {
        sliderValNeu = slider->get(SLIDERGETONE);

        if (sliderVal != sliderValNeu)
        {
            sliderDif = abs(sliderValNeu - sliderVal); // Prüfen ob neue Slider Wert +/- 20% vom alten wert nicht überschreitet

            if (sliderDif <=20)
            {   // Wenn der neue Slider wert im berreich drinnen ist
                sliderVal = sliderValNeu;                                                   // wird der neue Wert übernommen
                emit ValChanged(sliderVal);
                //if (sliderVal <= 4)sliderVal=0;
                sliderVal *= 2.55;
                if (sliderVal >= 180)
                    sliderVal = 180;

                while(sliderOld != sliderVal)
                {                                  // Alten Slider wert auf Neuen wert in 1 schritten ranfahren
                    if(sliderOld < sliderVal)
                        sliderOld++;
                    else
                        sliderOld--;

                    for(int i = 2; i < 10; i++)
                    {
                        if (arryHauptlicht[i - 2]== 1)
                            pca->pca9635PWMWrite(pcaHL,i,sliderOld);
               // Alten Slider wert der um 1 erhöt wurde in alle LEDs schreiben
                    }
                    QThread::msleep(10);

                }
            }
        }

        QThread::msleep(150);
        if(this->Stop){
            slider->set(SLIDERSETONE, 1);
            emit Verbunden(0);

            int hlprozent = 0;
            for(int i = 2; i < 10; i++)
            {
                hlprozent += pca->pca9635PWMRead(pcaHL, i);
            }
            hlprozent /= 8;
            pca->pca9635PWMWrite(pcaHL,LUEFTERHAUPTLICHT,hlprozent);
            pca->pca9635PWMWrite(pcaHL,LUEFTERNETZEIL,hlprozent + 70);
            break;
        }
    }
}