Index: trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/activemirrorcontrol.cpp
===================================================================
--- trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/activemirrorcontrol.cpp	(revision 4507)
+++ trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/activemirrorcontrol.cpp	(revision 4508)
@@ -193,12 +193,14 @@
   int iStateCaCo, iStateCalib, iStateSentinel, iStateHVPS, iStateLid;
   int iStateLV, iStateCool, iStateHV, iStateDC, iStateCaosLEDs;
-  int iStateFADCFans, iStateCalCan, iStateCalIO, iStateCalLV, iStateAMCLEDs;
+  int iStateFADCFans, iStateCalCan, iStateCalIO, iStateCalLV;
   qts >> iStateCaCo >> iStateCalib >> iStateSentinel >> iStateHVPS >> iStateLid;
   qts >> iStateLV >> iStateCool >> iStateHV >> iStateDC >> iStateCaosLEDs;
-  qts >> iStateFADCFans >> iStateCalCan >> iStateCalIO >> iStateCalLV >> iStateAMCLEDs;
+  qts >> iStateFADCFans >> iStateCalCan >> iStateCalIO >> iStateCalLV;
   int iStateAMC, iStateHEAT;
   qts >> iStateAMC >> iStateHEAT;
   int iStateLIDAR, iStateOptical, iStateL2T, iStateAUX, iStateGRB;
   qts >> iStateLIDAR >> iStateOptical >> iStateL2T >> iStateAUX >> iStateGRB;
+  int iStateAMCLEDs;
+	qts >> iStateAMCLEDs;
 	double dZd, dAz, dDec, dRA;
 	qts >> dZd >> dAz >> dDec >> dRA;
Index: trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amccmdserversocket.cpp
===================================================================
--- trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amccmdserversocket.cpp	(revision 4507)
+++ trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amccmdserversocket.cpp	(revision 4508)
@@ -59,5 +59,5 @@
 			m_qtTimer.stop();
 			m_qtTimer.start( CC_REPORT_TIMEOUT, true );
-//			qDebug( msg );
+			qDebug( msg );
 			emit reportFromCC( msg );
 //			m_pParent->setAMCState( iStatus );
Index: trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcdefs.h
===================================================================
--- trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcdefs.h	(revision 4507)
+++ trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcdefs.h	(revision 4508)
@@ -16,5 +16,5 @@
  ***************************************************************************/
 
-#define AMC_VERSION		"2.01"
+#define AMC_VERSION		"2.03"
 
 #define CAMERA_X		344.0 //			
Index: trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcmirrorpanel.cpp
===================================================================
--- trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcmirrorpanel.cpp	(revision 4507)
+++ trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/amcmirrorpanel.cpp	(revision 4508)
@@ -209,14 +209,17 @@
 	double dX = p_dX;
 	double dY = p_dY;
+	double dAlpha1 = atan( getSlopeX() );
+	double dAlpha2 = atan( getSlopeY() );
+
 	if( m_zReversed )
 	{
 		dX = p_dY;
 		dY = p_dX;
+//		dAlpha1 = atan( getSlopeY() );
+//		dAlpha2 = atan( getSlopeX() );
 	}
-//	qDebug("Dx Dy: %4.0f %4.0f", dX, dY );	
-
-	double dAlpha1 = atan( getSlopeX() );
-	double dAlpha2 = atan( getSlopeY() );
-//	qDebug("alpha1, alpha2: %7.2f %7.2f", dAlpha1 * 180.0 / 3.1415, dAlpha2 * 180.0 / 3.1415 );	
+	qDebug("Dx Dy: %5.1f %5.1f", dX, dY );	
+	qDebug("SlopeX, SlopeY: %7.4f %7.4f", getSlopeY(), getSlopeX() );	
+	qDebug("alpha1, alpha2: %7.2f %7.2f", dAlpha1 * 180.0 / 3.1415, dAlpha2 * 180.0 / 3.1415 );	
 
 	double dSinA1 = sin( dAlpha1 );
