Index: /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp	(revision 688)
@@ -125,5 +125,5 @@
 ***************************************************************************************/
 
-#define ERREURS 50
+#define ERREURS 10
 
 int main ( int argc, char *argv[] )
Index: /BAORadio/libindi/libindi/BAOcontrol/BAOcontrol.pro
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/BAOcontrol.pro	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/BAOcontrol.pro	(revision 688)
@@ -1,4 +1,4 @@
 ######################################################################
-# Automatically generated by qmake (2.01a) jeu. mai 24 18:43:53 2012
+# Automatically generated by qmake (2.01a) ven. juin 8 16:03:28 2012
 ######################################################################
 
@@ -11,7 +11,14 @@
 HEADERS += baocontrol.h \
            baoqt.h \
+           Connection.hpp \
+           Joystick.h \
            liste.h \
+           Listener.hpp \
+           LogFile.hpp \
            map.h \
+           qledindicator.h \
            selectstars.h \
+           Server.hpp \
+           Socket2.hpp \
            ../communs/const.h \
            ../communs/logs.h \
@@ -26,8 +33,15 @@
 SOURCES += baocontrol.cpp \
            baoqt.cpp \
+           Connection.cpp \
+           Joystick.cpp \
            liste.cpp \
+           Listener.cpp \
+           LogFile.cpp \
            main.cpp \
            map.cpp \
+           qledindicator.cpp \
            selectstars.cpp \
+           Server.cpp \
+           Socket2.cpp \
            ../communs/logs.cpp \
            ../communs/ClientSocket.cpp \
Index: /BAORadio/libindi/libindi/BAOcontrol/Makefile
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/Makefile	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/Makefile	(revision 688)
@@ -1,5 +1,5 @@
 #############################################################################
 # Makefile for building: BAOcontrol
-# Generated by qmake (2.01a) (Qt 4.7.4) on: jeu. mai 24 18:43:53 2012
+# Generated by qmake (2.01a) (Qt 4.7.4) on: ven. juin 8 16:03:29 2012
 # Project:  BAOcontrol.pro
 # Template: app
@@ -46,8 +46,15 @@
 SOURCES       = baocontrol.cpp \
 		baoqt.cpp \
+		Connection.cpp \
+		Joystick.cpp \
 		liste.cpp \
+		Listener.cpp \
+		LogFile.cpp \
 		main.cpp \
 		map.cpp \
+		qledindicator.cpp \
 		selectstars.cpp \
+		Server.cpp \
+		Socket2.cpp \
 		../communs/logs.cpp \
 		../communs/ClientSocket.cpp \
@@ -59,11 +66,19 @@
 		moc_liste.cpp \
 		moc_map.cpp \
+		moc_qledindicator.cpp \
 		moc_selectstars.cpp
 OBJECTS       = baocontrol.o \
 		baoqt.o \
+		Connection.o \
+		Joystick.o \
 		liste.o \
+		Listener.o \
+		LogFile.o \
 		main.o \
 		map.o \
+		qledindicator.o \
 		selectstars.o \
+		Server.o \
+		Socket2.o \
 		logs.o \
 		ClientSocket.o \
@@ -76,4 +91,5 @@
 		moc_liste.o \
 		moc_map.o \
+		moc_qledindicator.o \
 		moc_selectstars.o
 DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
@@ -179,5 +195,5 @@
 dist: 
 	@$(CHK_DIR_EXISTS) .tmp/BAOcontrol1.0.0 || $(MKDIR) .tmp/BAOcontrol1.0.0 
-	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baocontrol.h baoqt.h liste.h map.h selectstars.h ../communs/const.h ../communs/logs.h ../communs/ClientSocket.h ../communs/Socket.h ../communs/SocketException.h ../communs/astro.h ../communs/alignement.h ../communs/filetools.h ../communs/exception.h .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baocontrol.cpp baoqt.cpp liste.cpp main.cpp map.cpp selectstars.cpp ../communs/logs.cpp ../communs/ClientSocket.cpp ../communs/Socket.cpp ../communs/astro.cpp ../communs/alignement.cpp ../communs/filetools.cpp ../communs/exception.cpp .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baoqt.ui liste.ui map.ui selectstars.ui .tmp/BAOcontrol1.0.0/ && (cd `dirname .tmp/BAOcontrol1.0.0` && $(TAR) BAOcontrol1.0.0.tar BAOcontrol1.0.0 && $(COMPRESS) BAOcontrol1.0.0.tar) && $(MOVE) `dirname .tmp/BAOcontrol1.0.0`/BAOcontrol1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/BAOcontrol1.0.0
+	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baocontrol.h baoqt.h Connection.hpp Joystick.h liste.h Listener.hpp LogFile.hpp map.h qledindicator.h selectstars.h Server.hpp Socket2.hpp ../communs/const.h ../communs/logs.h ../communs/ClientSocket.h ../communs/Socket.h ../communs/SocketException.h ../communs/astro.h ../communs/alignement.h ../communs/filetools.h ../communs/exception.h .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baocontrol.cpp baoqt.cpp Connection.cpp Joystick.cpp liste.cpp Listener.cpp LogFile.cpp main.cpp map.cpp qledindicator.cpp selectstars.cpp Server.cpp Socket2.cpp ../communs/logs.cpp ../communs/ClientSocket.cpp ../communs/Socket.cpp ../communs/astro.cpp ../communs/alignement.cpp ../communs/filetools.cpp ../communs/exception.cpp .tmp/BAOcontrol1.0.0/ && $(COPY_FILE) --parents baoqt.ui liste.ui map.ui selectstars.ui .tmp/BAOcontrol1.0.0/ && (cd `dirname .tmp/BAOcontrol1.0.0` && $(TAR) BAOcontrol1.0.0.tar BAOcontrol1.0.0 && $(COMPRESS) BAOcontrol1.0.0.tar) && $(MOVE) `dirname .tmp/BAOcontrol1.0.0`/BAOcontrol1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/BAOcontrol1.0.0
 
 
@@ -200,7 +216,7 @@
 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
 
-compiler_moc_header_make_all: moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_selectstars.cpp
+compiler_moc_header_make_all: moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_qledindicator.cpp moc_selectstars.cpp
 compiler_moc_header_clean:
-	-$(DEL_FILE) moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_selectstars.cpp
+	-$(DEL_FILE) moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_qledindicator.cpp moc_selectstars.cpp
 moc_baoqt.cpp: selectstars.h \
 		ui_selectstars.h \
@@ -217,4 +233,7 @@
 		../communs/filetools.h \
 		../communs/exception.h \
+		qledindicator.h \
+		Joystick.h \
+		Server.hpp \
 		baoqt.h
 	/usr/bin/moc $(DEFINES) $(INCPATH) baoqt.h -o moc_baoqt.cpp
@@ -226,4 +245,7 @@
 		map.h
 	/usr/bin/moc $(DEFINES) $(INCPATH) map.h -o moc_map.cpp
+
+moc_qledindicator.cpp: qledindicator.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) qledindicator.h -o moc_qledindicator.cpp
 
 moc_selectstars.cpp: ui_selectstars.h \
@@ -290,10 +312,33 @@
 		../communs/filetools.h \
 		../communs/exception.h \
+		qledindicator.h \
+		Joystick.h \
+		Server.hpp \
 		ui_baoqt.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o baoqt.o baoqt.cpp
+
+Connection.o: Connection.cpp Connection.hpp \
+		Socket2.hpp \
+		Server.hpp \
+		LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Connection.o Connection.cpp
+
+Joystick.o: Joystick.cpp ../communs/const.h \
+		Joystick.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Joystick.o Joystick.cpp
 
 liste.o: liste.cpp liste.h \
 		ui_liste.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o liste.o liste.cpp
+
+Listener.o: Listener.cpp Listener.hpp \
+		Socket2.hpp \
+		Connection.hpp \
+		Server.hpp \
+		LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Listener.o Listener.cpp
+
+LogFile.o: LogFile.cpp LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o LogFile.o LogFile.cpp
 
 main.o: main.cpp baoqt.h \
@@ -312,4 +357,7 @@
 		../communs/filetools.h \
 		../communs/exception.h \
+		qledindicator.h \
+		Joystick.h \
+		Server.hpp \
 		ui_baoqt.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
@@ -319,8 +367,19 @@
 		ui_map.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o map.o map.cpp
+
+qledindicator.o: qledindicator.cpp qledindicator.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qledindicator.o qledindicator.cpp
 
 selectstars.o: selectstars.cpp selectstars.h \
 		ui_selectstars.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o selectstars.o selectstars.cpp
+
+Server.o: Server.cpp Server.hpp \
+		Socket2.hpp \
+		Listener.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Server.o Server.cpp
+
+Socket2.o: Socket2.cpp Socket2.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Socket2.o Socket2.cpp
 
 logs.o: ../communs/logs.cpp ../communs/logs.h \
@@ -364,4 +423,7 @@
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_map.o moc_map.cpp
 
+moc_qledindicator.o: moc_qledindicator.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qledindicator.o moc_qledindicator.cpp
+
 moc_selectstars.o: moc_selectstars.cpp 
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_selectstars.o moc_selectstars.cpp
Index: /BAORadio/libindi/libindi/BAOcontrol/baocontrol.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/baocontrol.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/baocontrol.cpp	(revision 688)
@@ -41,5 +41,5 @@
     // pour la signification des variables, voir baocontrol.h
 
-
+    //BAOcontrol
 
     delaitransit           = 0;
@@ -222,5 +222,4 @@
 
 
-
     // Ouverture du socket avec indi_BAO
 
@@ -230,5 +229,4 @@
 
     Connect(true);
-
 }
 
@@ -261,5 +259,4 @@
     delete client_socket;
 }
-
 
 
@@ -298,5 +295,4 @@
     }
 
-
     //affichage de la date et de l'heure
 
@@ -306,5 +302,4 @@
 
 
-
     // En cas d'exÃ©cution d'un fichier de mouvements, on affiche la durÃ©e avant la prochaine Ã©tape
 
@@ -313,64 +308,5 @@
 //       sprintf(chaine, "Prochaine etape dans %4.1fs", (objets[runnum].JJ - JJ) * 3600.0 * 24.0);
 
-
-    }
-    /*
-
-        // affichage des cercles d'Ã©tat des antennes
-        // vert = l'antenne fonctionne
-        // rouge = problÃšme dÃ©tectÃ© sur l'antenne
-        // gris = antenne non connectÃ©e
-
-        for (int i=0; i <20; i++)
-        {
-            for (int j=0; j<2; j++)
-            {
-                switch (Antennes[20*j+i].ok)
-                {
-                case 1 :
-                    color=vert;
-                    break;
-                case 2 :
-                    color=rouge;
-                    break;
-                default:
-                    color=gris;
-                    break;
-                }
-
-                XFillArc(d, db ,color, 10 + i * 30, 20 + j * 30, 15, 15, 0, 360 * 64);
-
-                XDrawArc(d, db ,noir,  10 + i * 30, 20 + j * 30, 15, 15, 0, 360 * 64);
-            }
-        }
-
-
-        // Affichage des messages venant du serveur indi_BAO et rÃ©cupÃ©rÃ©s par la fonction LireReponse()
-        // Les messages d'erreurs sont affichÃ©s en rouge
-
-        for (int i=0; i<lognum; i++)
-        {
-            if (i>lognum-11)
-            {
-                if ((logs[i].find("Err")!=string::npos)
-                        || (logs[i].find("ALERTE")!=string::npos)) color=rouge;
-                else color=vert;
-                XDrawString(d, db, color, 10, (lognum>10)?9*12+(i-lognum+10)*12:9*12+i*12,
-                            logs[i].c_str(), strlen(logs[i].c_str()));
-            }
-        }
-
-
-        // On n'affiche la fenÃªtre graphique que lorsque tous les Ã©lÃ©ments ont Ã©tÃ© dessinÃ©s Ã  l'intÃ©rieur
-        // On Ã©vite ainsi le scintillement de la fenÃªtre...
-
-        XCopyArea(d, db, w, noir, 0, 0, larg_fenetre, haut_fenetre, 0, 0);
-
-
-        // On force le rafraÃ®chissement de l'Ã©cran
-
-        XFlush(d);
-
-        delete [] chaine;*/
+    }
 }
 
@@ -485,5 +421,5 @@
 
     Dessiner();
-  
+
 }
 
@@ -583,5 +519,5 @@
     struct tm date;
     struct timeval tv;
-
+ 
     // On rÃ©cupÃšre la date et l'heure depuis l'horloge du systÃšme
 
@@ -604,5 +540,5 @@
     // On lance les calculs (Temps sidÃ©ral local etc...)
 
-    CalculTSL();
+    CalculTSL();  
 }
 
@@ -705,6 +641,4 @@
 
         LireReponse();
