Index: /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp
===================================================================
--- /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp	(revision 493)
+++ /BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp	(revision 494)
@@ -61,9 +61,30 @@
 }
 
+Position ExtractPosition2(std::string str)
+{
+    Position result;
+
+    result.x=1000;
+    result.y=1000;
+
+    if (str.length()>9)
+    {
+        result.x=atoi(str.substr(2, 4).c_str());
+
+        result.y=atoi(str.substr(7, 4).c_str());
+
+        if (str[1]=='b') result.x=-result.x;
+
+        if (str[6]=='b') result.y=-result.y;
+    }
+
+    return result;
+}
+
 /**************************************************************************************
 ** CrÃ©ation de l'identifiant de l'antenne Ã  partir de l'IP
 **
 ***************************************************************************************/
-
+/*
 int NumeroServeur()
 {
@@ -96,5 +117,5 @@
     return -1;
 }
-
+*/
 
 
@@ -115,5 +136,5 @@
     // Parametres sups
     bool ErreursAleatoires=false;
-    bool Affichage=false;
+    bool Affichage=true;
 
     // Position PARK
@@ -167,5 +188,5 @@
          
 
-                        if (asks.find("STATUS")!=string::npos)
+                        if (asks.find("s")!=string::npos)
                         {
                             strcpy(chaine, "ACK/STATUS\n");
@@ -184,8 +205,8 @@
                         }
 
-                        if (asks.find("POS")!=string::npos)
-                        {
-
-                            strcpy(chaine,"ACK/POS\n");
+                        if (asks.find("p")!=string::npos)
+                        {
+
+                            strcpy(chaine,"ACK/POSITION\n");
                             client_socket << chaine;
 
@@ -194,15 +215,15 @@
                             if (Aleat)
                             {
-                                sprintf(chaine, "POS/%i/%i/\n", Pos.x, Pos.y);
-                            }
-                            else
-                            {
-                                strcpy(chaine, "ERR/HALT/POS/\n");   //erreur moteur !
-                            }
-                        }
-
-                        if (asks.find("GOTO")!=string::npos)
-                        {
-                            Pos=ExtractPosition(asks);
+                                sprintf(chaine, "POSITION/%i/%i/\n", Pos.x, Pos.y);
+                            }
+                            else
+                            {
+                                strcpy(chaine, "NACK/HALT/POSITION/\n");   //erreur moteur !
+                            }
+                        }
+
+                        if (asks.find("g")!=string::npos)
+                        {
+                            Pos=ExtractPosition2(asks);
 
                             strcpy(chaine,"ACK/GOTO/\n");
@@ -224,9 +245,9 @@
                             else
                             {
-                                strcpy(chaine, "ERR/HALT/GOTO/\n");   //erreur moteur !
-                            }
-                        }
-
-                        if (asks.find("PARK")!=string::npos)
+                                strcpy(chaine, "NACK/HALT/GOTO/\n");   //erreur moteur !
+                            }
+                        }
+
+                        if (asks.find("pa")!=string::npos)
                         {
 
@@ -242,9 +263,9 @@
                             else
                             {
-                                strcpy(chaine, "ERR/HALT/PARK/\n");   //erreur
-                            }
-                        }
-
-                        if (asks.find("ABORT")!=string::npos)
+                                strcpy(chaine, "NACK/HALT/PARK/\n");   //erreur
+                            }
+                        }
+
+                        if (asks.find("a")!=string::npos)
                         {
 
@@ -260,5 +281,5 @@
                             else
                             {
-                                strcpy(chaine, "ERR/HALT/ABORT/\n");   //erreur
+                                strcpy(chaine, "NACK/HALT/ABORT/\n");   //erreur
                             }
                         }
Index: /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp
===================================================================
--- /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp	(revision 493)
+++ /BAORadio/libindi/libindi/drivers/telescope/BAO.cpp	(revision 494)
@@ -893,11 +893,11 @@
 	    // On traite ici les acknowledges
 	    
