Changeset 4494 for trunk/MagicSoft/AMC


Ignore:
Timestamp:
08/04/04 16:54:41 (20 years ago)
Author:
merck
Message:
MMerck: Adjusted display of laser spot position and reference positions for
MMerck: floating point display.
Location:
trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.cpp

    r4173 r4494  
    4949extern AMCFrameGrabber*         g_pFG;
    5050extern MagicMirror*                             g_theMirror;
    51 extern int                                                              g_iRefX, g_iRefY;
     51extern double                                                   g_dRefX, g_dRefY;
    5252
    5353VideoDisplay::VideoDisplay(QWidget *parent, const char *name, bool modal )
     
    7070  qDebug("Adding Videoframe as widget");
    7171        ((QGridLayout*) this->layout())->addWidget( m_videoFrame, 0, 0 );
    72         connect( m_videoFrame, SIGNAL( gref(int, int ) ), this ,SLOT( setGRefInfoSlot( int, int ) ) );
    73         connect( m_videoFrame, SIGNAL( spot(int, int ) ), this ,SLOT( setSpotInfoSlot( int, int ) ) );
     72        connect( m_videoFrame, SIGNAL( gref(double, double ) ), this ,SLOT( setGRefInfoSlot( double, double ) ) );
     73        connect( m_videoFrame, SIGNAL( spot(double, double ) ), this ,SLOT( setSpotInfoSlot( double, double ) ) );
    7474        connect( m_videoFrame, SIGNAL( framesGrabbed(int) ), (QObject*) GrabbedLCD ,SLOT( display( int ) ) );
    7575        connect( m_videoFrame, SIGNAL( framesProcessed(int) ), (QObject*) ProcessedLCD ,SLOT( display( int ) ) );
     
    8787        // ourselves.
    8888  qDebug("Creating and starting timer");
     89
    8990        m_pTimer = new QTimer( this );
    9091        connect( m_pTimer, SIGNAL( timeout() ), m_videoFrame, SLOT( timerDone() ) );
     
    9798        disconnect( Brightness, SIGNAL( valueChanged(int) ), g_pFG ,SLOT( setBrightness( int ) ) );
    9899        disconnect( Contrast, SIGNAL( valueChanged(int) ), g_pFG ,SLOT( setContrast( int ) ) );
     100        disconnect( thresholdSlider, SIGNAL( valueChanged(int) ), m_videoFrame ,SLOT( threshold(int) ) );
     101        disconnect( scaleBox, SIGNAL( toggled(bool) ), m_videoFrame ,SLOT( scaleImage(bool) ) );
     102        disconnect( scaleValSlider, SIGNAL( valueChanged(int) ), m_videoFrame ,SLOT( scaleValue(int) ) );
     103        disconnect( darksBox, SIGNAL( toggled(bool) ), m_videoFrame ,SLOT( substractDarks(bool) ) );
     104        disconnect( Take_Dark_Button, SIGNAL( clicked() ), m_videoFrame ,SLOT( takeDark() ) );
     105        disconnect( Clear_Darks_Button, SIGNAL( clicked() ), m_videoFrame ,SLOT( clearDarks() ) );
     106        disconnect( m_videoFrame, 0, 0, 0 );
    99107        disconnect( m_pTimer, SIGNAL( timeout() ), m_videoFrame, SLOT( timerDone() ) );
     108
     109        m_pTimer->stop();               // stop 1 seconds timer
    100110        delete m_pTimer;
    101111        qDebug("Deleting VideoFrame");
     
    109119
    110120/** No descriptions */
    111 void VideoDisplay::setSpotInfoSlot( int p_iX, int p_iY )
    112 {
    113         SpotX->setText( QString::number(p_iX) );
    114         SpotY->setText( QString::number(p_iY) );
    115 }
    116 
    117 /** No descriptions */
    118 void VideoDisplay::setGRefInfoSlot( int p_iX, int p_iY )
    119 {
    120         GRefX->setText( QString::number( p_iX ) );
    121         GRefY->setText( QString::number( p_iY ) );
     121void VideoDisplay::setSpotInfoSlot( double p_dX, double p_dY )
     122{
     123        SpotX->setText( QString::number(p_dX) );
     124        SpotY->setText( QString::number(p_dY) );
     125}
     126
     127/** No descriptions */
     128void VideoDisplay::setGRefInfoSlot( double p_dX, double p_dY )
     129{
     130        GRefX->setText( QString::number( p_dX ) );
     131        GRefY->setText( QString::number( p_dY ) );
    122132}
    123133
     
    144154        RefY->setText( QString::number( m_pPanel->getLaserY() ) );
    145155        m_videoFrame->setRef( m_pPanel->getLaserX(), m_pPanel->getLaserY() );
    146         GRefX->setText( QString::number( g_iRefX ) );
    147         GRefY->setText( QString::number( g_iRefY ) );
     156        GRefX->setText( QString::number( g_dRefX ) );
     157        GRefY->setText( QString::number( g_dRefY ) );
    148158
    149159  enableButtons( true );
     
    170180void VideoDisplay::centerSlot()
    171181{
    172 //      m_videoFrame->halt( true );
     182//      halt( true );
    173183        enableButtons( false );
    174184        g_theApp->processEvents();
     
    190200                                                                  QMessageBox::Ok | QMessageBox:: Default );
    191201                enableButtons( true );
    192                 m_videoFrame->halt( false );
     202                halt( false );
    193203                return;
    194204        }
     
    196206        m_pPanel->setY( 0 );
    197207        enableButtons( true );
    198         m_videoFrame->halt( false );
    199 //      g_theApp->processEvents();
     208        halt( false );
    200209*/
    201210}
     
    224233       
    225234        enableButtons( false );
    226         m_videoFrame->halt( true );
    227         g_theApp->processEvents();
     235//halt( true );
    228236        try
    229237        {
     
    243251                                                                  QMessageBox::Ok | QMessageBox:: Default );
    244252        }
    245         m_videoFrame->halt( false );
    246253        enableButtons( true );
     254//halt( false );
    247255        return;
    248256       
     
    300308void VideoDisplay::saveRefSlot()
    301309{
    302         int x = SpotX->text().toInt();
    303         int y = SpotY->text().toInt();
     310        double x = SpotX->text().toDouble();
     311        double y = SpotY->text().toDouble();
    304312
    305313        if( x != -1)
     
    318326void VideoDisplay::saveGRefSlot()
    319327{
    320         int x = SpotX->text().toInt();
    321         int y = SpotY->text().toInt();
     328        double x = SpotX->text().toDouble();
     329        double y = SpotY->text().toDouble();
    322330
    323331        if( x != -1)
    324332        {
    325                 g_iRefX = x;
    326                 g_iRefY = y;
     333                g_dRefX = x;
     334                g_dRefY = y;
    327335                GRefX->setText( QString::number( x ) );
    328336                GRefY->setText( QString::number( y ) );
     
    333341void VideoDisplay::adjustRefSlot()
    334342{
    335         int iRefX = m_pPanel->getLaserX();
    336         int iRefY = m_pPanel->getLaserY();
    337   qDebug("Reference: %d %d", iRefX, iRefY );
    338         if( ( iRefX == -1 ) && ( iRefY == -1 ) )
     343        double dRefX = m_pPanel->getLaserX();
     344        double dRefY = m_pPanel->getLaserY();
     345  qDebug("Reference: %5.1f %5.1f", dRefX, dRefY );
     346        if( ( dRefX < 0. ) && ( dRefY < 0. ) )
    339347                return;
    340         int iDx, iDy;
    341         iDx = m_videoFrame->m_iCenterX - CAMERA_X;
    342         iDy = m_videoFrame->m_iCenterY - CAMERA_Y;
    343         iRefX += iDx;
    344         iRefY += iDy;
     348        double dDx, dDy;
     349        dDx = m_videoFrame->m_dCenterX - CAMERA_X;
     350        dDy = m_videoFrame->m_dCenterY - CAMERA_Y;
     351        dRefX += dDx;
     352        dRefY += dDy;
    345353        int iStepX, iStepY;
    346         calcSteps( iRefX, iRefY, iStepX, iStepY );
     354        calcSteps( dRefX, dRefY, iStepX, iStepY );
    347355        moveMotors( iStepX, iStepY );
    348356}
     
    351359void VideoDisplay::adjustGRefSlot()
    352360{
    353         if( ( g_iRefX == -1 ) && ( g_iRefY == -1 ) )
     361        if( ( g_dRefX == -1. ) && ( g_dRefY == -1. ) )
    354362                return;
    355363        int iStepX, iStepY;
    356         calcSteps( g_iRefX, g_iRefY, iStepX, iStepY );
     364        calcSteps( g_dRefX, g_dRefY, iStepX, iStepY );
    357365        moveMotors( iStepX, iStepY );
    358366}
    359367
    360 void VideoDisplay::calcSteps( int p_iRefX, int p_iRefY, int& p_iStepX, int& p_iStepY )
     368void VideoDisplay::calcSteps( double p_dRefX, double p_dRefY, int& p_iStepX, int& p_iStepY )
    361369{
    362370        p_iStepX = p_iStepY = 0;
    363         int iVSpotX = SpotX->text().toInt();
    364         int iVSpotY = SpotY->text().toInt();
    365         if( ( iVSpotX == -1 ) && ( iVSpotY == -1 ) )
     371        double dVSpotX = SpotX->text().toDouble();
     372        double dVSpotY = SpotY->text().toDouble();
     373        if( ( dVSpotX < 0. ) && ( dVSpotY < 0. ) )
    366374                return;
    367         qDebug("Spot at x,y: %4d %4d", iVSpotX, iVSpotY );
    368         qDebug("Ref  at x,y: %4d %4d", p_iRefX, p_iRefY );
    369 
    370         double dX = p_iRefX - iVSpotX;
    371         double dY = p_iRefY - iVSpotY;
    372         double dAlpha1 = atan( m_pPanel->getSlopeX() );
    373         double dAlpha2 = atan( m_pPanel->getSlopeY() );
    374         double dSinA1 = sin( dAlpha1 );
    375         double dSinA2 = sin( dAlpha2 );
    376         double dCosA1 = cos( dAlpha1 );
    377         double dCosA2 = cos( dAlpha2 );
    378 
    379         double dFacX = dX - ( dY * dCosA2 / dSinA2 );
    380         dFacX /= ( dCosA1 - dSinA1 * dCosA2 / dSinA2 );
    381         double dFacY = (dY - dFacX * dSinA1) / dSinA2;
    382 
    383         p_iStepX = (int) ( dFacX * m_pPanel->getConversionX() );
    384         p_iStepY = (int) ( dFacY * m_pPanel->getConversionY() );
    385 
     375        qDebug("Spot at x,y: %5.1f %5.1f", dVSpotX, dVSpotY );
     376        qDebug("Ref  at x,y: %5.1f %5.1f", p_dRefX, p_dRefY );
     377
     378
     379        double dX = p_dRefX - dVSpotX;
     380        double dY = p_dRefY - dVSpotY;
     381
     382        m_pPanel->calcSteps( dX, dY, p_iStepX, p_iStepY );
    386383        qDebug("Steps till reference: %4d %4d", p_iStepX, p_iStepY );   
    387384}
     
    530527{
    531528  qDebug("Stoping VideoFrame");
    532         m_videoFrame->halt( true );
     529        halt( true );
    533530  qDebug("Disabling buttons");
    534531        enableButtons( false );
     
    542539        enableButtons( true );
    543540  qDebug("Restarting VideoFrame");
    544         m_videoFrame->halt( false );
     541        halt( false );
    545542}
    546543
     
    551548        VideoDisplayBase::accept();
    552549}
     550
     551/** No descriptions */
     552void VideoDisplay::halt( bool p_zHalt )
     553{
     554        if ( p_zHalt == true )
     555                m_pTimer->stop();
     556        else
     557                m_pTimer->start( 1000 );
     558
     559        m_videoFrame->halt( p_zHalt );
     560}
  • trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.h

    r3401 r4494  
    6464  virtual void storeSlot();
    6565  /** No descriptions */
    66   virtual void setSpotInfoSlot( int p_iX, int p_iY );
     66  virtual void setSpotInfoSlot( double p_iX, double p_iY );
    6767  /** No descriptions */
    68   virtual void setGRefInfoSlot( int p_iX, int p_iY );
     68  virtual void setGRefInfoSlot( double p_iX, double p_iY );
    6969  /** Move the X motor 10 steps forward. */
    7070  virtual void incX10Slot() { moveMotors( 10, 0 ); };
     
    9393  /** Move motors relative by the given amount of steps. */
    9494  virtual void moveMotors( int x, int y );
     95  /** No descriptions */
     96  void halt( bool p_zHalt );
    9597private:
    9698  /** No descriptions */
    9799  void enableButtons( bool p_zEnable ) const;
    98         void calcSteps( int p_iRefX, int p_iRefY, int& p_iStepX, int& p_iStepY );
     100        void calcSteps( double p_dRefX, double p_dRefY, int& p_iStepX, int& p_iStepY );
    99101       
    100102public slots: // Public slots
  • trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplaybase.ui

    r3401 r4494  
    1212            <x>0</x>
    1313            <y>0</y>
    14             <width>911</width>
    15             <height>652</height>
     14            <width>948</width>
     15            <height>719</height>
    1616        </rect>
    1717    </property>
     
    142142                                        <name>minimumSize</name>
    143143                                        <size>
    144                                             <width>30</width>
     144                                            <width>50</width>
    145145                                            <height>0</height>
    146146                                        </size>
     
    148148                                    <property stdset="1">
    149149                                        <name>maxLength</name>
    150                                         <number>4</number>
     150                                        <number>6</number>
    151151                                    </property>
    152152                                </widget>
     
    164164                                        <name>minimumSize</name>
    165165                                        <size>
    166                                             <width>30</width>
     166                                            <width>50</width>
    167167                                            <height>0</height>
    168168                                        </size>
     
    170170                                    <property stdset="1">
    171171                                        <name>maxLength</name>
    172                                         <number>4</number>
     172                                        <number>6</number>
    173173                                    </property>
    174174                                </widget>
     
    235235                                        <name>minimumSize</name>
    236236                                        <size>
    237                                             <width>30</width>
     237                                            <width>50</width>
    238238                                            <height>0</height>
    239239                                        </size>
     
    245245                                    <property stdset="1">
    246246                                        <name>maxLength</name>
    247                                         <number>4</number>
     247                                        <number>6</number>
    248248                                    </property>
    249249                                </widget>
     
    261261                                        <name>minimumSize</name>
    262262                                        <size>
    263                                             <width>30</width>
     263                                            <width>50</width>
    264264                                            <height>0</height>
    265265                                        </size>
     
    267267                                    <property stdset="1">
    268268                                        <name>maxLength</name>
    269                                         <number>4</number>
     269                                        <number>6</number>
    270270                                    </property>
    271271                                </widget>
     
    321321                                        <name>minimumSize</name>
    322322                                        <size>
    323                                             <width>30</width>
     323                                            <width>50</width>
    324324                                            <height>0</height>
    325325                                        </size>
     
    327327                                    <property stdset="1">
    328328                                        <name>maxLength</name>
    329                                         <number>3</number>
     329                                        <number>6</number>
    330330                                    </property>
    331331                                </widget>
     
    354354                                        <name>minimumSize</name>
    355355                                        <size>
    356                                             <width>30</width>
     356                                            <width>50</width>
    357357                                            <height>0</height>
    358358                                        </size>
     
    360360                                    <property stdset="1">
    361361                                        <name>maxLength</name>
    362                                         <number>3</number>
     362                                        <number>6</number>
    363363                                    </property>
    364364                                </widget>
Note: See TracChangeset for help on using the changeset viewer.