-
-        Dessiner();
 
         // pause de 100 ms
@@ -1050,5 +984,5 @@
             return true;
         }
-        
+
         if (commande == "O")
         {
@@ -2162,201 +2096,201 @@
                 commande[0]='M';
                 break;
-		case 'o' :
+            case 'o' :
                 commande[0]='O';
                 break;
             }
-       
-
-
-        string Message;
-
-        if (!EnvoyerCommande((string)commande, &Message))
-        {
-            ErreurLog("Erreur ! La commande n'a pas un format correct !\n\n");
+
+
+
+            string Message;
+
+            if (!EnvoyerCommande((string)commande, &Message))
+            {
+                ErreurLog("Erreur ! La commande n'a pas un format correct !\n\n");
+            }
+            else
+            {
+                AfficherLog(Message +"\n\n", true);
+
+                return Message;
+            }
+        }
+    }
+
+
+
+// correction de l'alignement d'une antenne par rapport Ã  l'objet visÃ©
+
+    if (chaine.find("align")!=string::npos)
+    {
+        string ip;
+
+        CommandeOK = true;
+
+        if (DecompositionCommande(chaine, "align", &ip, NULL))
+        {
+            AlignementAntenneIP(ip);
         }
         else
         {
-            AfficherLog(Message +"\n\n", true);
-
-            return Message;
-        }
-    }
-}
-
-
-
-// correction de l'alignement d'une antenne par rapport Ã  l'objet visÃ©
-
-if (chaine.find("align")!=string::npos)
-{
-    string ip;
-
-    CommandeOK = true;
-
-    if (DecompositionCommande(chaine, "align", &ip, NULL))
-    {
-        AlignementAntenneIP(ip);
-    }
-    else
-    {
-        ErreurLog("Erreur align : la commande align doit Ãªtre suivie par l'ip de l'antenne qui faut aligner.\n\n");
-    }
-}
+            ErreurLog("Erreur align : la commande align doit Ãªtre suivie par l'ip de l'antenne qui faut aligner.\n\n");
+        }
+    }
 
 
 // RÃ©initialisation de l'alignement d'une antenne
 
-if (chaine.find("reset")!=string::npos)
-{
-    string ip;
-
-    CommandeOK = true;
-
-    if (DecompositionCommande(chaine, "reset", &ip, NULL))
-    {
-        if (SelectionIP(ip))
-        {
-            ResetAlignement();
-            return "";
-        }
-
-        ErreurLog("Erreur reset : la commande reset doit Ãªtre suivie par l'ip de l'antenne qu'il faut aligner.\n\n");
-    }
-}
+    if (chaine.find("reset")!=string::npos)
+    {
+        string ip;
+
+        CommandeOK = true;
+
+        if (DecompositionCommande(chaine, "reset", &ip, NULL))
+        {
+            if (SelectionIP(ip))
+            {
+                ResetAlignement();
+                return "";
+            }
+
+            ErreurLog("Erreur reset : la commande reset doit Ãªtre suivie par l'ip de l'antenne qu'il faut aligner.\n\n");
+        }
+    }
 
 
 // Commande set
 
-if (chaine.find("set") != string::npos)
-{
-    string commande, commande2, commande3;
-
-    // est-ce que la commande commande par set ! -> si oui, la variable commande contient alors le reste de
-    // la phrase saisie par l'utilisateur
-
-    if (DecompositionCommande(chaine, "set", &commande, NULL))
-    {
-        // A-t-on set transit xxxx ?
-
-        if (DecompositionCommande(commande, "transit", &commande2, &commande3))
-        {
-            //at-ton set transit delay xxx ?
-
-            if (commande2 == "delay")
+    if (chaine.find("set") != string::npos)
+    {
+        string commande, commande2, commande3;
+
+        // est-ce que la commande commande par set ! -> si oui, la variable commande contient alors le reste de
+        // la phrase saisie par l'utilisateur
+
+        if (DecompositionCommande(chaine, "set", &commande, NULL))
+        {
+            // A-t-on set transit xxxx ?
+
+            if (DecompositionCommande(commande, "transit", &commande2, &commande3))
             {
-                if (atoi(commande3.c_str()) > 0)
+                //at-ton set transit delay xxx ?
+
+                if (commande2 == "delay")
+                {
+                    if (atoi(commande3.c_str()) > 0)
+                    {
+                        CommandeOK = true;
+
+                        delaitransit = atoi(commande3.c_str());
+
+                        EnvoyerDelaisModesTransitEtTracking();
+
+                        AfficherLog("Delai entre deux actualisations en mode transit : " + commande3 + "\n\n" , true);
+                    }
+                    else
+                    {
+                        AfficherLog("Le nombre qui suit le mot clÃ© delay doit Ãªtre entier et > 0  \n\n" , true);
+                    }
+                }
+
+                // Active le mode de suivi "transit"
+
+                if (commande2 == "on")
                 {
                     CommandeOK = true;
 
-                    delaitransit = atoi(commande3.c_str());
-
-                    EnvoyerDelaisModesTransitEtTracking();
-
-                    AfficherLog("Delai entre deux actualisations en mode transit : " + commande3 + "\n\n" , true);
+                    AfficherLog("Mode transit activÃ©.\n\n", true);
+
+                    Transit = true;
+                }
+            }
+
+            // a-t-on set tracking xxxx ?
+
+            if (DecompositionCommande(commande, "tracking", &commande2,  &commande3))
+            {
+                // a-ton set tracking delay xxx ?
+
+                if (commande2 == "delay")
+                {
+                    if (atoi(commande3.c_str())>0)
+                    {
+                        CommandeOK = true;
+
+                        delaitracking = atoi(commande3.c_str());
+
+                        EnvoyerDelaisModesTransitEtTracking();
+
+                        AfficherLog("Delai entre deux actualisations en mode tracking : " + commande3 + "\n\n" , true);
+                    }
+                    else
+                    {
+                        AfficherLog("Le nombre qui suit le mot clÃ© delay doit Ãªtre entier et > 0  \n\n" , true);
+                    }
+                }
+
+                // Active le mode de suivi "transit"
+
+                if (commande2 == "on")
+                {
+                    CommandeOK = true;
+
+                    AfficherLog("Mode tracking activÃ©.\n\n", true);
+
+                    Transit = false;
+                }
+            }
+
+            // A-t-on set alignment ?
+
+            if (DecompositionCommande(commande, "alignment", &commande2,  &commande3))
+            {
+
+                // A-ton set alignment method xxx ?
+
+                if (commande2 == "method")
+                {
+                    MethodeAlignement = NONE;
+
+                    if (commande3 == "simple") MethodeAlignement = SIMPLE;
+
+                    if (commande3 == "affine") MethodeAlignement = AFFINE;
+
+                    if (commande3 == "taki")   MethodeAlignement = TAKI;
+
+                    if (MethodeAlignement == NONE )
+                    {
+                        MethodeAlignement = SIMPLE;
+
+                        AfficherLog("Erreur: la syntaxe doit Ãªtre 'set alignment method x' avec x = simple/affine/taki)\n\n" , true);
+                    }
+                    else
+                    {
+                        CommandeOK = true;
+
+                        EnvoyerMethodeAlignement();
+
+                        switch (MethodeAlignement)
+                        {
+                        case  SIMPLE :
+                            AfficherLog("Activation de la mÃ©thode d'alignement simple\n\n", true);
+                            break;
+                        case  AFFINE :
+                            AfficherLog("Activation de la mÃ©thode d'alignement affine\n\n", true);
+                            break;
+                        case  TAKI :
+                            AfficherLog("Activation de la mÃ©thode d'alignement taki\n\n", true);
+                            break;
+                        }
+                    }
                 }
                 else
                 {
-                    AfficherLog("Le nombre qui suit le mot clÃ© delay doit Ãªtre entier et > 0  \n\n" , true);
-                }
-            }
-
-            // Active le mode de suivi "transit"
-
-            if (commande2 == "on")
-            {
-                CommandeOK = true;
-
-                AfficherLog("Mode transit activÃ©.\n\n", true);
-
-                Transit = true;
-            }
-        }
-
-        // a-t-on set tracking xxxx ?
-
-        if (DecompositionCommande(commande, "tracking", &commande2,  &commande3))
-        {
-            // a-ton set tracking delay xxx ?
-
-            if (commande2 == "delay")
-            {
-                if (atoi(commande3.c_str())>0)
-                {
-                    CommandeOK = true;
-
-                    delaitracking = atoi(commande3.c_str());
-
-                    EnvoyerDelaisModesTransitEtTracking();
-
-                    AfficherLog("Delai entre deux actualisations en mode tracking : " + commande3 + "\n\n" , true);
-                }
-                else
-                {
-                    AfficherLog("Le nombre qui suit le mot clÃ© delay doit Ãªtre entier et > 0  \n\n" , true);
-                }
-            }
-
-            // Active le mode de suivi "transit"
-
-            if (commande2 == "on")
-            {
-                CommandeOK = true;
-
-                AfficherLog("Mode tracking activÃ©.\n\n", true);
-
-                Transit = false;
-            }
-        }
-
-        // A-t-on set alignment ?
-
-        if (DecompositionCommande(commande, "alignment", &commande2,  &commande3))
-        {
-
-            // A-ton set alignment method xxx ?
-
-            if (commande2 == "method")
-            {
-                MethodeAlignement = NONE;
-
-                if (commande3 == "simple") MethodeAlignement = SIMPLE;
-		
-                if (commande3 == "affine") MethodeAlignement = AFFINE;
-		
-                if (commande3 == "taki")   MethodeAlignement = TAKI;
-
-                if (MethodeAlignement == NONE )
-                {
-                    MethodeAlignement = SIMPLE;
-
                     AfficherLog("Erreur: la syntaxe doit Ãªtre 'set alignment method x' avec x = simple/affine/taki)\n\n" , true);
                 }
-                else
-                {
-                    CommandeOK = true;
-
-                    EnvoyerMethodeAlignement();
-
-                    switch (MethodeAlignement)
-                    {
-                    case  SIMPLE :
-                        AfficherLog("Activation de la mÃ©thode d'alignement simple\n\n", true);
-                        break;
-                    case  AFFINE :
-                        AfficherLog("Activation de la mÃ©thode d'alignement affine\n\n", true);
-                        break;
-                    case  TAKI :
-                        AfficherLog("Activation de la mÃ©thode d'alignement taki\n\n", true);
-                        break;
-                    }
-                }
-            }
-            else
-            {
-                AfficherLog("Erreur: la syntaxe doit Ãªtre 'set alignment method x' avec x = simple/affine/taki)\n\n" , true);
-            }
-        }
-    }
-}
+            }
+        }
+    }
 
 
@@ -2367,68 +2301,68 @@
 // Aide du programme
 