@@ -228,15 +231,14 @@
 	dFacX /= ( dCosA1 - dSinA1 * dCosA2 / dSinA2 );
 	double dFacY = ( dY - dFacX * dSinA1 ) / dSinA2;
-//	qDebug("Factor x,y: %8.2f %8.2f", dFacX, dFacY );	
-
+	qDebug("Factor x,y: %8.2f %8.2f", dFacX, dFacY );	
+
+	p_iStepsX = (int) ( dFacX * getConversionX() );
+	p_iStepsY = (int) ( dFacY * getConversionY() );
 	if( m_zReversed )
 	{
-		p_iStepsY = (int) ( dFacY * getConversionY() );
-		p_iStepsX = (int) ( dFacX * getConversionX() );
-	}
-	else
-	{
-		p_iStepsX = (int) ( dFacX * getConversionX() );
-		p_iStepsY = (int) ( dFacY * getConversionY() );
+		if(getSlopeX() < 0.0)
+			p_iStepsX = (int) ( dFacX * -1.0 * getConversionX() );
+		if(getSlopeY() < 0.0)
+			p_iStepsY = (int) ( dFacY * -1.0 * getConversionY() );
 	}
 
@@ -253,5 +255,5 @@
 void AMCMirrorPanel::getCorrectedRef( double& p_dRefX, double& p_dRefY )
 {
-	const double  kPixelperMMX = 0.44;
+	const double  kPixelperMMX = -0.44;
 	const double  kPixelperMMY = 0.44;
 
@@ -270,8 +272,8 @@
 
 	/*	
-	 * We assumethat the video camera is horizontally alligned with mirror dish.
+	 * We assume that the video camera is horizontally alligned with mirror dish.
 	 * If we have a rotation of the video image in respect to the mirror frame we
 	 * must add an extra correction here.
-	 * As the coordinate system of the video image has a reversed Y axis ( 0rign being
+	 * As the coordinate system of the video image has a reversed Y axis ( origin being
 	 * the upper left corner) we have to multiply the Y correction with -1. to get the right
 	 * sign.
@@ -280,6 +282,6 @@
 	double dCorrSpotY = -1.0 * cos( dZeta ) * dCorrection;
 
-	p_dRefX += dCorrSpotY * kPixelperMMX;
-	p_dRefY += dCorrSpotY * kPixelperMMY;
+  p_dRefX += dCorrSpotX * kPixelperMMX;
+  p_dRefY += dCorrSpotY * kPixelperMMY;
 	qDebug( "Laser spot position after applying correction:   %f %f", p_dRefX, p_dRefY );
 }
Index: trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/laseradjustthread.cpp
===================================================================
--- trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/laseradjustthread.cpp	(revision 4507)
+++ trunk/MagicSoft/AMC/activemirrorcontrol/activemirrorcontrol/laseradjustthread.cpp	(revision 4508)
@@ -100,7 +100,5 @@
 
 		// check if the laser adjustment converged
- 		double dX,dY;
 		getSpot();
-		getDistToRef(dX, dY);
 		int x,y;
 		calcSteps( x, y );
@@ -109,4 +107,10 @@
 		m_pPanel->setLaserOn( false );
 
+		double dRefX, dRefY;
+		m_pPanel->getCorrectedRef( dRefX, dRefY );
+		double dX, dY;
+		dX = dRefX - m_dSpotX;
+		dY = dRefY - m_dSpotY;
+		
 		if( (fabs(dX) > 1.5) || (fabs(dY) > 1.5) )
 		{
@@ -214,6 +218,4 @@
 	double dRefX;
 	double dRefY;
-//	dRefX = m_pPanel->getLaserX();
-//	dRefY = m_pPanel->getLaserY();
 	m_pPanel->getCorrectedRef( dRefX, dRefY );
 
