Index: /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.cpp
===================================================================
--- /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.cpp	(revision 4493)
+++ /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.cpp	(revision 4494)
@@ -49,5 +49,5 @@
 extern AMCFrameGrabber*		g_pFG;
 extern MagicMirror*				g_theMirror;
-extern int								g_iRefX, g_iRefY;
+extern double							g_dRefX, g_dRefY;
 
 VideoDisplay::VideoDisplay(QWidget *parent, const char *name, bool modal )
@@ -70,6 +70,6 @@
   qDebug("Adding Videoframe as widget");
 	((QGridLayout*) this->layout())->addWidget( m_videoFrame, 0, 0 );
-	connect( m_videoFrame, SIGNAL( gref(int, int ) ), this ,SLOT( setGRefInfoSlot( int, int ) ) );
-	connect( m_videoFrame, SIGNAL( spot(int, int ) ), this ,SLOT( setSpotInfoSlot( int, int ) ) );
+	connect( m_videoFrame, SIGNAL( gref(double, double ) ), this ,SLOT( setGRefInfoSlot( double, double ) ) );
+	connect( m_videoFrame, SIGNAL( spot(double, double ) ), this ,SLOT( setSpotInfoSlot( double, double ) ) );
 	connect( m_videoFrame, SIGNAL( framesGrabbed(int) ), (QObject*) GrabbedLCD ,SLOT( display( int ) ) );
 	connect( m_videoFrame, SIGNAL( framesProcessed(int) ), (QObject*) ProcessedLCD ,SLOT( display( int ) ) );
@@ -87,4 +87,5 @@
 	// ourselves.
   qDebug("Creating and starting timer");
+
 	m_pTimer = new QTimer( this );
 	connect( m_pTimer, SIGNAL( timeout() ), m_videoFrame, SLOT( timerDone() ) );
@@ -97,5 +98,14 @@
 	disconnect( Brightness, SIGNAL( valueChanged(int) ), g_pFG ,SLOT( setBrightness( int ) ) );
 	disconnect( Contrast, SIGNAL( valueChanged(int) ), g_pFG ,SLOT( setContrast( int ) ) );
+	disconnect( thresholdSlider, SIGNAL( valueChanged(int) ), m_videoFrame ,SLOT( threshold(int) ) );
+	disconnect( scaleBox, SIGNAL( toggled(bool) ), m_videoFrame ,SLOT( scaleImage(bool) ) );
+	disconnect( scaleValSlider, SIGNAL( valueChanged(int) ), m_videoFrame ,SLOT( scaleValue(int) ) );
+	disconnect( darksBox, SIGNAL( toggled(bool) ), m_videoFrame ,SLOT( substractDarks(bool) ) );
+	disconnect( Take_Dark_Button, SIGNAL( clicked() ), m_videoFrame ,SLOT( takeDark() ) );
+	disconnect( Clear_Darks_Button, SIGNAL( clicked() ), m_videoFrame ,SLOT( clearDarks() ) );
+	disconnect( m_videoFrame, 0, 0, 0 );
 	disconnect( m_pTimer, SIGNAL( timeout() ), m_videoFrame, SLOT( timerDone() ) );
+
+	m_pTimer->stop();        	// stop 1 seconds timer
 	delete m_pTimer;
 	qDebug("Deleting VideoFrame");
@@ -109,15 +119,15 @@
 
 /** No descriptions */
-void VideoDisplay::setSpotInfoSlot( int p_iX, int p_iY )
-{
-	SpotX->setText( QString::number(p_iX) );
-	SpotY->setText( QString::number(p_iY) );
-}
-
-/** No descriptions */
-void VideoDisplay::setGRefInfoSlot( int p_iX, int p_iY )
-{
-	GRefX->setText( QString::number( p_iX ) );
-	GRefY->setText( QString::number( p_iY ) );
+void VideoDisplay::setSpotInfoSlot( double p_dX, double p_dY )
+{
+	SpotX->setText( QString::number(p_dX) );
+	SpotY->setText( QString::number(p_dY) );
+}
+
+/** No descriptions */
+void VideoDisplay::setGRefInfoSlot( double p_dX, double p_dY )
+{
+	GRefX->setText( QString::number( p_dX ) );
+	GRefY->setText( QString::number( p_dY ) );
 }
 
@@ -144,6 +154,6 @@
 	RefY->setText( QString::number( m_pPanel->getLaserY() ) );
 	m_videoFrame->setRef( m_pPanel->getLaserX(), m_pPanel->getLaserY() );
-	GRefX->setText( QString::number( g_iRefX ) );
-	GRefY->setText( QString::number( g_iRefY ) );
+	GRefX->setText( QString::number( g_dRefX ) );
+	GRefY->setText( QString::number( g_dRefY ) );
 
   enableButtons( true );
@@ -170,5 +180,5 @@
 void VideoDisplay::centerSlot()
 {
-//	m_videoFrame->halt( true );
+//	halt( true );
 	enableButtons( false );
 	g_theApp->processEvents();
@@ -190,5 +200,5 @@
   							  	  QMessageBox::Ok | QMessageBox:: Default );
 		enableButtons( true );
-		m_videoFrame->halt( false );
+		halt( false );
 		return;
 	}