-if (chaine.find("help") != string::npos)
-{
-    CommandeOK = true;
-
-    cout << endl;
-
-    cout << "connect :                Se connecte au pilote indi_BAO." << endl;
-    cout << "disconnect :             Se dÃ©connecte du pilote indi_BAO." << endl;
-    cout << "goto AD Dec :            Pointe l'objet situÃ© aux coordonnÃ©es apparentes AD Dec." << endl;
-    cout << "                         AD doit Ãªtre au format xx:yy:zz et dec au format +/-xx:yy:zz" << endl;
-    cout << "                         exemple goto 12:10:05 -05:10:11 permettra de pointer l'objet" << endl;
-    cout << "                         situÃ© aux coordonnÃ©es AD=12h10m5s et dec=-5Â°10'11''" << endl;
-    cout << "goto AD Dec J2000 :      Pointe l'objet situÃ© aux coordonnÃ©es AD Dec dans le repÃšre J2000." << endl;
-    cout << "                         Avant de pointer l'objet, le programme calcule la prÃ©cession, la nutation et l'aberration" << endl;
-    cout << "                         pour ramener les coordonnÃ©es Ã  l'Ã©cliptique et Ã  l'Ã©quinoxe de l'observation." << endl;
-    cout << "goto nom_objet :         Interroge la base NED pour trouver les coordonnÃ©es de l'objet puis le pointe." << endl;
-    cout << "                         exemples: goto m 31, goto messier 1, goto ngc 175, goto ic 434 etc..." << endl;
-    cout << "                         Dans ce mode, les coordonnÃ©es sont automatiquement rapportÃ©es" << endl;
-    cout << "                         Ã  l'Ã©cliptique et Ã  l'Ã©quinoxe de l'observation." << endl;
-    cout << "                         Aussi, merci de ne pas faire suivre les coordonnÃ©es de l'indication J2000."<< endl;
-    cout << "                         Goto sun permet de suivre le soleil." << endl;
-    cout << "search nom_objet :       Interroge le serveur NED sur internet et retourne les coordonnÃ©es de l'objet." << endl;
-    cout << "align ip :               Lance la procÃ©dure d'alignement de l'antenne d'adresse ip." << endl;
-    cout << "reset ip :               RÃ©initialise les paramÃštres d'alignement de l'antenne d'adresse ip." << endl;
-    cout << "send comm :              Envoie la commande 'comm' aux antennes." << endl;
-    cout << "                         exemples : send P, send A, send Gf1000f1000" << endl;
-    cout << "set transit on :         Active le mode de suivi transit." << endl;
-    cout << "set transit delay x :    Fixe la durÃ©e entre deux actualisations Ã  x seconde(s) dans le mode transit" << endl;
-    cout << "set tracking on :        Active le mode de suivi tracking." << endl;
-    cout << "set tracking delay x :   Fixe la durÃ©e entre deux actualisations Ã  x seconde(s) dans le mode tracking" << endl;
-    cout << "set alignment method x : Aligne les antennes en utilisant la mÃ©thode x (simple/affine/taki)" << endl;
-    cout << "status :                 Liste les paramÃštres du programme." << endl;
-    cout << "run filename :           ExÃ©cute le fichier de mouvements filename." << endl;
-    cout << "abort run :              Annule l'exÃ©cution du fichier de mouvements." << endl;
-    cout << "abort :                  Annule le mouvement en cours." << endl;
-    cout << "park :                   Place les antennes en position de repos." << endl;
-    cout << "updatetime :             Synchronise l'horloge du PC avec un serveur de temps." << endl;
-    cout << "exit :                   Sortir de BAOControl." << endl;
-
-    cout << endl;
-}
+    if (chaine.find("help") != string::npos)
+    {
+        CommandeOK = true;
+
+        cout << endl;
+
+        cout << "connect :                Se connecte au pilote indi_BAO." << endl;
+        cout << "disconnect :             Se dÃ©connecte du pilote indi_BAO." << endl;
+        cout << "goto AD Dec :            Pointe l'objet situÃ© aux coordonnÃ©es apparentes AD Dec." << endl;
+        cout << "                         AD doit Ãªtre au format xx:yy:zz et dec au format +/-xx:yy:zz" << endl;
+        cout << "                         exemple goto 12:10:05 -05:10:11 permettra de pointer l'objet" << endl;
+        cout << "                         situÃ© aux coordonnÃ©es AD=12h10m5s et dec=-5Â°10'11''" << endl;
+        cout << "goto AD Dec J2000 :      Pointe l'objet situÃ© aux coordonnÃ©es AD Dec dans le repÃšre J2000." << endl;
+        cout << "                         Avant de pointer l'objet, le programme calcule la prÃ©cession, la nutation et l'aberration" << endl;
+        cout << "                         pour ramener les coordonnÃ©es Ã  l'Ã©cliptique et Ã  l'Ã©quinoxe de l'observation." << endl;
+        cout << "goto nom_objet :         Interroge la base NED pour trouver les coordonnÃ©es de l'objet puis le pointe." << endl;
+        cout << "                         exemples: goto m 31, goto messier 1, goto ngc 175, goto ic 434 etc..." << endl;
+        cout << "                         Dans ce mode, les coordonnÃ©es sont automatiquement rapportÃ©es" << endl;
+        cout << "                         Ã  l'Ã©cliptique et Ã  l'Ã©quinoxe de l'observation." << endl;
+        cout << "                         Aussi, merci de ne pas faire suivre les coordonnÃ©es de l'indication J2000."<< endl;
+        cout << "                         Goto sun permet de suivre le soleil." << endl;
+        cout << "search nom_objet :       Interroge le serveur NED sur internet et retourne les coordonnÃ©es de l'objet." << endl;
+        cout << "align ip :               Lance la procÃ©dure d'alignement de l'antenne d'adresse ip." << endl;
+        cout << "reset ip :               RÃ©initialise les paramÃštres d'alignement de l'antenne d'adresse ip." << endl;
+        cout << "send comm :              Envoie la commande 'comm' aux antennes." << endl;
+        cout << "                         exemples : send P, send A, send Gf1000f1000" << endl;
+        cout << "set transit on :         Active le mode de suivi transit." << endl;
+        cout << "set transit delay x :    Fixe la durÃ©e entre deux actualisations Ã  x seconde(s) dans le mode transit" << endl;
+        cout << "set tracking on :        Active le mode de suivi tracking." << endl;
+        cout << "set tracking delay x :   Fixe la durÃ©e entre deux actualisations Ã  x seconde(s) dans le mode tracking" << endl;
+        cout << "set alignment method x : Aligne les antennes en utilisant la mÃ©thode x (simple/affine/taki)" << endl;
+        cout << "status :                 Liste les paramÃštres du programme." << endl;
+        cout << "run filename :           ExÃ©cute le fichier de mouvements filename." << endl;
+        cout << "abort run :              Annule l'exÃ©cution du fichier de mouvements." << endl;
+        cout << "abort :                  Annule le mouvement en cours." << endl;
+        cout << "park :                   Place les antennes en position de repos." << endl;
+        cout << "updatetime :             Synchronise l'horloge du PC avec un serveur de temps." << endl;
+        cout << "exit :                   Sortir de BAOControl." << endl;
+
+        cout << endl;
+    }
 
 // Bye !
 
-if (chaine.find("exit") != string::npos)
-{
-    CommandeOK = true;
-
-    if ( numAntennes > 0 ) Abort();
-
-    usleep(500000);
-
-    Connect(false);
-
-    NoExit = false;
-
-    //  pthread_join(th1 ,NULL);
-}
+    if (chaine.find("exit") != string::npos)
+    {
+        CommandeOK = true;
+
+        if ( numAntennes > 0 ) Abort();
+
+        usleep(500000);
+
+        Connect(false);
+
+        NoExit = false;
+
+        //  pthread_join(th1 ,NULL);
+    }
 
 // La commande n'a pas Ã©tÃ© identifiÃ©e !
 
-if (!CommandeOK) ErreurLog("Commande inconnue... Tapez help pour obtenir la liste des commandes disponibles.\n\n");
-
-return "";
+    if (!CommandeOK) ErreurLog("Commande inconnue... Tapez help pour obtenir la liste des commandes disponibles.\n\n");
+
+    return "";
 }
 
Index: /BAORadio/libindi/libindi/BAOcontrol/baocontrol.h
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/baocontrol.h	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/baocontrol.h	(revision 688)
@@ -27,9 +27,4 @@
 #include "../communs/astro.h"
 #include "../communs/alignement.h"
-
-
-
-
-
 
 
@@ -113,10 +108,9 @@
     void Dessiner();
 
-    //communications entre les antennes et le micro-contrÃŽleur
+    // communications entre les antennes et le micro-contrÃŽleur
 
     void LireReponse();
     bool VerifReponse(string reponseattendue, string *reponse);
     void UpdateTime();
-
 
     // commandes disponibles
@@ -213,5 +207,6 @@
     GC noir, vert, rouge, gris;			// couleurs utilisÃ©es dans la fenÃªtre graphique
     
-    
+  
+ 
 };
 
Index: /BAORadio/libindi/libindi/BAOcontrol/baoqt.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/baoqt.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/baoqt.cpp	(revision 688)
@@ -8,9 +8,18 @@
 BAOqt::BAOqt(QWidget *parent) :
     QDialog(parent),
+    Server2(STELLARIUM_PORT),
     ui(new Ui::BAOqt)
 {
     QPoint pointPos;
-    
-    RechercheOptimisation = false;
+
+    RechercheOptimisation = false;
+
+    //Stellarium
+
+    last_pos[0] = current_pos[0] = desired_pos[0] = 1.0;
+    last_pos[1] = current_pos[1] = desired_pos[1] = 0.0;
+    last_pos[2] = current_pos[2] = desired_pos[2] = 0.0;
+    next_pos_time = -0x8000000000000000LL;
+
 
     bao = new BAOcontrol();
@@ -19,4 +28,12 @@
 
     ui->setupUi(dialog);
+
+    for(int i=0; i<4; i++) {
+        leds.append(new QLedIndicator(this));
+    }
+
+    for(int i=0; i<leds.size(); i++) {
+        ui->layoutIndependent->addWidget(leds[i]);
+    }
 
     pointPos.setX(1);
@@ -27,4 +44,5 @@
     dialog->show();
 
+
     connect(ui->pushButtonPark, SIGNAL(clicked()), this, SLOT(on_pushButtonPark_clicked()));
 
@@ -68,8 +86,26 @@
 
     connect(ui->pushButtonScript, SIGNAL(clicked()), this, SLOT(on_pushButtonScript_clicked()));
-    
+
     connect(ui->pushButtonCalculMatrices, SIGNAL(clicked()), this, SLOT(on_pushButtonCalculMatrices_clicked()));
-    
+
     connect(ui->pushButtonOptGeom, SIGNAL(clicked()), this, SLOT(on_pushButtonOptGeom_clicked()));
+
+    connect(ui->pushButtonRetryGoto, SIGNAL(clicked()), this, SLOT(on_pushButtonRetryGoto_clicked()));
+
+
+
+#ifdef JOYSTICK
+    joystick = new Joystick();
+
+    if (joystick) joystick->init();
+#endif
+
+    ui->lineEditIP->setText("127.0.0.1");
+
+    // On laisse le temps au serveur de Stellarium de dÃ©marrer dans de bonnes conditions
+
+    sleep(1);
+
+    //Timer
 
     DisableButtons(true);
@@ -83,19 +119,76 @@
 
     timer->start(100);
-
-    ui->lineEditIP->setText("127.0.0.1");
 }
 
 BAOqt::~BAOqt()
 {
+    close();
+
+    timer->stop();
+
+    delete timer;
+
     delete ui;
     delete dialog;
     delete bao;
 
-    delete timer;
+#ifdef JOYSTICK
+    if (joystick)
+    {
+        joystick->close();
+
+        delete joystick;
+    }
+#endif
+
+
+}
+
+
+void BAOqt::step(long long int timeout_micros)
+{
+    if (last_pos[0]!=current_pos[0] || last_pos[1]!=current_pos[1] || last_pos[2]!=current_pos[2])
+    {
+        current_pos[0] = desired_pos[0];
+        current_pos[1] = desired_pos[1];
+        current_pos[2] = desired_pos[2];
+
+        const double ra = atan2(current_pos[1],current_pos[0]);
+        const double dec = atan2(current_pos[2],
+                                 sqrt(current_pos[0]*current_pos[0]+current_pos[1]*current_pos[1]));
+
+        // On passe les coordonnÃ©es aux antennes
+
+        ui->lineEditEtoileSelectionneeAD->setText(QString(DHMS(VerifAngle(ra)*180.0/M_PI, true).c_str()));
+        ui->lineEditEtoileSelectionneeDec->setText(QString(DHMS(dec*180.0/M_PI, false).c_str()));
+
+        bao->Goto(DHMS(VerifAngle(ra)*180.0/M_PI, true), DHMS(dec*180.0/M_PI, false), bao->Transit, false);
+
+        last_pos[0] = current_pos[0];
+        last_pos[1] = current_pos[1];
+        last_pos[2] = current_pos[2];
+
+    }
+
+    Server2::step(timeout_micros);
+}
+
+void BAOqt::gotoReceived(unsigned int ra_int, int dec_int)
+{
+    const double ra = ra_int*(M_PI/(unsigned int)0x80000000);
+    const double dec = dec_int*(M_PI/(unsigned int)0x80000000);
+    const double cdec = cos(dec);
+
+    desired_pos[0] = cos(ra)*cdec;
+    desired_pos[1] = sin(ra)*cdec;
+    desired_pos[2] = sin(dec);
+
+    last_pos[0] = -1000000L;
 }
 
 void BAOqt::DisableButtons(bool b)
 {
+    RechercheOptimisation = false;
+
     ui->pushButtonChoisir->setDisabled(b);
 
@@ -113,7 +206,7 @@
 
     ui->pushButton1pt->setDisabled(b);
-    
+
     ui->pushButtonCalculMatrices->setDisabled(b);
-    
+
     ui->pushButtonOptGeom->setDisabled(b);
 }
@@ -121,6 +214,9 @@
 void BAOqt::updateCaption()
 {
+    static int StartStellariumServer = 0;
+    static int joy = 0;
+
     if (RechercheOptimisation) return;
-    
+
     bao->thread_process();
 
@@ -152,8 +248,84 @@
         }
     }
