Ignore:
Timestamp:
Sep 13, 2012, 10:00:35 PM (13 years ago)
Author:
frichard
Message:

Version 0.62

Location:
BAORadio/libindi/libindi/drivers/telescope
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • BAORadio/libindi/libindi/drivers/telescope/BAO.cpp

    r691 r693  
    130130    targetAlignmentIP     = -1;
    131131
     132    // Ces deux variables définissent un intervalle où l'azimut (exprimée en pas codeur)
     133    // de l'object pointé va évoluer au cours du suivi...
     134
     135    azmincodeur = MINAZCODEURS;
     136    azmaxcodeur = MAXAZCODEURS;
     137
    132138
    133139    // initialisation des sockets (Antennes)
     
    229235        time ( &rawtime );
    230236        timeinfo = localtime ( &rawtime );
    231         strftime (buffer,80,"%c    ",timeinfo);
    232         fprintf(pFile, buffer);
     237        strftime (buffer, 80,"%c    ",timeinfo);
     238        fprintf(pFile, "%s", buffer);
    233239
    234240        // On sauvegarde le message dans le fichier log
     
    604610        if (eqp == &CommandT[0])
    605611        {
    606             char chaine[100];
     612            char chaine[1000];
    607613
    608614            bool result = false;
     
    616622                for (int i = 1; i<=strlen(chaine); i++) chaine[i-1]=chaine[i];
    617623
    618                 IDLog(chaine);
     624                IDLog("%s", chaine);
    619625
    620626                for (int i = 1; i<SocketsNumber; i++ )
     
    646652            else if (chaine[0] == 'M')
    647653            {
     654                IDSetText(&CommandTP, "Calcul des matrices de correction\n" );
     655
    648656                if  (Sockets[targetAlignmentIP].AlignementAntenne->nbrcorrections >=3 )
    649657                {
     
    657665                    Sockets[targetAlignmentIP].AlignementAntenne->Matrice_ok = false;
    658666                }
    659 
    660                 IDSetText(&CommandTP, "Calcul des matrices de correction\n" );
    661667            }
    662668            else if (chaine[0] == 'O')
     
    666672                if (targetAlignmentIP != -1)
    667673                {
    668                     Sockets[targetAlignmentIP].AlignementAntenne->OptimisationGeometrieAntenne();
     674                    Sockets[targetAlignmentIP].AlignementAntenne->OptimisationGeometrieAntenne(true);
     675
     676                    IDSetSwitch(&AlignementOkP, "Les parametres de l alignement ont ete sauvegardes apres optimisation");
     677
     678                    Sockets[targetAlignmentIP].AlignementAntenne->EnregistrementParametresAlignement(
     679                        Sockets[targetAlignmentIP].IP,
     680                        "/home/" + (string)getenv("USER") + "/AlignementAntennes.cfg");
    669681                }
    670682            }
     
    785797                    }
    786798
    787 
    788 
    789 
    790                     IDSetText(&CommandTP, os.str().c_str() );
     799                    IDSetText(&CommandTP, "%s", os.str().c_str() );
    791800
    792801                    return;
     
    15031512                        DHMS(targetDEC, false     ).c_str());
    15041513
    1505             AfficherLog("ad1=%s de1=%s ad2=%s de2=%s\n",
     1514            AfficherLog("(ad1=%s de1=%s) -> (ad2=%s de2=%s)\n",
    15061515                        DHMS(ad  * N180divPi, true ).c_str(),
    15071516                        DHMS(de  * N180divPi, false).c_str(),
     
    17221731    Coord result, vect;
    17231732
     1733   
    17241734    // Pour toutes les antennes connectées
    17251735
     
    17951805                    newRA  = Sockets[i].AlignementAntenne->delta_ad[Sockets[i].AlignementAntenne->nbrcorrections];
    17961806                    newDEC = Sockets[i].AlignementAntenne->delta_de[Sockets[i].AlignementAntenne->nbrcorrections];
     1807                   
     1808                    // if newRA et newDEC = 0 -> on sort
     1809   
     1810                    if ( newRA == 0 && newDEC == 0) return;
    17971811
    17981812                    AfficherLog("Alignement en cours.\n", true);
     
    19331947                // On applique la formule de Marc pour convertir la hauteur en nombre de pas codeur alt
    19341948
    1935                 Sockets[i].TargetPosition.y = (long int) Arrondi( Sockets[i].AlignementAntenne->Alt2Motor( targetAlt ) );
     1949                Sockets[i].TargetPosition.y = (int) Arrondi( Sockets[i].AlignementAntenne->Alt2Motor( targetAlt ) );
    19361950
    19371951                //4000 pas pour 360° sur l'axe az
    19381952
    1939                 Sockets[i].TargetPosition.x = (long int) Arrondi( targetAz * (double)NBREPASCODEURSAZ / 360.0);
     1953                Sockets[i].TargetPosition.x = (int) Arrondi( targetAz * (double)NBREPASCODEURSAZ / 360.0);
    19401954
    19411955                // On ajoute les deltas en AZ et en HA pour la raquette hors procédure d'alignement
     
    19521966
    19531967                if ( azmincodeur < MINAZCODEURS ) {
     1968                    azmincodeur += NBREPASCODEURSAZ;
     1969                    azmaxcodeur += NBREPASCODEURSAZ;
     1970                    //  AutoriserTourComplet = true;
     1971                    AfficherLog("azmincodeur < MINAZCODEURS\n");
     1972                }
     1973
     1974                if ( azmaxcodeur > MAXAZCODEURS ) {
     1975                    azmincodeur -= NBREPASCODEURSAZ;
     1976                    azmaxcodeur -= NBREPASCODEURSAZ;
     1977                    // AutoriserTourComplet = true;
     1978                    AfficherLog("azmaxcodeur > MAXAZCODEURS\n");
     1979                }
     1980
     1981                AfficherLog("Intervalle autorise pour le suivi de l objet en azimut [%i..%i]\n", azmincodeur, azmaxcodeur );
     1982                AfficherLog("Position initiale en Az = %i\n", Sockets[i].TargetPosition.x);
     1983
     1984                if ( Sockets[i].TargetPosition.x < azmincodeur ) {
    19541985                    Sockets[i].TargetPosition.x += NBREPASCODEURSAZ;
    19551986                    AutoriserTourComplet = true;
    1956                      AfficherLog("test1\n");
    1957 
     1987                    AfficherLog("TargetPosition.x < azmincodeur\n");
    19581988                }
    19591989
    1960                 if ( azmaxcodeur > MAXAZCODEURS ) {
     1990                if ( Sockets[i].TargetPosition.x > azmaxcodeur ) {
    19611991                    Sockets[i].TargetPosition.x -= NBREPASCODEURSAZ;
    19621992                    AutoriserTourComplet = true;
    1963                     AfficherLog("test2\n");
    1964 
     1993                    AfficherLog("TargetPosition.x > azmaxcodeur\n");
    19651994                }
    19661995
    1967                  if ( Sockets[i].TargetPosition.x < MINAZCODEURS ) {
     1996                if ( Sockets[i].TargetPosition.x < MINAZCODEURS ) {
    19681997                    Sockets[i].TargetPosition.x += NBREPASCODEURSAZ;
    19691998                    AutoriserTourComplet = true;
    1970                     AfficherLog("test3\n");
    1971 
     1999                    AfficherLog("TargetPosition.x < MINAZCODEURS\n");
    19722000                }
    19732001
     
    19752003                    Sockets[i].TargetPosition.x -= NBREPASCODEURSAZ;
    19762004                    AutoriserTourComplet = true;
    1977                     AfficherLog("test4\n");
    1978 
     2005                    AfficherLog("TargetPosition.x > MAXAZCODEURS\n");
    19792006                }
    19802007
     2008                if (fabs(Sockets[i].Pos.x - Sockets[i].TargetPosition.x) > MAXAZCODEURS / 2)
     2009                {
     2010                    AutoriserTourComplet = true;
     2011                    AfficherLog("| Pos.x - TargetPosition.x | > MAXAZCODEURS / 2\n");
     2012                }
     2013
    19812014                // Message de debug
    19822015
    1983                 AfficherLog("Intervalle autorise pour le suivi de l objet [%i..%i]\n", azmincodeur, azmaxcodeur);
    1984 
    1985                 AfficherLog("Positions codeurs Az = %i  Alt = %i\n", Sockets[i].TargetPosition.x, Sockets[i].TargetPosition.y);
     2016                AfficherLog("Position finale :  Az = %i  Alt = %i\n", Sockets[i].TargetPosition.x, Sockets[i].TargetPosition.y);
    19862017            }
    19872018        }
     
    29212952bool BAO::process_coords()
    29222953{
     2954    int posaz = 0;
     2955
    29232956    switch (currentSet)
    29242957    {
     
    29402973        // les rotations inutiles
    29412974
    2942         RechercheAzimutFinSuivi(targetRA * 15.0 * Pidiv180, targetDEC * Pidiv180, &azmincodeur, &azmaxcodeur);
     2975        for (int i=1; i<SocketsNumber; i++ )
     2976        {
     2977            if ((Sockets[i].Connected) && (Sockets[i].PosValides))
     2978            {
     2979                posaz = Sockets[i].Pos.x;
     2980                break;
     2981            }
     2982        }
     2983
     2984        RechercheAzimutFinSuivi(targetRA * 15.0 * Pidiv180, targetDEC * Pidiv180, posaz, &azmincodeur, &azmaxcodeur);
    29432985
    29442986        // On prépare les antennes pour le prochain goto
     
    29903032        // les rotations inutiles
    29913033
    2992         RechercheAzimutFinSuivi(targetRA * 15.0 * Pidiv180, targetDEC * Pidiv180, &azmincodeur, &azmaxcodeur);
     3034        for (int i=1; i<SocketsNumber; i++ )
     3035        {
     3036            if ((Sockets[i].Connected) && (Sockets[i].PosValides))
     3037            {
     3038                posaz = Sockets[i].Pos.x;
     3039                break;
     3040            }
     3041        }
     3042
     3043        RechercheAzimutFinSuivi(targetRA * 15.0 * Pidiv180, targetDEC * Pidiv180, posaz, &azmincodeur, &azmaxcodeur);
    29933044
    29943045        InitAntennes();
     
    32033254
    32043255    // ne pas faire des tours complets en Az pour rien...
    3205    
    3206      // Corrections sup pour rester dans l'intervalle [-1693.. 3867]
    3207 
    3208      AfficherLog("deltaAz1=%i\n", deltaAz, true);
    3209        
     3256
     3257    // Corrections sup pour rester dans l'intervalle [-1693.. 3867]
     3258
     3259    AfficherLog("deltaAz1=%i\n", deltaAz, true);
     3260
    32103261    while (deltaAz > NBREPASCODEURSAZ) deltaAz -= NBREPASCODEURSAZ;
    32113262
    3212    
     3263
    32133264    //TODO : a verifier en details
    3214  
     3265
    32153266    if ( !AutoriserTourComplet )
    32163267    {
     
    32253276        }
    32263277    }
    3227    
     3278
    32283279    AfficherLog("deltaAz2=%i\n", deltaAz, true);
    32293280
  • BAORadio/libindi/libindi/drivers/telescope/BAO.h

    r691 r693  
    4545struct Position
    4646{
    47     long int x;
    48     long int y;
     47    int x;
     48    int y;
    4949};
    5050
     
    250250    BAO_STATUS  TrackingMode;            // Mode de suivi actuellement activé
    251251   
    252     long int azmincodeur;
    253     long int azmaxcodeur; 
     252    int azmincodeur;
     253    int azmaxcodeur; 
    254254   
    255255    int    targetAlignmentIP;
    256256   
    257     long int VitesseRaquette;
    258     long int delta_az;
    259     long int delta_ha;
     257    int VitesseRaquette;
     258    int delta_az;
     259    int delta_ha;
    260260   
    261261   
Note: See TracChangeset for help on using the changeset viewer.