@@ -196,6 +206,5 @@
 	m_pPanel->setY( 0 );
 	enableButtons( true );
-	m_videoFrame->halt( false );
-//	g_theApp->processEvents();
+	halt( false );
 */
 }
@@ -224,6 +233,5 @@
 	
 	enableButtons( false );
-	m_videoFrame->halt( true );
-	g_theApp->processEvents();
+//halt( true );
 	try
 	{
@@ -243,6 +251,6 @@
   							  	  QMessageBox::Ok | QMessageBox:: Default );
 	}
-	m_videoFrame->halt( false );
 	enableButtons( true );
+//halt( false );
 	return;
 	
@@ -300,6 +308,6 @@
 void VideoDisplay::saveRefSlot()
 {
-	int x = SpotX->text().toInt();
-	int y = SpotY->text().toInt();
+	double x = SpotX->text().toDouble();
+	double y = SpotY->text().toDouble();
 
 	if( x != -1)
@@ -318,11 +326,11 @@
 void VideoDisplay::saveGRefSlot()
 {
-	int x = SpotX->text().toInt();
-	int y = SpotY->text().toInt();
+	double x = SpotX->text().toDouble();
+	double y = SpotY->text().toDouble();
 
 	if( x != -1)
 	{
-		g_iRefX = x;
-		g_iRefY = y;
+		g_dRefX = x;
+		g_dRefY = y;
 		GRefX->setText( QString::number( x ) );
 		GRefY->setText( QString::number( y ) );
@@ -333,16 +341,16 @@
 void VideoDisplay::adjustRefSlot()
 {
-	int iRefX = m_pPanel->getLaserX();
-	int iRefY = m_pPanel->getLaserY();
-  qDebug("Reference: %d %d", iRefX, iRefY );
-	if( ( iRefX == -1 ) && ( iRefY == -1 ) )
+	double dRefX = m_pPanel->getLaserX();
+	double dRefY = m_pPanel->getLaserY();
+  qDebug("Reference: %5.1f %5.1f", dRefX, dRefY );
+	if( ( dRefX < 0. ) && ( dRefY < 0. ) )
 		return;
-	int iDx, iDy;
-	iDx = m_videoFrame->m_iCenterX - CAMERA_X;
-	iDy = m_videoFrame->m_iCenterY - CAMERA_Y;
-	iRefX += iDx;
-	iRefY += iDy;
+	double dDx, dDy;
+	dDx = m_videoFrame->m_dCenterX - CAMERA_X;
+	dDy = m_videoFrame->m_dCenterY - CAMERA_Y;
+	dRefX += dDx;
+	dRefY += dDy;
 	int iStepX, iStepY;
-	calcSteps( iRefX, iRefY, iStepX, iStepY );
+	calcSteps( dRefX, dRefY, iStepX, iStepY );
 	moveMotors( iStepX, iStepY );
 }
@@ -351,37 +359,26 @@
 void VideoDisplay::adjustGRefSlot()
 {
-	if( ( g_iRefX == -1 ) && ( g_iRefY == -1 ) )
+	if( ( g_dRefX == -1. ) && ( g_dRefY == -1. ) )
 		return;
 	int iStepX, iStepY;
-	calcSteps( g_iRefX, g_iRefY, iStepX, iStepY );
+	calcSteps( g_dRefX, g_dRefY, iStepX, iStepY );
 	moveMotors( iStepX, iStepY );
 }
 
-void VideoDisplay::calcSteps( int p_iRefX, int p_iRefY, int& p_iStepX, int& p_iStepY )
+void VideoDisplay::calcSteps( double p_dRefX, double p_dRefY, int& p_iStepX, int& p_iStepY )
 {
 	p_iStepX = p_iStepY = 0;
-	int iVSpotX = SpotX->text().toInt();
-	int iVSpotY = SpotY->text().toInt();
-	if( ( iVSpotX == -1 ) && ( iVSpotY == -1 ) )
+	double dVSpotX = SpotX->text().toDouble();
+	double dVSpotY = SpotY->text().toDouble();
+	if( ( dVSpotX < 0. ) && ( dVSpotY < 0. ) )
 		return;
-	qDebug("Spot at x,y: %4d %4d", iVSpotX, iVSpotY );
-	qDebug("Ref  at x,y: %4d %4d", p_iRefX, p_iRefY );
-
-	double dX = p_iRefX - iVSpotX;
-	double dY = p_iRefY - iVSpotY;
-	double dAlpha1 = atan( m_pPanel->getSlopeX() );
-	double dAlpha2 = atan( m_pPanel->getSlopeY() );
-	double dSinA1 = sin( dAlpha1 );
-	double dSinA2 = sin( dAlpha2 );
-	double dCosA1 = cos( dAlpha1 );
-	double dCosA2 = cos( dAlpha2 );
-
-	double dFacX = dX - ( dY * dCosA2 / dSinA2 );
-	dFacX /= ( dCosA1 - dSinA1 * dCosA2 / dSinA2 );
-	double dFacY = (dY - dFacX * dSinA1) / dSinA2;
-
-	p_iStepX = (int) ( dFacX * m_pPanel->getConversionX() );
-	p_iStepY = (int) ( dFacY * m_pPanel->getConversionY() );
-
+	qDebug("Spot at x,y: %5.1f %5.1f", dVSpotX, dVSpotY );
+	qDebug("Ref  at x,y: %5.1f %5.1f", p_dRefX, p_dRefY );
+
+
+	double dX = p_dRefX - dVSpotX;
+	double dY = p_dRefY - dVSpotY;
+
+	m_pPanel->calcSteps( dX, dY, p_iStepX, p_iStepY );
 	qDebug("Steps till reference: %4d %4d", p_iStepX, p_iStepY );	
 }
@@ -530,5 +527,5 @@
 {
   qDebug("Stoping VideoFrame");
-	m_videoFrame->halt( true );
+	halt( true );
   qDebug("Disabling buttons");
 	enableButtons( false );
@@ -542,5 +539,5 @@
 	enableButtons( true );
   qDebug("Restarting VideoFrame");
-	m_videoFrame->halt( false );
+	halt( false );
 }
 
@@ -551,2 +548,13 @@
 	VideoDisplayBase::accept();
 }
+
+/** No descriptions */
+void VideoDisplay::halt( bool p_zHalt )
+{
+	if ( p_zHalt == true )
+		m_pTimer->stop();
+	else
+		m_pTimer->start( 1000 );
+
+	m_videoFrame->halt( p_zHalt );
+}
Index: /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.h
===================================================================
--- /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.h	(revision 4493)
+++ /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplay.h	(revision 4494)
@@ -64,7 +64,7 @@
   virtual void storeSlot();
   /** No descriptions */
-  virtual void setSpotInfoSlot( int p_iX, int p_iY );
+  virtual void setSpotInfoSlot( double p_iX, double p_iY );
   /** No descriptions */
-  virtual void setGRefInfoSlot( int p_iX, int p_iY );
+  virtual void setGRefInfoSlot( double p_iX, double p_iY );
   /** Move the X motor 10 steps forward. */
   virtual void incX10Slot() { moveMotors( 10, 0 ); };
@@ -93,8 +93,10 @@
   /** Move motors relative by the given amount of steps. */
   virtual void moveMotors( int x, int y );
+  /** No descriptions */
+  void halt( bool p_zHalt );
 private:
   /** No descriptions */
   void enableButtons( bool p_zEnable ) const;
-	void calcSteps( int p_iRefX, int p_iRefY, int& p_iStepX, int& p_iStepY );
+	void calcSteps( double p_dRefX, double p_dRefY, int& p_iStepX, int& p_iStepY );
 	
 public slots: // Public slots
Index: /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplaybase.ui
===================================================================
--- /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplaybase.ui	(revision 4493)
+++ /trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/videodisplaybase.ui	(revision 4494)
@@ -12,6 +12,6 @@
             <x>0</x>
             <y>0</y>
-            <width>911</width>
-            <height>652</height>
+            <width>948</width>
+            <height>719</height>
         </rect>
     </property>
@@ -142,5 +142,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -148,5 +148,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>4</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
@@ -164,5 +164,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -170,5 +170,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>4</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
@@ -235,5 +235,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -245,5 +245,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>4</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
@@ -261,5 +261,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -267,5 +267,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>4</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
@@ -321,5 +321,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -327,5 +327,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>3</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
@@ -354,5 +354,5 @@
                                         <name>minimumSize</name>
                                         <size>
-                                            <width>30</width>
+                                            <width>50</width>
                                             <height>0</height>
                                         </size>
@@ -360,5 +360,5 @@
                                     <property stdset="1">
                                         <name>maxLength</name>
-                                        <number>3</number>
+                                        <number>6</number>
                                     </property>
                                 </widget>