+
+    // affichage des cercles d'Ã©tat des antennes
+    // vert = l'antenne fonctionne
+    // rouge = problÃšme dÃ©tectÃ© sur l'antenne
+    // gris = antenne non connectÃ©e
+
+    for (int i=0; i <4; i++)
+    {
+        switch (bao->Antennes[i].ok)
+        {
+        case 1 :
+            leds[i]->red = false;
+            leds[i]->setChecked( true );
+            break;
+        case 2 :
+
+            leds[i]->red = true;
+            leds[i]->setChecked( true );
+
+            break;
+        default:
+            leds[i]->red = false;
+            leds[i]->setChecked( false );
+            break;
+        }
+    }
+
+    dialog->repaint();
+
+#ifdef JOYSTICK
+    joy++;
+
+    int max = 2000;
+
+    if (joy>1)
+    {
+        joy = 0;
+
+        JoystickStatus js;
+
+        if (joystick)
+        {
+            if (joystick->GetStatus( js))
+            {
+                if (js.x < -max) on_pushButtonAzM_clicked();
+                if (js.x > max)  on_pushButtonAzP_clicked();
+                if (js.y < -max) on_pushButtonHaP_clicked();
+                if (js.y > max)  on_pushButtonHaM_clicked();
+                if (js.button1)
+                {
+                    on_pushButton1x_clicked();
+                    ui->pushButton1x->setDown(true);
+                    ui->pushButton10x->setDown(false);
+                }
+                if (js.button2)
+                {
+                    on_pushButton10x_clicked();
+                    ui->pushButton1x->setDown(false);
+                    ui->pushButton10x->setDown(true);
+                }
+            }
+        }
+    }
+#endif
+
+
+    if (StartStellariumServer < 10)
+    {
+        StartStellariumServer++;
+    }
+    else
+    {
+        step(1000);
+    }
 }
 
 void BAOqt::on_pushButtonPark_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->DecodageEntreesUtilisateur("park");
 }
@@ -161,4 +333,6 @@
 void BAOqt::on_pushButtonAbort_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->DecodageEntreesUtilisateur("abort");
 }
@@ -166,4 +340,6 @@
 void BAOqt::on_pushButtonCommande_clicked()
 {
+    RechercheOptimisation = false;
+
     QString chaine = ui->lineEditCommande->text();
 
@@ -173,4 +349,6 @@
 void BAOqt::on_pushButtonAzM_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->AlignementDelta("-1", true);
 }
@@ -178,4 +356,6 @@
 void BAOqt::on_pushButtonAzP_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->AlignementDelta("1", true);
 }
@@ -183,4 +363,6 @@
 void BAOqt::on_pushButtonHaM_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->AlignementDelta("-1", false);
 }
@@ -188,4 +370,6 @@
 void BAOqt::on_pushButtonHaP_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->AlignementDelta("1", false);
 }
@@ -193,4 +377,6 @@
 void BAOqt::on_pushButton1x_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->VitesseAlignement(1);
 
@@ -201,4 +387,6 @@
 void BAOqt::on_pushButton10x_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->VitesseAlignement(10);
 
@@ -209,4 +397,6 @@
 void BAOqt::on_pushButtonIP_clicked()
 {
+    RechercheOptimisation = false;
+
     QString chaine = ui->lineEditIP->text();
 
@@ -225,4 +415,6 @@
 void BAOqt::on_pushButtonChoisir_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->AlignementAntenneIP(ui->lineEditIP->text().toStdString());
 
@@ -284,4 +476,6 @@
 void BAOqt::on_pushButtonSelectionner_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->Goto( ui->lineEditEtoileSelectionneeAD->text().toStdString(), ui->lineEditEtoileSelectionneeDec->text().toStdString(), bao->Transit, false);
 }
@@ -289,4 +483,6 @@
 void BAOqt::on_pushButtonValider_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->ValidationAlignement();
 }
@@ -294,4 +490,6 @@
 void BAOqt::on_pushButtonSauvegarder_clicked()
 {
+    RechercheOptimisation = false;
+
     bao->SauvegardeAlignement();
 }
