Changeset 494 for BAORadio


Ignore:
Timestamp:
Jul 14, 2010, 4:46:26 PM (14 years ago)
Author:
frichard
Message:

-Suppression de la commande STATUS
-Changement de la syntaxe de la commande Goto
-Remplacement de ERR par NACK
-Label des commandes limité à 1 caractère en minuscule

Location:
BAORadio/libindi/libindi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • BAORadio/libindi/libindi/BAOTest/BAOtest_main.cpp

    r493 r494  
    6161}
    6262
     63Position ExtractPosition2(std::string str)
     64{
     65    Position result;
     66
     67    result.x=1000;
     68    result.y=1000;
     69
     70    if (str.length()>9)
     71    {
     72        result.x=atoi(str.substr(2, 4).c_str());
     73
     74        result.y=atoi(str.substr(7, 4).c_str());
     75
     76        if (str[1]=='b') result.x=-result.x;
     77
     78        if (str[6]=='b') result.y=-result.y;
     79    }
     80
     81    return result;
     82}
     83
    6384/**************************************************************************************
    6485** Création de l'identifiant de l'antenne à partir de l'IP
    6586**
    6687***************************************************************************************/
    67 
     88/*
    6889int NumeroServeur()
    6990{
     
    96117    return -1;
    97118}
    98 
     119*/
    99120
    100121
     
    115136    // Parametres sups
    116137    bool ErreursAleatoires=false;
    117     bool Affichage=false;
     138    bool Affichage=true;
    118139
    119140    // Position PARK
     
    167188         
    168189
    169                         if (asks.find("STATUS")!=string::npos)
     190                        if (asks.find("s")!=string::npos)
    170191                        {
    171192                            strcpy(chaine, "ACK/STATUS\n");
     
    184205                        }
    185206
    186                         if (asks.find("POS")!=string::npos)
    187                         {
    188 
    189                             strcpy(chaine,"ACK/POS\n");
     207                        if (asks.find("p")!=string::npos)
     208                        {
     209
     210                            strcpy(chaine,"ACK/POSITION\n");
    190211                            client_socket << chaine;
    191212
     
    194215                            if (Aleat)
    195216                            {
    196                                 sprintf(chaine, "POS/%i/%i/\n", Pos.x, Pos.y);
    197                             }
    198                             else
    199                             {
    200                                 strcpy(chaine, "ERR/HALT/POS/\n");   //erreur moteur !
    201                             }
    202                         }
    203 
    204                         if (asks.find("GOTO")!=string::npos)
    205                         {
    206                             Pos=ExtractPosition(asks);
     217                                sprintf(chaine, "POSITION/%i/%i/\n", Pos.x, Pos.y);
     218                            }
     219                            else
     220                            {
     221                                strcpy(chaine, "NACK/HALT/POSITION/\n");   //erreur moteur !
     222                            }
     223                        }
     224
     225                        if (asks.find("g")!=string::npos)
     226                        {
     227                            Pos=ExtractPosition2(asks);
    207228
    208229                            strcpy(chaine,"ACK/GOTO/\n");
     
    224245                            else
    225246                            {
    226                                 strcpy(chaine, "ERR/HALT/GOTO/\n");   //erreur moteur !
    227                             }
    228                         }
    229 
    230                         if (asks.find("PARK")!=string::npos)
     247                                strcpy(chaine, "NACK/HALT/GOTO/\n");   //erreur moteur !
     248                            }
     249                        }
     250
     251                        if (asks.find("pa")!=string::npos)
    231252                        {
    232253
     
    242263                            else
    243264                            {
    244                                 strcpy(chaine, "ERR/HALT/PARK/\n");   //erreur
    245                             }
    246                         }
    247 
    248                         if (asks.find("ABORT")!=string::npos)
     265                                strcpy(chaine, "NACK/HALT/PARK/\n");   //erreur
     266                            }
     267                        }
     268
     269                        if (asks.find("a")!=string::npos)
    249270                        {
    250271
     
    260281                            else
    261282                            {
    262                                 strcpy(chaine, "ERR/HALT/ABORT/\n");   //erreur
     283                                strcpy(chaine, "NACK/HALT/ABORT/\n");   //erreur
    263284                            }
    264285                        }
  • BAORadio/libindi/libindi/drivers/telescope/BAO.cpp

    r493 r494  
    893893            // On traite ici les acknowledges
    894894           
    895             if (reponse.find("ACK")!=string::npos)
     895            if ((reponse.find("ACK")!=string::npos) && (reponse.find("NACK")==string::npos))
    896896            {
    897               if (reponse.find("STATUS")!=string::npos)
     897              /*if (reponse.find("STATUS")!=string::npos)
    898898              {
    899899                Sockets[i].ack_status=true;
    900               }
    901               else if (reponse.find("POS")!=string::npos)
     900              } else*/
     901              if (reponse.find("POS")!=string::npos)
    902902              {
    903903                Sockets[i].ack_pos=true;
     
    919919            {
    920920              //réponse à la requête STATUS
    921               if (reponse.find("STATUS")!=string::npos)
     921              /*if (reponse.find("STATUS")!=string::npos)
    922922              {
    923923                if (reponse.find("READY")!=string::npos)
     
    930930                }
    931931               
    932               }//réponse à la requête POSITION
    933               else if (reponse.find("POS")!=string::npos)
    934               {
    935                 if (reponse.find("ERR")!=string::npos)
     932              } else*/
     933              //réponse à la requête POSITION
     934              if (reponse.find("POS")!=string::npos)
     935              {
     936                if (reponse.find("NACK")!=string::npos)
    936937                {
    937938                  OnCoordSetSP.s = IPS_ALERT;
     
    954955              else if (reponse.find("PARK")!=string::npos)
    955956              {
    956                 if (reponse.find("ERR")!=string::npos)
     957                if (reponse.find("NACK")!=string::npos)
    957958                {
    958959                  ParkSP.s = IPS_ALERT;
     
    967968              else if (reponse.find("ABORT")!=string::npos)
    968969              {
    969                 if (reponse.find("ERR")!=string::npos)
     970                if (reponse.find("NACK")!=string::npos)
    970971                {
    971972                  AbortSlewSP.s = IPS_ALERT;
     
    982983              else if (reponse.find("GOTO")!=string::npos)
    983984              {
    984                 if (reponse.find("ERR")!=string::npos)
     985                if (reponse.find("NACK")!=string::npos)
    985986                {
    986987                  OnCoordSetSP.s = IPS_ALERT;
     
    11441145          {
    11451146            //Envoi des requêtes STATUS
    1146             case 0 :
     1147            /*case 0 :
    11471148            {
    11481149              Sockets[i].AttenteExecution=0;
     
    12291230              }
    12301231            }
    1231             break;
     1232            break;*/
    12321233           
    12331234            //Envoi de la commande POS
    1234             case 3 :
     1235            case 0 :
    12351236            {
    12361237              Sockets[i].ack_pos=false;
     
    12441245           
    12451246            //ack POS
    1246             case 4 :
     1247            case 1 :
    12471248            {
    12481249              if (Sockets[i].ack_pos)
     
    12601261                if (Sockets[i].AttenteExecution>MAXATTENTE)
    12611262                {
    1262                   Sockets[i].etape=3;
     1263                  Sockets[i].etape=0;
    12631264                  Sockets[i].AttenteExecution=0;
    12641265                  Sockets[i].AnomaliesExecution++;
     
    12671268                if (Sockets[i].AnomaliesExecution>MAXANOMALIES)
    12681269                {
    1269                   Sockets[i].etape=6;
     1270                  Sockets[i].etape=3;
    12701271                 
    12711272                  if ( compt % 1000 == 0)
     
    12811282           
    12821283            //Valeurs pos valides ?
    1283             case 5 :
     1284            case 2 :
    12841285            {
    12851286              if (Sockets[i].PosValides)
     
    13031304                if (Sockets[i].AnomaliesExecution>MAXANOMALIES)
    13041305                {
    1305                   Sockets[i].etape=6;
     1306                  Sockets[i].etape=3;
    13061307                 
    13071308                  if ( compt % 1000 == 0)
     
    13311332        if (Sockets[i].sendalertes > 0)
    13321333        {
    1333           Sockets[i].etape=6;
     1334          Sockets[i].etape=3;
    13341335         
    13351336          if ( compt % 1000 == 0)
     
    13511352      for (int i=1; i<SocketsNumber; i++) if (Sockets[i].Connected)
    13521353      {
    1353         if (Sockets[i].etape == 6) num++; //fin de la procédure LecturePosition. Les antennes sont prêtes
     1354        if (Sockets[i].etape == 3) num++; //fin de la procédure LecturePosition. Les antennes sont prêtes
    13541355          //à recevoir l'ordre GOto
    13551356      }
     
    13611362          Sockets[i].ack_goto=false;
    13621363         
    1363           if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++;
     1364          //pour tester le programme de François, on envoie ces coordonnees sur sa demande
     1365           if (!GOTO(i, 1000, -3000)) Sockets[i].sendalertes++;
     1366         
     1367          //if (!GOTO(i, TargetPosition.x, TargetPosition.y)) Sockets[i].sendalertes++;
    13641368         
    13651369          Sockets[i].etape++;
     
    16171621  bool BAO::STATUS(int numsocket)
    16181622  {
    1619     return COMMANDE(numsocket, (char*)"STATUS", (char*)"");
     1623    return COMMANDE(numsocket, (char*)"s", (char*)"");
    16201624  }
    16211625 
     
    16261630  bool BAO::POSITION(int numsocket)
    16271631  {
    1628     return COMMANDE(numsocket, (char*)"POS", (char*)"");
     1632    return COMMANDE(numsocket, (char*)"p", (char*)"");
    16291633  }
    16301634 
     
    16351639  bool BAO::PARK(int numsocket)
    16361640  {
    1637     return COMMANDE(numsocket, (char*)"PARK", (char*)"");
     1641    return COMMANDE(numsocket, (char*)"p", (char*)"");
    16381642  }
    16391643 
     
    16441648  bool BAO::ABORT(int numsocket)
    16451649  {
    1646     return COMMANDE(numsocket, (char*)"ABORT", (char*)"");
     1650    return COMMANDE(numsocket, (char*)"a", (char*)"");
    16471651  }
    16481652 
     
    16551659  {
    16561660    char Params[MAXCARACTERES];
    1657    
    1658     int sensAlt=0;
    1659     int sensAz=0;
     1661    char sensAz;
     1662    char sensAlt;
     1663   
     1664    sensAlt='f';
     1665    sensAz='f';
    16601666   
    16611667    if (deltaAz<0)
    16621668    {
    16631669      deltaAz=-deltaAz;
    1664       sensAz=1;
     1670      sensAz='b';
    16651671    }
    16661672   
     
    16681674    {
    16691675      deltaAlt=-deltaAlt;
    1670       sensAlt=1;
    1671     }
    1672    
    1673     sprintf(Params, "/%i/# %i Az/%i/# %i Alt", sensAz, deltaAz, sensAlt, deltaAlt);
    1674    
    1675     return COMMANDE(numsocket, (char*)"GOTO", Params);
    1676   }
    1677  
    1678  
    1679  
     1676      sensAlt='b';
     1677    }
     1678   
     1679    sprintf(Params, "%c%03i%c%03i", sensAz, deltaAz, sensAlt, deltaAlt);
     1680   
     1681    return COMMANDE(numsocket, (char*)"g", Params);
     1682  }
     1683 
     1684 
     1685 
Note: See TracChangeset for help on using the changeset viewer.