-	    if (reponse.find("ACK")!=string::npos)
+	    if ((reponse.find("ACK")!=string::npos) && (reponse.find("NACK")==string::npos))
 	    {
-	      if (reponse.find("STATUS")!=string::npos)
+	      /*if (reponse.find("STATUS")!=string::npos)
 	      {
 		Sockets[i].ack_status=true;
-	      }
-	      else if (reponse.find("POS")!=string::npos)
+	      } else*/
+	      if (reponse.find("POS")!=string::npos)
 	      {
 		Sockets[i].ack_pos=true;
@@ -919,5 +919,5 @@
 	    {
 	      //rÃ©ponse Ã  la requÃªte STATUS
-	      if (reponse.find("STATUS")!=string::npos)
+	      /*if (reponse.find("STATUS")!=string::npos)
 	      {
 		if (reponse.find("READY")!=string::npos)
@@ -930,8 +930,9 @@
 		}
 		
-	      }//rÃ©ponse Ã  la requÃªte POSITION
-	      else if (reponse.find("POS")!=string::npos)
-	      {
-		if (reponse.find("ERR")!=string::npos)
+	      } else*/
+	      //rÃ©ponse Ã  la requÃªte POSITION
+	      if (reponse.find("POS")!=string::npos)
+	      {
+		if (reponse.find("NACK")!=string::npos)
 		{
 		  OnCoordSetSP.s = IPS_ALERT;
@@ -954,5 +955,5 @@
 	      else if (reponse.find("PARK")!=string::npos)
 	      {
-		if (reponse.find("ERR")!=string::npos)
+		if (reponse.find("NACK")!=string::npos)
 		{
 		  ParkSP.s = IPS_ALERT;
@@ -967,5 +968,5 @@
 	      else if (reponse.find("ABORT")!=string::npos)
 	      {
-		if (reponse.find("ERR")!=string::npos)
+		if (reponse.find("NACK")!=string::npos)
 		{
 		  AbortSlewSP.s = IPS_ALERT;
@@ -982,5 +983,5 @@
 	      else if (reponse.find("GOTO")!=string::npos)
 	      {
-		if (reponse.find("ERR")!=string::npos)
+		if (reponse.find("NACK")!=string::npos)
 		{
 		  OnCoordSetSP.s = IPS_ALERT;
@@ -1144,5 +1145,5 @@
 	  {
 	    //Envoi des requÃªtes STATUS
-	    case 0 :
+	    /*case 0 :
 	    {
 	      Sockets[i].AttenteExecution=0;
@@ -1229,8 +1230,8 @@
 	      }
 	    }
-	    break;
+	    break;*/
 	    
 	    //Envoi de la commande POS
-	    case 3 :
+	    case 0 :
 	    {
 	      Sockets[i].ack_pos=false;
@@ -1244,5 +1245,5 @@
 	    
 	    //ack POS
-	    case 4 :
+	    case 1 :
 	    {
 	      if (Sockets[i].ack_pos)
@@ -1260,5 +1261,5 @@
 		if (Sockets[i].AttenteExecution>MAXATTENTE)
 		{
-		  Sockets[i].etape=3;
+		  Sockets[i].etape=0;
 		  Sockets[i].AttenteExecution=0;
 		  Sockets[i].AnomaliesExecution++;
@@ -1267,5 +1268,5 @@
 		if (Sockets[i].AnomaliesExecution>MAXANOMALIES)
 		{
-		  Sockets[i].etape=6;
+		  Sockets[i].etape=3;
 		  
 		  if ( compt % 1000 == 0)
@@ -1281,5 +1282,5 @@
 	    
 	    //Valeurs pos valides ?
-	    case 5 :
+	    case 2 :
 	    {
 	      if (Sockets[i].PosValides)
@@ -1303,5 +1304,5 @@
 		if (Sockets[i].AnomaliesExecution>MAXANOMALIES)
 		{
-		  Sockets[i].etape=6;
+		  Sockets[i].etape=3;
 		  
 		  if ( compt % 1000 == 0)
@@ -1331,5 +1332,5 @@
 	if (Sockets[i].sendalertes > 0)
 	{
-	  Sockets[i].etape=6;
+	  Sockets[i].etape=3;
 	  
 	  if ( compt % 1000 == 0)
@@ -1351,5 +1352,5 @@
       for (int i=1; i<SocketsNumber; i++) if (Sockets[i].Connected)
       {
-	if (Sockets[i].etape == 6) num++; //fin de la procÃ©dure LecturePosition. Les antennes sont prÃªtes
+	if (Sockets[i].etape == 3) num++; //fin de la procÃ©dure LecturePosition. Les antennes sont prÃªtes
 	  //Ã  recevoir l'ordre GOto
       }
@@ -1361,5 +1362,8 @@
 	  Sockets[i].ack_goto=false;
 	  
-	  if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++;
+	  //pour tester le programme de FranÃ§ois, on envoie ces coordonnees sur sa demande
+	   if (!GOTO(i, 1000, -3000)) Sockets[i].sendalertes++;
+	  
+	  //if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++;
 	  
 	  Sockets[i].etape++;
@@ -1617,5 +1621,5 @@
   bool BAO::STATUS(int numsocket)
   {
-    return COMMANDE(numsocket, (char*)"STATUS", (char*)"");
+    return COMMANDE(numsocket, (char*)"s", (char*)"");
   }
   
@@ -1626,5 +1630,5 @@
   bool BAO::POSITION(int numsocket)
   {
-    return COMMANDE(numsocket, (char*)"POS", (char*)"");
+    return COMMANDE(numsocket, (char*)"p", (char*)"");
   }
   
@@ -1635,5 +1639,5 @@
   bool BAO::PARK(int numsocket)
   {
-    return COMMANDE(numsocket, (char*)"PARK", (char*)"");
+    return COMMANDE(numsocket, (char*)"p", (char*)"");
   }
   
@@ -1644,5 +1648,5 @@
   bool BAO::ABORT(int numsocket)
   {
-    return COMMANDE(numsocket, (char*)"ABORT", (char*)"");
+    return COMMANDE(numsocket, (char*)"a", (char*)"");
   }
   
@@ -1655,12 +1659,14 @@
   {
     char Params[MAXCARACTERES];
-    
-    int sensAlt=0;
-    int sensAz=0;
+    char sensAz;
+    char sensAlt;
+    
+    sensAlt='f';
+    sensAz='f';
     
     if (deltaAz<0)
     {
       deltaAz=-deltaAz;
-      sensAz=1;
+      sensAz='b';
     }
     
@@ -1668,12 +1674,12 @@
     {
       deltaAlt=-deltaAlt;
-      sensAlt=1;
-    }
-    
-    sprintf(Params, "/%i/# %i Az/%i/# %i Alt", sensAz, deltaAz, sensAlt, deltaAlt);
-    
-    return COMMANDE(numsocket, (char*)"GOTO", Params);
-  }
-  
-  
-  
+      sensAlt='b';
+    }
+    
+    sprintf(Params, "%c%03i%c%03i", sensAz, deltaAz, sensAlt, deltaAlt);
+    
+    return COMMANDE(numsocket, (char*)"g", Params);
+  }
+  
+  
+  