@@ -300,4 +498,6 @@
 {
     QMessageBox::StandardButton reply;
+
+    RechercheOptimisation = false;
 
     reply = QMessageBox::question(this, tr("Reset alignement"),
@@ -311,4 +511,6 @@
 {
     Liste liste;
+
+    RechercheOptimisation = false;
 
     stringstream os;
@@ -346,4 +548,6 @@
     Map map1;
 
+    RechercheOptimisation = false;
+
     string str = bao->DecodageEntreesUtilisateur("send C");
 
@@ -358,4 +562,6 @@
 {
     static int etape = 1;
+
+    RechercheOptimisation = false;
 
     switch (etape)
@@ -429,9 +635,9 @@
                 dx = atol( str2.substr(0, pos).c_str() );
 
-                x += dx;
+                x -= dx;
 
                 dy = atol( str2.substr(pos + 1).c_str() );
 
-                y += dy;
+                y -= dy;
 
                 if ( x < 0 ) {
@@ -447,28 +653,32 @@
                 char chaine[100];
 
-                sprintf(chaine, "send g%c%04d%c%04d", a1, x, a2, y);
+                sprintf(chaine, "send g%c%04df0000", a1, x);
 
                 str = bao->DecodageEntreesUtilisateur(string(chaine));
 
+                QMessageBox::information(this, tr("Alignement 1pt de l antenne"), tr("Attendez la fin du mouvement avant de cliquer sur OK."));
+
+
+                sprintf(chaine, "send gf0000%c%04d", a2, y);
+
+                str = bao->DecodageEntreesUtilisateur(string(chaine));
                 QMessageBox::information(this, tr("Alignement 1pt de l antenne"), tr("Appuyez sur les deux boutons places dans la boite de l'antenne."));
-		
-		 str = bao->DecodageEntreesUtilisateur("send p");
-		
-         	QMessageBox::StandardButton reply;
-		
-		reply = QMessageBox::question(this, tr("Alignement 1pt de l antenne"),
-                                  "Voulez-vous reinitialiser les codeurs de l'antenne en envoyant la c ommande Park ?",
-                                  QMessageBox::Yes | QMessageBox::No );
-
-               if (reply == QMessageBox::Yes)
-	       {
-
-                str = bao->DecodageEntreesUtilisateur("send z");
-
-                sleep(1);
-
-                str = bao->DecodageEntreesUtilisateur("send p");
-	       }
-	       QMessageBox::information(this, tr("Alignement 1pt de l antenne"), tr("Fin de la procedure."));
+
+                QMessageBox::StandardButton reply;
+
+                reply = QMessageBox::question(this, tr("Alignement 1pt de l antenne"),
+                                              "Voulez-vous reinitialiser les codeurs de l'antenne en envoyant la c ommande Park ?",
+                                              QMessageBox::Yes | QMessageBox::No );
+
+                if (reply == QMessageBox::Yes)
+                {
+
+                    str = bao->DecodageEntreesUtilisateur("send z");
+
+                    sleep(1);
+
+                    str = bao->DecodageEntreesUtilisateur("send p");
+                }
+                QMessageBox::information(this, tr("Alignement 1pt de l antenne"), tr("Fin de la procedure."));
             }
         }
@@ -482,4 +692,7 @@
 {
     bool ok;
+
+    RechercheOptimisation = false;
+
     QString text = QInputDialog::getText(this, tr("Goto"),
                                          tr("Entrez le nom ou les coordonnees de l'objet a suivre"), QLineEdit::Normal,
@@ -492,4 +705,6 @@
 void BAOqt::on_pushButtonTo00_clicked()
 {
+    RechercheOptimisation = false;
+
     string str = bao->DecodageEntreesUtilisateur("send X");
 
@@ -537,5 +752,7 @@
 void BAOqt::on_pushButtonCalculMatrices_clicked()
 {
-   bao->DecodageEntreesUtilisateur("send m");
+    RechercheOptimisation = false;
+
+    bao->DecodageEntreesUtilisateur("send m");
 }
 
@@ -547,6 +764,15 @@
 void BAOqt::on_pushButtonOptGeom_clicked()
 {
-  RechercheOptimisation=true;
-  
+    RechercheOptimisation = true;
+
     bao->DecodageEntreesUtilisateur("send o");
 }
+
+void BAOqt::on_pushButtonRetryGoto_clicked()
+{
+    RechercheOptimisation = true;
+
+    RechercheOptimisation = false;
+
+    bao->Goto( ui->lineEditEtoileSelectionneeAD->text().toStdString(), ui->lineEditEtoileSelectionneeDec->text().toStdString(), bao->Transit, false);
+}
Index: /BAORadio/libindi/libindi/BAOcontrol/baoqt.h
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/baoqt.h	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/baoqt.h	(revision 688)
@@ -15,9 +15,17 @@
 #include "baocontrol.h"
 
+#include "qledindicator.h"
+
+#include "Joystick.h"
+
+#include "Server.hpp"
+
+#include "../communs/astro.h"
+
 namespace Ui {
-    class BAOqt;
+class BAOqt;
 }
 
-class BAOqt : public QDialog
+class BAOqt : public QDialog, public Server2, public Astro
 {
     Q_OBJECT
@@ -26,44 +34,59 @@
     explicit BAOqt(QWidget *parent = 0);
     ~BAOqt();
-    
+
     void DisableButtons(bool b);
-    
+
+    void step(long long int timeout_micros);
+
+    QList<QLedIndicator*> leds;
+    QButtonGroup   *group;
+
     QDialog *dialog;
-    
+
     BAOcontrol *bao;
-       
+
     QTimer *timer;
-    
+
     bool RechercheOptimisation;
 
-        
+    Joystick *joystick;
+
+
 private slots :
-   void on_pushButtonPark_clicked();
-   void on_pushButtonCommande_clicked();
-   void on_pushButtonAbort_clicked();
-   void on_pushButtonAzM_clicked();
-   void on_pushButtonAzP_clicked();
-   void on_pushButtonHaM_clicked();
-   void on_pushButtonHaP_clicked();
-   void on_pushButton1x_clicked();
-   void on_pushButton10x_clicked();
-   void on_pushButtonIP_clicked();
-   void on_pushButtonChoisir_clicked();
-   void on_pushButtonSelectionner_clicked();
-   void on_pushButtonValider_clicked();
-   void on_pushButtonSauvegarder_clicked();
-   void on_pushButtonReset_clicked();
-   void on_pushButtonListe_clicked();
-   void on_pushButtonMap_clicked();
-   void on_pushButton1pt_clicked();
-   void on_pushButtonGoto_clicked();
-   void on_pushButtonTo00_clicked();
-   void on_pushButtonScript_clicked();
-   void on_pushButtonCalculMatrices_clicked();
-   void on_pushButtonOptGeom_clicked();
-   void updateCaption();
+    void on_pushButtonPark_clicked();
+    void on_pushButtonCommande_clicked();
+    void on_pushButtonAbort_clicked();
+    void on_pushButtonAzM_clicked();
+    void on_pushButtonAzP_clicked();
+    void on_pushButtonHaM_clicked();
+    void on_pushButtonHaP_clicked();
+    void on_pushButton1x_clicked();
+    void on_pushButton10x_clicked();
+    void on_pushButtonIP_clicked();
+    void on_pushButtonChoisir_clicked();
+    void on_pushButtonSelectionner_clicked();
+    void on_pushButtonValider_clicked();
+    void on_pushButtonSauvegarder_clicked();
+    void on_pushButtonReset_clicked();
+    void on_pushButtonListe_clicked();
+    void on_pushButtonMap_clicked();
+    void on_pushButton1pt_clicked();
+    void on_pushButtonGoto_clicked();
+    void on_pushButtonTo00_clicked();
+    void on_pushButtonScript_clicked();
+    void on_pushButtonCalculMatrices_clicked();
+    void on_pushButtonOptGeom_clicked();
+    void on_pushButtonRetryGoto_clicked();
+    void updateCaption();
 
 private:
     Ui::BAOqt *ui;
+
+private:
+    void gotoReceived(unsigned int ra_int,int dec_int);
+    double current_pos[3];
+    double desired_pos[3];
+    double last_pos[3];
+    long long int next_pos_time;
 };
 
Index: /BAORadio/libindi/libindi/BAOcontrol/baoqt.ui
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/baoqt.ui	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/baoqt.ui	(revision 688)
@@ -8,5 +8,5 @@
     <y>0</y>
     <width>630</width>
-    <height>396</height>
+    <height>403</height>
    </rect>
   </property>
@@ -21,5 +21,5 @@
     <rect>
      <x>230</x>
-     <y>145</y>
+     <y>155</y>
      <width>151</width>
      <height>27</height>
@@ -34,5 +34,5 @@
     <rect>
      <x>450</x>
-     <y>180</y>
+     <y>190</y>
      <width>161</width>
      <height>191</height>
@@ -120,4 +120,17 @@
     </property>
    </widget>
+   <widget class="QPushButton" name="pushButtonRetryGoto">
+    <property name="geometry">
+     <rect>
+      <x>65</x>
+      <y>76</y>
+      <width>31</width>
+      <height>27</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>R</string>
+    </property>
+   </widget>
   </widget>
   <widget class="QLineEdit" name="lineEditCommande">
@@ -125,5 +138,5 @@
     <rect>
      <x>20</x>
-     <y>147</y>
+     <y>157</y>
      <width>201</width>
      <height>24</height>
@@ -135,5 +148,5 @@
     <rect>
      <x>20</x>
-     <y>180</y>
+     <y>190</y>
      <width>101</width>
      <height>191</height>
@@ -238,5 +251,5 @@
     <rect>
      <x>140</x>
-     <y>180</y>
+     <y>190</y>
      <width>291</width>
      <height>191</height>
@@ -424,5 +437,5 @@
     <rect>
      <x>30</x>
-     <y>370</y>
+     <y>380</y>
      <width>161</width>
      <height>24</height>
@@ -446,7 +459,7 @@
     <rect>
      <x>541</x>
-     <y>49</y>
+     <y>82</y>
      <width>80</width>
-     <height>71</height>
+     <height>70</height>
     </rect>
    </property>
@@ -459,5 +472,5 @@
     <rect>
      <x>20</x>
-     <y>28</y>
+     <y>38</y>
      <width>511</width>
      <height>115</height>
@@ -467,4 +480,26 @@
     <string notr="true">font: 7pt &quot;Sans Serif&quot;;</string>
    </property>
+  </widget>
+  <widget class="QGroupBox" name="groupIndependent">
+   <property name="geometry">
+    <rect>
+     <x>536</x>
+     <y>10</y>
+     <width>92</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="title">
+    <string>Status</string>
+   </property>
+   <layout class="QGridLayout" name="gridLayout">
+    <item row="0" column="0">
+     <layout class="QHBoxLayout" name="layoutIndependent">
+      <property name="spacing">
+       <number>4</number>
+      </property>
+     </layout>
+    </item>
+   </layout>
   </widget>
  </widget>
Index: /BAORadio/libindi/libindi/BAOcontrol/liste.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/liste.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/liste.cpp	(revision 688)
@@ -27,4 +27,6 @@
   
     delete ui;
+    
+    close();
 }
 
Index: /BAORadio/libindi/libindi/BAOcontrol/map.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/map.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/map.cpp	(revision 688)
@@ -16,4 +16,6 @@
 {
     delete ui;
+    
+    close();
 }
 
Index: /BAORadio/libindi/libindi/BAOcontrol/selectstars.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOcontrol/selectstars.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/BAOcontrol/selectstars.cpp	(revision 688)
@@ -18,4 +18,6 @@
 {
     delete ui;
+    
+    close();
 }
 
Index: /BAORadio/libindi/libindi/Makefile
===================================================================
--- /BAORadio/libindi/libindi/Makefile	(revision 687)
+++ /BAORadio/libindi/libindi/Makefile	(revision 688)
@@ -1,5 +1,5 @@
 #############################################################################
 # Makefile for building: libindi
-# Generated by qmake (2.01a) (Qt 4.7.4) on: mar. mai 15 01:36:10 2012
+# Generated by qmake (2.01a) (Qt 4.7.4) on: sam. mai 26 03:17:23 2012
 # Project:  libindi.pro
 # Template: app
@@ -14,5 +14,5 @@
 CFLAGS        = -m64 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
 CXXFLAGS      = -m64 -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
-INCPATH       = -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -Ilibs -IBAOControl -Icommuns -Ilibs/indibase -Iexamples -Idrivers/ccd -Idrivers/filter_wheel -Idrivers/focuser -Idrivers/telescope -Idrivers/video -Ilibs/webcam -IIndi_Stellarium/src -I. -I.
+INCPATH       = -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -Ilibs -IBAOcontrol -Icommuns -Ilibs/indibase -Iexamples -Idrivers/ccd -Idrivers/filter_wheel -Idrivers/focuser -Idrivers/telescope -Idrivers/video -Ilibs/webcam -IIndi_Stellarium/src -I. -I.
 LINK          = g++
 LFLAGS        = -m64 -Wl,-O1
@@ -50,7 +50,17 @@
 		indidrivermain.c \
 		indiserver.c \
-		BAOControl/baocontrol.cpp \
-		BAOControl/baoqt.cpp \
-		BAOControl/main.cpp \
+		BAOcontrol/baocontrol.cpp \
+		BAOcontrol/baoqt.cpp \
+		BAOcontrol/Connection.cpp \
+		BAOcontrol/Joystick.cpp \
+		BAOcontrol/liste.cpp \
+		BAOcontrol/Listener.cpp \
+		BAOcontrol/LogFile.cpp \
+		BAOcontrol/main.cpp \
+		BAOcontrol/map.cpp \
+		BAOcontrol/qledindicator.cpp \
+		BAOcontrol/selectstars.cpp \
+		BAOcontrol/Server.cpp \
+		BAOcontrol/Socket2.cpp \
 		BAOTest/BAOtest_main.cpp \
 		communs/alignement.cpp \
@@ -142,5 +152,9 @@
 		libs/webcam/v4l2_base.cpp \
 		libindi_build/CMakeFiles/CompilerIdC/CMakeCCompilerId.c \
-		libindi_build/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp moc_baoqt.cpp
+		libindi_build/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp moc_baoqt.cpp \
+		moc_liste.cpp \
+		moc_map.cpp \
+		moc_qledindicator.cpp \
+		moc_selectstars.cpp
 OBJECTS       = base64.o \
 		eventloop.o \
@@ -151,5 +165,15 @@
 		baocontrol.o \
 		baoqt.o \
+		Connection.o \
+		Joystick.o \
+		liste.o \
+		Listener.o \
+		LogFile.o \
 		main.o \
+		map.o \
+		qledindicator.o \
+		selectstars.o \
+		Server.o \
+		Socket2.o \
 		BAOtest_main.o \
 		alignement.o \
@@ -242,5 +266,9 @@
 		CMakeCCompilerId.o \
 		CMakeCXXCompilerId.o \
-		moc_baoqt.o
+		moc_baoqt.o \
+		moc_liste.o \
+		moc_map.o \
+		moc_qledindicator.o \
+		moc_selectstars.o
 DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
 		/usr/share/qt4/mkspecs/common/unix.conf \
@@ -292,5 +320,5 @@
 all: Makefile $(TARGET)
 
-$(TARGET): ui_baoqt.h $(OBJECTS)  
+$(TARGET): ui_baoqt.h ui_liste.h ui_map.h ui_selectstars.h $(OBJECTS)  
 	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
 
@@ -345,5 +373,5 @@
 dist: 
 	@$(CHK_DIR_EXISTS) .tmp/libindi1.0.0 || $(MKDIR) .tmp/libindi1.0.0 
-	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/libindi1.0.0/ && $(COPY_FILE) --parents base64.h config.h eventloop.h fq.h indiapi.h indidevapi.h indidriver.h BAOControl/baocontrol.h BAOControl/baoqt.h communs/alignement.h communs/alt2motor.h communs/astro.h communs/ClientSocket.h communs/const.h communs/exception.h communs/filetools.h communs/logs.h communs/ServerSocket.h communs/Socket.h communs/SocketException.h examples/tutorial_client.h examples/tutorial_four.h libindi_build/config.h libs/indicom.h libs/lilxml.h drivers/ccd/ccd_simulator.h drivers/filter_wheel/filter_simulator.h drivers/focuser/robofocus.h drivers/focuser/robofocusdriver.h drivers/focuser/tcfs.h drivers/telescope/BAO.h drivers/telescope/celestrongps.h drivers/telescope/celestronprotocol.h drivers/telescope/ieq45.h drivers/telescope/ieq45driver.h drivers/telescope/lx200_16.h drivers/telescope/lx200ap.h drivers/telescope/lx200apdriver.h drivers/telescope/lx200aplib.h drivers/telescope/lx200autostar.h drivers/telescope/lx200basic.h drivers/telescope/lx200classic.h drivers/telescope/lx200driver.h drivers/telescope/lx200fs2.h drivers/telescope/lx200generic.h drivers/telescope/lx200gps.h drivers/telescope/magellan1.h drivers/telescope/magellandriver.h drivers/telescope/orionatlas.h drivers/telescope/synscanmount.h drivers/telescope/telescope_simulator.h drivers/telescope/temmadriver.h drivers/video/stvdriver.h drivers/video/v4ldriver.h drivers/video/v4lphilips.h Indi_Stellarium/src/Connection.hpp Indi_Stellarium/src/Listener.hpp Indi_Stellarium/src/LogFile.hpp Indi_Stellarium/src/Server.hpp Indi_Stellarium/src/ServerBAO.hpp Indi_Stellarium/src/Socket2.hpp libs/indibase/baseclient.h libs/indibase/basedriver.h libs/indibase/defaultdriver.h libs/indibase/indibase.h libs/indibase/indiccd.h libs/indibase/indidevice.h libs/indibase/indifilterinterface.h libs/indibase/indifilterwheel.h libs/indibase/indifocuser.h libs/indibase/indiguiderinterface.h libs/indibase/inditelescope.h libs/indibase/indiusbdevice.h libs/webcam/ccvt.h libs/webcam/ccvt_types.h libs/webcam/port.h libs/webcam/PPort.h libs/webcam/pwc-ioctl.h libs/webcam/v4l1_base.h libs/webcam/v4l1_pwc.h libs/webcam/v4l2_base.h libs/webcam/vcvt.h libs/webcam/videodev.h libs/webcam/videodev2.h .tmp/libindi1.0.0/ && $(COPY_FILE) --parents base64.c eventloop.c fq.c indidriver.c indidrivermain.c indiserver.c BAOControl/baocontrol.cpp BAOControl/baoqt.cpp BAOControl/main.cpp BAOTest/BAOtest_main.cpp communs/alignement.cpp communs/astro.cpp communs/ClientSocket.cpp communs/exception.cpp communs/filetools.cpp communs/logs.cpp communs/ServerSocket.cpp communs/Socket.cpp examples/tutorial_ccdpreview.c examples/tutorial_client.cpp examples/tutorial_dome.c examples/tutorial_four.cpp examples/tutorial_one.c examples/tutorial_rain.c examples/tutorial_three.c examples/tutorial_two.c libs/indicom.c libs/lilxml.c tools/compiler.c tools/evalINDI.c tools/getINDIproperty.c tools/setINDIproperty.c drivers/ccd/ccd_simulator.cpp drivers/ccd/fli_ccd.c drivers/filter_wheel/filter_simulator.cpp drivers/filter_wheel/fli_wheel.c drivers/filter_wheel/trutech_wheel.c drivers/focuser/fli_pdf.c drivers/focuser/robofocus.c drivers/focuser/robofocus.cpp drivers/focuser/robofocusdriver.c drivers/focuser/tcfs.cpp drivers/telescope/BAO.cpp drivers/telescope/celestrongps.cpp drivers/telescope/celestronprotocol.c drivers/telescope/ieq45.cpp drivers/telescope/ieq45driver.c drivers/telescope/intelliscope.c drivers/telescope/lx200_16.cpp drivers/telescope/lx200ap.cpp drivers/telescope/lx200apdriver.c drivers/telescope/lx200autostar.cpp drivers/telescope/lx200basic.cpp drivers/telescope/lx200classic.cpp drivers/telescope/lx200driver.c drivers/telescope/lx200fs2.cpp drivers/telescope/lx200generic.cpp drivers/telescope/lx200gps.cpp drivers/telescope/magellan1.cpp drivers/telescope/magellandriver.c drivers/telescope/orionatlas.cpp drivers/telescope/skycommander.c drivers/telescope/synscanmount.cpp drivers/telescope/telescope_simulator.cpp drivers/telescope/temmadriver.c drivers/video/indi_lpi.cpp drivers/video/indi_philips.cpp drivers/video/indi_v4l.cpp drivers/video/stv.c drivers/video/stvdriver.c drivers/video/v4ldriver.cpp drivers/video/v4lphilips.cpp Indi_Stellarium/src/Connection.cpp Indi_Stellarium/src/Listener.cpp Indi_Stellarium/src/LogFile.cpp Indi_Stellarium/src/MainBAO.cpp Indi_Stellarium/src/Server.cpp Indi_Stellarium/src/ServerBAO.cpp Indi_Stellarium/src/Socket2.cpp libs/indibase/baseclient.cpp libs/indibase/basedriver.cpp libs/indibase/defaultdriver.cpp libs/indibase/indiccd.cpp libs/indibase/indidevice.cpp libs/indibase/indifilterinterface.cpp libs/indibase/indifilterwheel.cpp libs/indibase/indifocuser.cpp libs/indibase/indiguiderinterface.cpp libs/indibase/inditelescope.cpp libs/indibase/indiusbdevice.cpp libs/webcam/ccvt_c2.c libs/webcam/ccvt_misc.c libs/webcam/port.cpp libs/webcam/PPort.cpp libs/webcam/v4l1_base.cpp libs/webcam/v4l1_pwc.cpp libs/webcam/v4l2_base.cpp libindi_build/CMakeFiles/CompilerIdC/CMakeCCompilerId.c libindi_build/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp .tmp/libindi1.0.0/ && $(COPY_FILE) --parents BAOControl/baoqt.ui .tmp/libindi1.0.0/ && (cd `dirname .tmp/libindi1.0.0` && $(TAR) libindi1.0.0.tar libindi1.0.0 && $(COMPRESS) libindi1.0.0.tar) && $(MOVE) `dirname .tmp/libindi1.0.0`/libindi1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/libindi1.0.0
+	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/libindi1.0.0/ && $(COPY_FILE) --parents base64.h config.h eventloop.h fq.h indiapi.h indidevapi.h indidriver.h BAOcontrol/baocontrol.h BAOcontrol/baoqt.h BAOcontrol/Connection.hpp BAOcontrol/Joystick.h BAOcontrol/liste.h BAOcontrol/Listener.hpp BAOcontrol/LogFile.hpp BAOcontrol/map.h BAOcontrol/qledindicator.h BAOcontrol/selectstars.h BAOcontrol/Server.hpp BAOcontrol/Socket2.hpp communs/alignement.h communs/astro.h communs/ClientSocket.h communs/const.h communs/exception.h communs/filetools.h communs/logs.h communs/ServerSocket.h communs/Socket.h communs/SocketException.h examples/tutorial_client.h examples/tutorial_four.h libindi_build/config.h libs/indicom.h libs/lilxml.h drivers/ccd/ccd_simulator.h drivers/filter_wheel/filter_simulator.h drivers/focuser/robofocus.h drivers/focuser/robofocusdriver.h drivers/focuser/tcfs.h drivers/telescope/BAO.h drivers/telescope/celestrongps.h drivers/telescope/celestronprotocol.h drivers/telescope/ieq45.h drivers/telescope/ieq45driver.h drivers/telescope/lx200_16.h drivers/telescope/lx200ap.h drivers/telescope/lx200apdriver.h drivers/telescope/lx200aplib.h drivers/telescope/lx200autostar.h drivers/telescope/lx200basic.h drivers/telescope/lx200classic.h drivers/telescope/lx200driver.h drivers/telescope/lx200fs2.h drivers/telescope/lx200generic.h drivers/telescope/lx200gps.h drivers/telescope/magellan1.h drivers/telescope/magellandriver.h drivers/telescope/orionatlas.h drivers/telescope/synscanmount.h drivers/telescope/telescope_simulator.h drivers/telescope/temmadriver.h drivers/video/stvdriver.h drivers/video/v4ldriver.h drivers/video/v4lphilips.h Indi_Stellarium/src/Connection.hpp Indi_Stellarium/src/Listener.hpp Indi_Stellarium/src/LogFile.hpp Indi_Stellarium/src/Server.hpp Indi_Stellarium/src/ServerBAO.hpp Indi_Stellarium/src/Socket2.hpp libs/indibase/baseclient.h libs/indibase/basedriver.h libs/indibase/defaultdriver.h libs/indibase/indibase.h libs/indibase/indiccd.h libs/indibase/indidevice.h libs/indibase/indifilterinterface.h libs/indibase/indifilterwheel.h libs/indibase/indifocuser.h libs/indibase/indiguiderinterface.h libs/indibase/inditelescope.h libs/indibase/indiusbdevice.h libs/webcam/ccvt.h libs/webcam/ccvt_types.h libs/webcam/port.h libs/webcam/PPort.h libs/webcam/pwc-ioctl.h libs/webcam/v4l1_base.h libs/webcam/v4l1_pwc.h libs/webcam/v4l2_base.h libs/webcam/vcvt.h libs/webcam/videodev.h libs/webcam/videodev2.h .tmp/libindi1.0.0/ && $(COPY_FILE) --parents base64.c eventloop.c fq.c indidriver.c indidrivermain.c indiserver.c BAOcontrol/baocontrol.cpp BAOcontrol/baoqt.cpp BAOcontrol/Connection.cpp BAOcontrol/Joystick.cpp BAOcontrol/liste.cpp BAOcontrol/Listener.cpp BAOcontrol/LogFile.cpp BAOcontrol/main.cpp BAOcontrol/map.cpp BAOcontrol/qledindicator.cpp BAOcontrol/selectstars.cpp BAOcontrol/Server.cpp BAOcontrol/Socket2.cpp BAOTest/BAOtest_main.cpp communs/alignement.cpp communs/astro.cpp communs/ClientSocket.cpp communs/exception.cpp communs/filetools.cpp communs/logs.cpp communs/ServerSocket.cpp communs/Socket.cpp examples/tutorial_ccdpreview.c examples/tutorial_client.cpp examples/tutorial_dome.c examples/tutorial_four.cpp examples/tutorial_one.c examples/tutorial_rain.c examples/tutorial_three.c examples/tutorial_two.c libs/indicom.c libs/lilxml.c tools/compiler.c tools/evalINDI.c tools/getINDIproperty.c tools/setINDIproperty.c drivers/ccd/ccd_simulator.cpp drivers/ccd/fli_ccd.c drivers/filter_wheel/filter_simulator.cpp drivers/filter_wheel/fli_wheel.c drivers/filter_wheel/trutech_wheel.c drivers/focuser/fli_pdf.c drivers/focuser/robofocus.c drivers/focuser/robofocus.cpp drivers/focuser/robofocusdriver.c drivers/focuser/tcfs.cpp drivers/telescope/BAO.cpp drivers/telescope/celestrongps.cpp drivers/telescope/celestronprotocol.c drivers/telescope/ieq45.cpp drivers/telescope/ieq45driver.c drivers/telescope/intelliscope.c drivers/telescope/lx200_16.cpp drivers/telescope/lx200ap.cpp drivers/telescope/lx200apdriver.c drivers/telescope/lx200autostar.cpp drivers/telescope/lx200basic.cpp drivers/telescope/lx200classic.cpp drivers/telescope/lx200driver.c drivers/telescope/lx200fs2.cpp drivers/telescope/lx200generic.cpp drivers/telescope/lx200gps.cpp drivers/telescope/magellan1.cpp drivers/telescope/magellandriver.c drivers/telescope/orionatlas.cpp drivers/telescope/skycommander.c drivers/telescope/synscanmount.cpp drivers/telescope/telescope_simulator.cpp drivers/telescope/temmadriver.c drivers/video/indi_lpi.cpp drivers/video/indi_philips.cpp drivers/video/indi_v4l.cpp drivers/video/stv.c drivers/video/stvdriver.c drivers/video/v4ldriver.cpp drivers/video/v4lphilips.cpp Indi_Stellarium/src/Connection.cpp Indi_Stellarium/src/Listener.cpp Indi_Stellarium/src/LogFile.cpp Indi_Stellarium/src/MainBAO.cpp Indi_Stellarium/src/Server.cpp Indi_Stellarium/src/ServerBAO.cpp Indi_Stellarium/src/Socket2.cpp libs/indibase/baseclient.cpp libs/indibase/basedriver.cpp libs/indibase/defaultdriver.cpp libs/indibase/indiccd.cpp libs/indibase/indidevice.cpp libs/indibase/indifilterinterface.cpp libs/indibase/indifilterwheel.cpp libs/indibase/indifocuser.cpp libs/indibase/indiguiderinterface.cpp libs/indibase/inditelescope.cpp libs/indibase/indiusbdevice.cpp libs/webcam/ccvt_c2.c libs/webcam/ccvt_misc.c libs/webcam/port.cpp libs/webcam/PPort.cpp libs/webcam/v4l1_base.cpp libs/webcam/v4l1_pwc.cpp libs/webcam/v4l2_base.cpp libindi_build/CMakeFiles/CompilerIdC/CMakeCCompilerId.c libindi_build/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp .tmp/libindi1.0.0/ && $(COPY_FILE) --parents BAOcontrol/baoqt.ui BAOcontrol/liste.ui BAOcontrol/map.ui BAOcontrol/selectstars.ui .tmp/libindi1.0.0/ && (cd `dirname .tmp/libindi1.0.0` && $(TAR) libindi1.0.0.tar libindi1.0.0 && $(COMPRESS) libindi1.0.0.tar) && $(MOVE) `dirname .tmp/libindi1.0.0`/libindi1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/libindi1.0.0
 
 
@@ -366,9 +394,40 @@
 mocables: compiler_moc_header_make_all compiler_moc_source_make_all
 
-compiler_moc_header_make_all: moc_baoqt.cpp
+compiler_moc_header_make_all: moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_qledindicator.cpp moc_selectstars.cpp
 compiler_moc_header_clean:
-	-$(DEL_FILE) moc_baoqt.cpp
-moc_baoqt.cpp: BAOControl/baoqt.h
-	/usr/bin/moc $(DEFINES) $(INCPATH) BAOControl/baoqt.h -o moc_baoqt.cpp
+	-$(DEL_FILE) moc_baoqt.cpp moc_liste.cpp moc_map.cpp moc_qledindicator.cpp moc_selectstars.cpp
+moc_baoqt.cpp: BAOcontrol/selectstars.h \
+		BAOcontrol/ui_selectstars.h \
+		BAOcontrol/liste.h \
+		BAOcontrol/map.h \
+		communs/const.h \
+		BAOcontrol/baocontrol.h \
+		communs/logs.h \
+		communs/ClientSocket.h \
+		communs/Socket.h \
+		communs/SocketException.h \
+		communs/astro.h \
+		communs/alignement.h \
+		communs/filetools.h \
+		communs/exception.h \
+		BAOcontrol/Server.hpp \
+		BAOcontrol/qledindicator.h \
+		BAOcontrol/Joystick.h \
+		BAOcontrol/baoqt.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) BAOcontrol/baoqt.h -o moc_baoqt.cpp
+
+moc_liste.cpp: BAOcontrol/liste.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) BAOcontrol/liste.h -o moc_liste.cpp
+
+moc_map.cpp: communs/const.h \
+		BAOcontrol/map.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) BAOcontrol/map.h -o moc_map.cpp
+
+moc_qledindicator.cpp: BAOcontrol/qledindicator.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) BAOcontrol/qledindicator.h -o moc_qledindicator.cpp
+
+moc_selectstars.cpp: BAOcontrol/ui_selectstars.h \
+		BAOcontrol/selectstars.h
+	/usr/bin/moc $(DEFINES) $(INCPATH) BAOcontrol/selectstars.h -o moc_selectstars.cpp
 
 compiler_rcc_make_all:
@@ -379,9 +438,18 @@
 compiler_moc_source_make_all:
 compiler_moc_source_clean:
-compiler_uic_make_all: ui_baoqt.h
+compiler_uic_make_all: ui_baoqt.h ui_liste.h ui_map.h ui_selectstars.h
 compiler_uic_clean:
-	-$(DEL_FILE) ui_baoqt.h
-ui_baoqt.h: BAOControl/baoqt.ui
-	/usr/bin/uic BAOControl/baoqt.ui -o ui_baoqt.h
+	-$(DEL_FILE) ui_baoqt.h ui_liste.h ui_map.h ui_selectstars.h
+ui_baoqt.h: BAOcontrol/baoqt.ui
+	/usr/bin/uic BAOcontrol/baoqt.ui -o ui_baoqt.h
+
+ui_liste.h: BAOcontrol/liste.ui
+	/usr/bin/uic BAOcontrol/liste.ui -o ui_liste.h
+
+ui_map.h: BAOcontrol/map.ui
+	/usr/bin/uic BAOcontrol/map.ui -o ui_map.h
+
+ui_selectstars.h: BAOcontrol/selectstars.ui
+	/usr/bin/uic BAOcontrol/selectstars.ui -o ui_selectstars.h
 
 compiler_yacc_decl_make_all:
@@ -427,18 +495,5 @@
 	$(CC) -c $(CFLAGS) $(INCPATH) -o indiserver.o indiserver.c
 
-baocontrol.o: BAOControl/baocontrol.cpp BAOControl/baocontrol.h \
-		communs/const.h \
-		communs/logs.h \
-		communs/ClientSocket.h \
-		communs/Socket.h \
-		communs/SocketException.h \
-		communs/astro.h \
-		communs/alignement.h \
-		communs/filetools.h \
-		communs/exception.h
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o baocontrol.o BAOControl/baocontrol.cpp
-
-baoqt.o: BAOControl/baoqt.cpp BAOControl/baoqt.h \
-		BAOControl/baocontrol.h \
+baocontrol.o: BAOcontrol/baocontrol.cpp BAOcontrol/baocontrol.h \
 		communs/const.h \
 		communs/logs.h \
@@ -450,10 +505,14 @@
 		communs/filetools.h \
 		communs/exception.h \
-		BAOControl/ui_baoqt.h
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o baoqt.o BAOControl/baoqt.cpp
-
-main.o: BAOControl/main.cpp BAOControl/baoqt.h \
-		BAOControl/baocontrol.h \
+		BAOcontrol/Server.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o baocontrol.o BAOcontrol/baocontrol.cpp
+
+baoqt.o: BAOcontrol/baoqt.cpp BAOcontrol/baoqt.h \
+		BAOcontrol/selectstars.h \
+		BAOcontrol/ui_selectstars.h \
+		BAOcontrol/liste.h \
+		BAOcontrol/map.h \
 		communs/const.h \
+		BAOcontrol/baocontrol.h \
 		communs/logs.h \
 		communs/ClientSocket.h \
@@ -464,6 +523,73 @@
 		communs/filetools.h \
 		communs/exception.h \
-		BAOControl/ui_baoqt.h
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o BAOControl/main.cpp
+		BAOcontrol/Server.hpp \
+		BAOcontrol/qledindicator.h \
+		BAOcontrol/Joystick.h \
+		BAOcontrol/ui_baoqt.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o baoqt.o BAOcontrol/baoqt.cpp
+
+Connection.o: BAOcontrol/Connection.cpp BAOcontrol/Connection.hpp \
+		BAOcontrol/Socket2.hpp \
+		BAOcontrol/Server.hpp \
+		BAOcontrol/LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Connection.o BAOcontrol/Connection.cpp
+
+Joystick.o: BAOcontrol/Joystick.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Joystick.o BAOcontrol/Joystick.cpp
+
+liste.o: BAOcontrol/liste.cpp BAOcontrol/liste.h \
+		BAOcontrol/ui_liste.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o liste.o BAOcontrol/liste.cpp
+
+Listener.o: BAOcontrol/Listener.cpp BAOcontrol/Listener.hpp \
+		BAOcontrol/Socket2.hpp \
+		BAOcontrol/Connection.hpp \
+		BAOcontrol/Server.hpp \
+		BAOcontrol/LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Listener.o BAOcontrol/Listener.cpp
+
+LogFile.o: BAOcontrol/LogFile.cpp BAOcontrol/LogFile.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o LogFile.o BAOcontrol/LogFile.cpp
+
+main.o: BAOcontrol/main.cpp BAOcontrol/baoqt.h \
+		BAOcontrol/selectstars.h \
+		BAOcontrol/ui_selectstars.h \
+		BAOcontrol/liste.h \
+		BAOcontrol/map.h \
+		communs/const.h \
+		BAOcontrol/baocontrol.h \
+		communs/logs.h \
+		communs/ClientSocket.h \
+		communs/Socket.h \
+		communs/SocketException.h \
+		communs/astro.h \
+		communs/alignement.h \
+		communs/filetools.h \
+		communs/exception.h \
+		BAOcontrol/Server.hpp \
+		BAOcontrol/qledindicator.h \
+		BAOcontrol/Joystick.h \
+		BAOcontrol/ui_baoqt.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o BAOcontrol/main.cpp
+
+map.o: BAOcontrol/map.cpp BAOcontrol/map.h \
+		communs/const.h \
+		BAOcontrol/ui_map.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o map.o BAOcontrol/map.cpp
+
+qledindicator.o: BAOcontrol/qledindicator.cpp BAOcontrol/qledindicator.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qledindicator.o BAOcontrol/qledindicator.cpp
+
+selectstars.o: BAOcontrol/selectstars.cpp BAOcontrol/selectstars.h \
+		BAOcontrol/ui_selectstars.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o selectstars.o BAOcontrol/selectstars.cpp
+
+Server.o: BAOcontrol/Server.cpp BAOcontrol/Server.hpp \
+		BAOcontrol/Socket2.hpp \
+		BAOcontrol/Listener.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Server.o BAOcontrol/Server.cpp
+
+Socket2.o: BAOcontrol/Socket2.cpp BAOcontrol/Socket2.hpp
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Socket2.o BAOcontrol/Socket2.cpp
 
 BAOtest_main.o: BAOTest/BAOtest_main.cpp communs/ClientSocket.h \
@@ -706,6 +832,5 @@
 		communs/filetools.h \
 		communs/exception.h \
-		communs/logs.h \
-		communs/alt2motor.h
+		communs/logs.h
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o BAO.o drivers/telescope/BAO.cpp
 
@@ -1192,4 +1317,16 @@
 	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_baoqt.o moc_baoqt.cpp
 
+moc_liste.o: moc_liste.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_liste.o moc_liste.cpp
+
+moc_map.o: moc_map.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_map.o moc_map.cpp
+
+moc_qledindicator.o: moc_qledindicator.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qledindicator.o moc_qledindicator.cpp
+
+moc_selectstars.o: moc_selectstars.cpp 
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_selectstars.o moc_selectstars.cpp
+
 ####### Install
 
Index: /BAORadio/libindi/libindi/communs/alignement.cpp
===================================================================
--- /BAORadio/libindi/libindi/communs/alignement.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/communs/alignement.cpp	(revision 688)
@@ -125,4 +125,38 @@
     MATRICE[2][3] = 0.0;
     MATRICE[3][3] = 1.0;
+}
+
+void Alignement::AfficherMatrice()
+{
+    stringstream os;
+
+    os.str("");
+
+    // Affiche de la matrice pour vÃ©rif
+
+    os << "\nCalcul de la matrice de correction:\n";
+    os.width(15);
+    os << MATRICE[1][1];
+    os.width(15);
+    os << MATRICE[2][1];
+    os.width(15);
+    os << MATRICE[3][1]; 
+    os << "\n";
+    os.width(15);
+    os << MATRICE[1][2];
+    os.width(15);
+    os << MATRICE[2][2];
+    os.width(15);
+    os << MATRICE[3][2];
+    os << "\n";
+    os.width(15);
+    os << MATRICE[1][3];
+    os.width(15);
+    os << MATRICE[2][3];
+    os.width(15);
+    os << MATRICE[3][3];
+    os << "\n\nDeterminant :" << Determinant() << "\n";
+
+    AfficherLog(os.str(), true);
 }
 
