source: BAORadio/libindi/libindi/BAOControl/baocontrol.h @ 513

Last change on this file since 513 was 504, checked in by frichard, 13 years ago

-Version 0.8 de libini
-Formule de Marc
-Nouvelles fonctionnalités (goto nom-de l'objet etc...)

File size: 4.9 KB
RevLine 
[504]1// Definition of the Astro BAOcontrol
2// Franck RICHARD
3// BAORadio
4
5#ifndef BAOcontrol_class
6#define BAOcontrol_class
7
8
[502]9#include <iostream>
10#include <string.h>
11#include <sstream>
12#include "ClientSocket.h"
13#include "SocketException.h"
14#include <stdio.h>
[504]15#include <stdlib.h>
[502]16#include <pthread.h>
17#include <X11/Xlib.h>
18#include "filetools.h"
[504]19#include "../drivers/telescope/astro.h"
[502]20#include "math.h"
21#include <time.h>
22#include <unistd.h>
23#include <sys/time.h>
24
25
[504]26// couleurs utilisées dans le terminal
[502]27
[504]28#define red1 "\033[0;31m"
29#define blue1 "\033[0;34m"
30#define green1 "\033[0;32m"
31#define black1 "\033[0;30m"
32#define grey1 "\033[1;30m"
33#define red2 "\033[1;31m"
34#define blue2 "\033[1;34m"
35#define green2 "\033[1;32m"
36#define black2 "\033[1;30m"
37#define grey2 "\033[1;37m"
38
39
40// limites des tableaux
41
[502]42#define MAXLOG 1000
43#define MAXOBJETS 100
[504]44#define MAXANTENNES 50
[502]45
46
[504]47//dimensions de la fenêtre graphique
48
49#define haut_fenetre 10+22*10
50#define larg_fenetre 605
51
[502]52using namespace std;
53
54
55struct DefAntenne
56{
[504]57    unsigned char ip;                   // Adresse ip d'une antenne
[502]58
[504]59    char ok;                            // actuellement disponible ?
[502]60};
61
[504]62// objets stockés dans le fichier de mouvements
63
[502]64struct DefObjets
65{
[504]66    double JJ;                          // Jour julien où le télescope doit aller pointer vers l'objet
67    double Duree;                       // Durée de l'observation de l'objet en sec
68    string ad;                          // Ascension droite J2000 de l'objet
69    string de;                          // déclinaison J2000 de l'objet
70    bool exec;                          // En cours d'exécution ?
[502]71};
72
73
74
[504]75class BAOcontrol : public Astro
76{
[502]77
[504]78public:
79    BAOcontrol();
80    ~BAOcontrol();
[502]81
[504]82    void *my_thread_process ();
83    int init(int argc, char **argv);
[502]84
85
[504]86private:
87    void Affiche(string chaine, bool AfficheEcran);
88    void Affiche(stringstream *Message, bool AfficheEcran);
89    void Erreur(string chaine);
90    void Erreur(stringstream *Message);
91    void initialiserFenetre();
92    void Dessiner();
93    void rouler();
94    void LireReponse();
95    bool VerifReponse(string reponseattendue);
96    void Update();
97    bool Decomposition(string chaine, char type, float *a1, float *a2, float *a3);
98    bool DecompositionCommande(string chaine, string commande, string *chaine1, string *chaine2);
99    bool EnvoyerCoordGeographiques();
100    bool Park();
101    bool Abort();
102    bool Goto(string ar, string dec, bool Transit, bool J2000);
103    bool Connect(bool connect);
104    bool LectureFichierMouvements(string fileName);
105    void DecodageEntreesUtilisateur(string chaine);
106    bool Run(string fichier);
107    bool ChargementParametres(string fileName);
108    Coordonnees ServeurNED(string objet);
109    int  readline (FILE * pfile, char *tab);
[502]110
111
112
[504]113    // Variables globales
[502]114
[504]115    XFontStruct * fd;                           // Police de caractÚres dans la fenêtre graphique
116
117    char ChoixCouleurs;                         // 1-pour un terminal à fond blanc    2-pour un terminal à fond noir
118
119    string logs[MAXLOG];                        // Sauvegarde de toutes les actions et réponses dans un tableau logs
120
121    int delaitransit;                           // Délai entre deux actualisations de la position en mode transit
122    int delaitracking;                          // Délai entre deux actualisations de la position en mode tracking
123    int lognum;                                 // Nbre d'enregistrements dans le tableau logs
124    int numAntenne;                             // Nbre d'antennes connectées
125    int numobjets;                              // Nbre d'objets dans le dernier fichier de mouvements chargé
126    int runnum;                                 // Numéro de l'objet actuellement visé dans le fichier de mouvement
127
128    double Pression;                            // Pression atmosphérique en mBar
129    double Temperature;                         // température de l'atmosphÚre
130
131    bool NoExit;                                // A-t-on tapé exit pour sortir ? Permet de fermer le thread à ce moment-là
132    bool Transit;                               // Si oui, le mode transit est activé, sinon, c'est le mode tracking
133    bool run;                                   // execute actuellement un fichier de mouvements
134    bool exitrun;                               // doit-on sortir du programme à la fin de l'execution de la commande run ?
135    bool J2000;                                 // est-ce que les coordonnées du fichier de mouvements sont en coordonnées J2000 ?
136
137    struct DefAntenne *Antennes;                // Sauvegarde de la situation actuelle de l'antenne i
138    struct DefObjets  *objets;                  // Liste des objets chargés depuis un fichier de mouvements
139
140    string LatitudeChar;                        // Latitude du lieu d'observation. Chargée depuis le fichier de configuration
141    string LongitudeChar;                       // Longitude du lieu d'observation. Chargée depuis le fichier de configuration
142    string Serveur;                             // Nom ou IP du serveur faisant tourner indi_BAO. Par defaut c'est localhost
143    string Port;                                // Port utilisé pour connecter le serveur indi_BAO
144
145    ClientSocket *client_socket;                // Socket permettant la connexion avec le pilote indi_BAO
146
147    Display * d;                                // contexte graphique
148    Window w;                                   // fenêtre graphique
149    Pixmap db;                                  // copie de la fenêtre pour permettre une actualisation sans scintillement
150    GC noir, vert, rouge, gris;                 // couleurs utilisées dans la fenêtre graphique
151
152};
153
154#endif
Note: See TracBrowser for help on using the repository browser.