@@ -388,6 +422,6 @@
     // Calcul du vecteur offset sur le ciel
 
-    VECT_OFFSET.x =0.0;//m1.x - ((a1.x * MATRICE[1][1]) + (a1.y * MATRICE[2][1]));
-    VECT_OFFSET.y =0.0;//m1.y - ((a1.x * MATRICE[1][2]) + (a1.y * MATRICE[2][2]));
+    VECT_OFFSET.x =m1.x - ((a1.x * MATRICE[1][1]) + (a1.y * MATRICE[2][1]));
+    VECT_OFFSET.y =m1.y - ((a1.x * MATRICE[1][2]) + (a1.y * MATRICE[2][2]));
 
     if (x + y == 0 )
@@ -417,14 +451,12 @@
 inline int Alignement::ElementsMatriceSimple(Coord aa1, Coord aa2, Coord aa3, Coord mm1, Coord mm2, Coord mm3)
 {
-// On se retouvre Ã  devoir rÃ©soudre les equations:
-
     // mm1 = aa1 * MATRICE_Correction
     // mm2 = aa2 * MATRICE_Correction
     // mm3 = aa3 * MATRICE_Correction
 
-    // et donc Ã  trouver les Ã©lÃ©ments de la matrice MATRICE_Correction en fonction des paramÃštres x, y, z des vecteurs
+    // On doit donc trouver les Ã©lÃ©ments de la matrice MATRICE_Correction en fonction des paramÃštres x, y, z des vecteurs
     // aa1, aa2, aa3, mm1, mm2, mm3
 
-    // Les Ã©lÃ©ments de la matrice se trouvent aisÃ©ment
+    // Les Ã©lÃ©ments de la matrice se trouvent aisÃ©ment :
 
     double div= aa1.z*aa2.y*aa3.x - aa1.y*aa2.z*aa3.x - aa1.z*aa2.x*aa3.y +
@@ -582,4 +614,9 @@
 
 
+/**************************************************************************************
+** Projection simple d'un point situÃ© aux coordonnÃ©es (az, ha) dans un cercle de
+** rayon Pi / 2
+**
+***************************************************************************************/
 
 void Alignement::AzHa2XY(double az, double ha, double *x, double *y)
@@ -591,4 +628,5 @@
     *y = r * sin(az);
 }
+
 
 /**************************************************************************************
@@ -645,4 +683,9 @@
 }
 
+
+/**************************************************************************************
+** Initialise les cotes de l'instrument
+**
+***************************************************************************************/
 
 void Alignement::InitParametresInstrument()
@@ -655,13 +698,25 @@
     AE          = AE0;
     I0          = I00;
-    Thau        = Thau0;
+    Theta       = Theta0;
     CoeffMoteur = CoeffMoteur0;
 }
 
 
+
+/**************************************************************************************
+** Convertit un nombre de pas en hauteur en un angle exprimÃ© en degrÃ©s
+**
+***************************************************************************************/
+
 double Alignement::Motor2Alt(double pas)
 {
-    return asin(( - pow( ( pas * CoeffMoteur0 ) + I00, 2.0 ) + 128279.4) / 129723.4 ) * N180divPi + Thau0;
-}
+    return asin(( - pow( ( pas * CoeffMoteur0 ) + I00, 2.0 ) + 128279.4) / 129723.4 ) * N180divPi + Theta0;
+}
+
+
+/**************************************************************************************
+** Convertit une hauteur (exprimÃ©e en degrÃ©s) en nombre de pas codeur
+**
+***************************************************************************************/
 
 double Alignement::Alt2Motor(double targetAlt)
@@ -679,5 +734,5 @@
     double CD2pBC2 = CD * CD + BC * BC;
 
-    double I2 = -2.0 * ED * sqrt( CD2pBC2 ) * sin(  ( targetAlt - Thau ) * Pidiv180 );
+    double I2 = -2.0 * ED * sqrt( CD2pBC2 ) * sin(  ( targetAlt - Theta ) * Pidiv180 );
 
     I2 += ED * ED + CD2pBC2 - AE *AE;
@@ -702,5 +757,5 @@
     // double memI0 = I00;
     double memCoeffMoteur = CoeffMoteur0;
-    double memThau = Thau0;
+    double memTheta = Theta0;
 
     stringstream os;
@@ -715,5 +770,4 @@
 
     InitParametresInstrument();
-
 
 
@@ -752,12 +806,12 @@
 
 
-    os << "m1=" << delta_de[0] << "   m11=" <<  Motor2Alt(Alt2Motor(delta_de[0])) << "\n";
-
-    AfficherLog(os.str(), true);
-    os.str("");
-
+    /*  os << "m1=" << delta_de[0] << "   m11=" <<  Motor2Alt(Alt2Motor(delta_de[0])) << "\n";
+
+      AfficherLog(os.str(), true);
+      os.str("");
+    */
     for (i=-interv; i< interv; i += pas)
     {
-        CoeffMoteur = CoeffMoteur0 + i/100.0;
+        CoeffMoteur = CoeffMoteur0 + i / 100.0;
 
         for (j=-interv; j<interv; j += pas)
@@ -773,5 +827,5 @@
                     BC = BC0 + l;
 
-                    Thau = (atan(CD / BC) - atan(18.5 / ED))* N180divPi;
+                    Theta = (atan(CD / BC) - atan(18.5 / ED))* N180divPi;
 
                     for (m=-interv; m< interv; m += pas)
@@ -810,5 +864,5 @@
                             os << "Determinant=" << det << "\n";
 
-                            os << "CD=" << CD << " ED=" << ED << " BC=" << BC << " AE=" << AE << " Thau=" << Thau << " CoeffMoteur=" << CoeffMoteur << "\n\n";
+                            os << "CD=" << CD << " ED=" << ED << " BC=" << BC << " AE=" << AE << " Theta=" << Theta << " CoeffMoteur=" << CoeffMoteur << "\n\n";
 
                             AfficherLog(os.str(), true);
@@ -820,5 +874,5 @@
                             memAE = AE;
                             memBC = BC;
-                            memThau = Thau;
+                            memTheta = Theta;
                             memCoeffMoteur = CoeffMoteur;
                         }
@@ -828,5 +882,10 @@
         }
 
-        AfficherLog("*\n", true);
+        if ((int)Arrondi((interv - i) / (2.0 * interv) * 100.0) % 10 == 0)
+        {
+            os.str("");
+            os << 100.0 - (interv - i) / (2.0 * interv) * 100.0 << " %\n";
+            AfficherLog(os.str(), true);
+        }
     }
 
@@ -838,5 +897,5 @@
     AE = memAE;
     BC = memBC;
-    Thau = memThau;
+    Theta = memTheta;
     CoeffMoteur = memCoeffMoteur;
 
@@ -866,15 +925,5 @@
     Matrice_ok = ElementsMatriceSimple(c1, c2, c3 ,mm1, mm2, mm3);
 
-    det = Determinant();
-
-
-
-    os << "Determinant=" << det << "\n";
-
-
-    AfficherLog(os.str(), true);
-
-
-
+    AfficherMatrice();
 }
 
@@ -932,5 +981,8 @@
         distances = new double [nbrcorrections+1];
 
-        os << "CoordonnÃ©es visees : ad=" << DHMS(ar * 15.0,true) << "  de=" << DHMS(dec,false) << "\n";
+        os << "CoordonnÃ©es visees : ad=" << DHMS(ar * 15.0
+
+
+                ,true) << "  de=" << DHMS(dec,false) << "\n";
 
         Azimut(ar * 15.0 * Pidiv180, dec * Pidiv180, &a2, &b2);
@@ -1099,12 +1151,9 @@
     }
 
-
-    // Affiche de la matrice pour vÃ©rif
-
-    os << "\nCalcul de la matrice de correction:\n";
-    os << MATRICE[1][1] << "   \t" << MATRICE[2][1] << "    \t" << MATRICE[3][1] << "\n";
-    os << MATRICE[1][2] << "   \t" << MATRICE[2][2] << "    \t" << MATRICE[3][2] << "\n";
-    os << MATRICE[1][3] << "   \t" << MATRICE[2][3] << "    \t" << MATRICE[3][3] << "\n";
-    os << "\nDeterminant :" << Determinant() << "\n";
+    //Afficher les messages de cette fonction
+
+    AfficherLog(os.str(), true);
+
+    AfficherMatrice();
 
 
@@ -1114,9 +1163,4 @@
     SelectionnePourCalculMatrice[map[best2]] = true;
     SelectionnePourCalculMatrice[map[best3]] = true;
-
-
-    //Afficher les messages de cette fonction
-
-    AfficherLog(os.str(), true);
 }
 
Index: /BAORadio/libindi/libindi/communs/alignement.h
===================================================================
--- /BAORadio/libindi/libindi/communs/alignement.h	(revision 687)
+++ /BAORadio/libindi/libindi/communs/alignement.h	(revision 688)
@@ -95,5 +95,7 @@
     bool   PointSitueDansSurfaceTriangle(double px, double py, double px1, double py1, double px2, double py2, double px3, double py3);
 
+    void   AfficherMatrice();
     inline double Determinant();
+    
     void   InitParametresInstrument();
     void   OptimisationGeometrieAntenne();
@@ -145,5 +147,5 @@
     double I0;
     double CoeffMoteur;
-    double Thau;
+    double Theta;
 
 };
Index: /BAORadio/libindi/libindi/communs/astro.cpp
===================================================================
--- /BAORadio/libindi/libindi/communs/astro.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/communs/astro.cpp	(revision 688)
@@ -528,5 +528,5 @@
 double Astro::TSL(double JJ, double HeureSiderale, double Longitude)
 {
-    double T = (JJ /*- 66.185/3600.0/24.0*/ - 2415020.0 ) / 36525.0;
+    double T = (JJ - ET_UT / 3600.0 / 24.0 - 2415020.0 ) / 36525.0;
     double rd = 0.276919398 + ( 100.0021359 + 0.000001075 * T ) * T;
     rd += HeureSiderale;
@@ -656,7 +656,7 @@
     CalculTSL();
 
-    for (int i=0; i < 120; i++)
-    {
-        tsl += i * 5.0 / 60.0 / 24.0 ;
+    for (int i = 0; i < 120; i++)
+    {
+        tsl += (double)i * 5.0 / 60.0 / 24.0 ;
 
         Azimut( AD, Dec, &az, &ha);
@@ -687,5 +687,5 @@
     double gamma, R0, a, b, PressionTempCalc, tanHT;
 
-    if (Pression != 0.0)
+    if (Pression != 0.0 && ht > 0.0)
     {
         PressionTempCalc = (Pression / 1013.25) * 273.0 / (273.0 + Temp);
@@ -694,15 +694,15 @@
         {
             gamma = 2.6;
-            a = 7.5262;
-            b = -2.2204;
+            a     = 7.5262;
+            b     = -2.2204;
 
             if (ht >= 4.0 * Pidiv180)
             {
-                gamma=-1.1;
-                a=4.4010;
-                b=-0.9603;
+                gamma = -1.1;
+                a     = 4.4010;
+                b     = -0.9603;
             }
 
-            R0 = (pow((a+b*log(ht*N180divPi+gamma)), 2.0)) / 60.0 * Pidiv180;
+            R0 = (pow(( a + b * log( ht * N180divPi + gamma)), 2.0)) / 60.0 * Pidiv180;
             ht += R0 * PressionTempCalc;
         }
@@ -710,5 +710,5 @@
         {
             tanHT = fabs(tan(Pidiv2 - ht));
-            R0 = (0.0161877777777777777777-0.000022888888888888888 * tanHT * tanHT)
+            R0 = ( 0.0161877777777777777777 - 0.000022888888888888888 * tanHT * tanHT )
                  * tanHT * Pidiv180;
             ht += R0 * PressionTempCalc;
Index: /BAORadio/libindi/libindi/communs/astro.h
===================================================================
--- /BAORadio/libindi/libindi/communs/astro.h	(revision 687)
+++ /BAORadio/libindi/libindi/communs/astro.h	(revision 688)
@@ -64,5 +64,5 @@
     double CalculLongitudeSoleil();
     double TSL(double JJ,double HeureSiderale,double Longitude);
-    bool    Decomposition(string chaine, char type, float *a1, float *a2, float *a3);
+    bool   Decomposition(string chaine, char type, float *a1, float *a2, float *a3);
     void   Nutation();
     void   Obliquite(double JJ);
Index: /BAORadio/libindi/libindi/communs/const.h
===================================================================
--- /BAORadio/libindi/libindi/communs/const.h	(revision 687)
+++ /BAORadio/libindi/libindi/communs/const.h	(revision 688)
@@ -9,4 +9,7 @@
 
 
+#define ET_UT 0.0
+//#define 66.185
+
 // ParamÃštres de l'instrument
 
@@ -17,5 +20,6 @@
 #define I00 81.0
 #define CoeffMoteur0 0.078947
-#define Thau0 20.2345
+#define Theta0 20.2345
+
 
 // dimensions des tableaux
@@ -25,5 +29,5 @@
 #define MAXETOILES 250
 #define MAXANTENNES 50
-#define MAXALIGNEMENTANTENNE 40
+#define MAXALIGNEMENTANTENNE 20
 #define TAILLEMAXLOGS 3000000
 
@@ -142,4 +146,6 @@
 #define BAO_PORT 8000
 
+#define STELLARIUM_PORT 8001
+
 // DÃ©lai maximum en ms d'attente de la rÃ©ponse des micro-contrÃŽleurs
 
@@ -166,4 +172,9 @@
 #define UPDATETRANSITDELAY ( 15.0 * 60.0 )
 
+#define JOYSTICK
+
+#define JOY_DEV "/dev/input/js1"
+//#define JOY_DEV "/dev/js0"
+
 
 
Index: /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp
===================================================================
--- /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp	(revision 687)
+++ /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp	(revision 688)
@@ -1359,6 +1359,6 @@
 
         IDSetSwitch(&AlignementAltpP, "Delta en azimut = %s  delta en hauteur = %s  az = %s  ha = %s (Vitesse raquette = %d)\n",
-                    DHMS(delta_az * PasDeltaAz, false).c_str(),
-                    DHMS(delta_ha * PasDeltaHa, false).c_str(),
+                    DHMS(delta_az * PasDeltaAz * N180divPi, false).c_str(),
+                    DHMS(delta_ha * PasDeltaHa * N180divPi, false).c_str(),
                     DHMS(az * N180divPi, false).c_str(),
                     DHMS(ha * N180divPi, false).c_str(),
@@ -1385,6 +1385,6 @@
 
         IDSetSwitch(&AlignementAltnP, "Delta en azimut = %s  delta en hauteur = %s  az = %s  ha = %s (Vitesse raquette = %d)\n",
-                    DHMS(delta_az * PasDeltaAz, false).c_str(),
-                    DHMS(delta_ha * PasDeltaHa, false).c_str(),
+                    DHMS(delta_az * PasDeltaAz * N180divPi, false).c_str(),
+                    DHMS(delta_ha * PasDeltaHa * N180divPi, false).c_str(),
                     DHMS(az * N180divPi, false).c_str(),
                     DHMS(ha * N180divPi, false).c_str(),
@@ -1805,5 +1805,5 @@
                 // AprÃšs s'Ãªtre assurer que nous utilisons la mÃ©thode SIMPLE et que la matrice de rotation est ok
 
-                AfficherLog("Application de la matrice SIMPLE\n", true);
+                AfficherLog("Application de la matrice SIMPLE (det=%10.8f)\n", Sockets[i].AlignementAntenne->Determinant(), true);
                 AfficherLog("Coordonnees initiales: Azi = %s  Haut = %s\n", DHMS(targetAz*N180divPi, false ).c_str(),
                             DHMS(targetAlt*N180divPi, false ).c_str());
@@ -2275,6 +2275,6 @@
                                     // Message d'erreur
 
-                                    IDSetSwitch(&OnCoordSetSP, "ALERTE antenne %s : Erreur NACK GOTO !\nRetour : %s\n",  Sockets[i].IP.c_str(), reponse.c_str());
-                                    AfficherLog("ALERTE antenne %s : Erreur NACK GOTO !\nRetour : %s\n",  Sockets[i].IP.c_str(), reponse.c_str());
+                                    IDSetSwitch(&OnCoordSetSP, "ALERTE antenne %s : Erreur NACK GOTO ! (Retour : %s)\n",  Sockets[i].IP.c_str(), reponse.c_str());
+                                    AfficherLog("ALERTE antenne %s : Erreur NACK GOTO ! (Retour : %s)\n",  Sockets[i].IP.c_str(), reponse.c_str());
                                     // On dÃ©connecte l'antenne. Elle ne semble pas en mesure d'exÃ©cuter les ordres goto
 
Index: /BAORadio/libindi/libindi/libindi.pro
===================================================================
--- /BAORadio/libindi/libindi/libindi.pro	(revision 687)
+++ /BAORadio/libindi/libindi/libindi.pro	(revision 688)
@@ -1,4 +1,4 @@
 ######################################################################
-# Automatically generated by qmake (2.01a) mar. mai 15 01:36:08 2012
+# Automatically generated by qmake (2.01a) sam. mai 26 03:17:24 2012
 ######################################################################
 
@@ -6,5 +6,5 @@
 TARGET = 
 DEPENDPATH += . \
-              BAOControl \
+              BAOcontrol \
               BAOTest \
               communs \
@@ -25,5 +25,5 @@
 INCLUDEPATH += . \
                libs \
-               BAOControl \
+               BAOcontrol \
                communs \
                libs/indibase \
@@ -45,8 +45,17 @@
            indidevapi.h \
            indidriver.h \
-           BAOControl/baocontrol.h \
-           BAOControl/baoqt.h \
+           BAOcontrol/baocontrol.h \
+           BAOcontrol/baoqt.h \
+           BAOcontrol/Connection.hpp \
+           BAOcontrol/Joystick.h \
+           BAOcontrol/liste.h \
+           BAOcontrol/Listener.hpp \
+           BAOcontrol/LogFile.hpp \
+           BAOcontrol/map.h \
+           BAOcontrol/qledindicator.h \
+           BAOcontrol/selectstars.h \
+           BAOcontrol/Server.hpp \
+           BAOcontrol/Socket2.hpp \
            communs/alignement.h \
-           communs/alt2motor.h \
            communs/astro.h \
            communs/ClientSocket.h \
@@ -122,5 +131,8 @@
            libs/webcam/videodev.h \
            libs/webcam/videodev2.h
-FORMS += BAOControl/baoqt.ui
+FORMS += BAOcontrol/baoqt.ui \
+         BAOcontrol/liste.ui \
+         BAOcontrol/map.ui \
+         BAOcontrol/selectstars.ui
 SOURCES += base64.c \
            eventloop.c \
@@ -129,7 +141,17 @@
            indidrivermain.c \
            indiserver.c \
-           BAOControl/baocontrol.cpp \
-           BAOControl/baoqt.cpp \
-           BAOControl/main.cpp \
+           BAOcontrol/baocontrol.cpp \
+           BAOcontrol/baoqt.cpp \
+           BAOcontrol/Connection.cpp \
+           BAOcontrol/Joystick.cpp \
+           BAOcontrol/liste.cpp \
+           BAOcontrol/Listener.cpp \
+           BAOcontrol/LogFile.cpp \
+           BAOcontrol/main.cpp \
+           BAOcontrol/map.cpp \
+           BAOcontrol/qledindicator.cpp \
+           BAOcontrol/selectstars.cpp \
+           BAOcontrol/Server.cpp \
+           BAOcontrol/Socket2.cpp \
            BAOTest/BAOtest_main.cpp \
            communs/alignement.cpp \
