Home

Rapport de stage - Gaia - Laboratoire LAGRANGE

image

Contents

1. Vector VFIELD TYPE new Vector 10 VFIELD TYPE addE ement TRANSIT S RCH gt VFIELD TYPE addElement TRANSIT OBJ VFIELD TYPE addElement MICROLENSING VFIELD TYPE addElement CALIBRATION Vector VMOUNT TRACKING TYPE new Vector 10 VMOUNT TRACKING TYPE addElement SIDERAL VMOUNT TRACKING TYPE addElement ell VMOUNT TRACKING TYPE addElement SUN vw VMOUNT TRACKING TYPE addElement STOPY VYES_NO new Vector 10 VYES NO addElement YES VYES NO addElement NO Param trage de la Frame Framel setResizable false Framel setTitle GUI java Framel setSize 1250 900 Framel setLocationRelativeTo null Framel setDefaultCloseOperation JFrame EXIT ON CLOSE Container setLayout Cr ation des JLabel ainsi qu null des JTextfield utilis s pour receuillir les donn es new CreerJTextFieldDansContainer FIELD NAME 40 40 150 335 NumberFormat nombreFormat NumberFormat getNumberInstance new CreerJTextFieldDansContainer MOUNT ABS POSITION ALT 40 160 190 45 nombreFormat new CreerJTextFieldDansContainer 295 160 10 45 new Depend Teer EN ai 380 160 25 45 new CreerJTextFieldDansContainer 470 160 10 45 new CreerJTextFieldDansContainer SCIENCE STAR INFO pmRA 40 280 200 100 new CreerJTextFieldDansContainer pmDE 385 280 40 100 new CreerJTextFi
2. N D PARTEMENT R SEAUX ET Universit Ep Institut tr TELECOMMUNICATIONS TOER 1C SOPHIA ANTIPOLIS PR Ds Nice C te d Azur e Rapport de stage Rapport de stage r dig par Marc DUGUE PROMOTION 2010 2011 O Observatoire Observatoire de la c te d azur Laboratoire Hippolyte FIZEAU Parc Valrose er 06108 Nice cedex 02 T l 04 92 07 63 22 Responsable en entreprise M ABE Lyu Lyu Abe unice fr Tutrice l IUT Mme C line Theys Dominante stage Informatique 1 70 Universit de NICE SOPHIA ANTIPOLIS Institut Universitaire de Technologie D partement R seaux et T l communications 650 route des Colles 06560 Valbonne Tel 04 93 95 51 70 Fax 04 93 95 51 89 iutsoph unice fr Institut Universitaire de Technologie Nice C te d Azur ee Mise en place d outils d aide au pilotage et au traitement de donn es pour l exp rience ASTEP Antarctique D me C Stage effectu du 11 avril au 17 juin 2011 Volume 1 1 Rapport r dig par M Marc DUGUE tudiant en IUT d partement R amp T 2 me ann e Copies du pr sent document 1 copie M ABE 1 copie l IUT 1 copie l tudiant 2 70 Remerciements Je souhaite remercier l ensemble de l quipe du laboratoire Fizeau ainsi que l Observatoire de la C te d Azur pour m avoir accueilli et soutenu au cours de ces deux mois de stage et plus particuli rement M Abe pour m avoir donn la chance de pouvoir
3. catch IO el public BoutonValider unBoutonValider a Exception el TODO Auto generated catch block printStackTrace JButton unBoutonValider ddActionListener new BoutonListener 46 70 Annexe 5 ConversionDate import java util Calendar import com toedter calendar JDateChooser public class ConversionDate static Calendar calMyDate static JDateChooser uneDate static String DateConvertie Convertie une date choisie avec le calendrier JDateChooser en dat au format String si sous la forme AAAA MM JJ public ConversionDate JDateChooser uneDate calMyDate uneDate getCalendar int FormatMois int FormatJour Calendar MONTH 1 Calendar DATE FormatMois calMyDate ge FormatJour calMyDate ge cv CT String Jour String valueOf calMyDate get Calendar DATE String Mois String valueOf calMyDate get Calendar MONTH 1 String Annee String valueOf calMyDate get Calendar YEAR r Si num ro mois s l ctionn lt 10 ex Septembre mois 9 gt converti en 09 if FormatMois lt 10 Mois 0 FormatMois if FormatJour lt 10 Jour 0 FormatJour DateConvertie Annee Mois Jour 47 70 Annexe 6 CreerJComboBoxDansContainer import java util Vector import javax swing JComboBox import javax swing JLabel public class CreerJComboBoxDansContain
4. Bounds 600 100 650 700 ct ct PanelObservation add BoutonAction BoutonAction setBounds 0 350 150 25 Main ArrayListPanelObservation add PanelObservation NbJPanelObservation NbObservationt EFE ComboBoxObs setBounds 600 40 200 20 ComboBoxObs setModel new DefaultComboBoxModel VObservation Cr ation de la l re action pour l observation venant d tre cr e NouvelleAction PanelAction new JPanel PanelObservation add NouvelleAction PanelAction NouvelleAction PanelAction setLayout null NouvelleAction PanelAction setBounds 0 400 650 250 Premi reActionDeObservationCree 1 new CreerJTextFieldDansPanelAction Temps 0 25 150 100 64 70 new CreerJComboBoxDansPanelAction Type 0 55 150 100 VTypeAcquisition Premi reActionDeObservationCree 0 NouvelleAction NbJTextFieldDansUnPanelAction NouvelleAction NbJComboBoxDansUnPanelAction se ComboBoxAct new JComboBox VAction NouvelleObservation PanelObservation add ComboBoxAct ComboBoxAct setBounds 250 350 150 25 Main ArrayListComboBoxActions add ComboBoxAct Main ArrayListPanelAction add NouvelleAction PanelAction NbJPanelAction Ecoute des diff rents boutons new ObservationSelectionee ComboBoxObs new ActionSelectionee ComboBoxAct new NouvelleAction BoutonAction Si au moins une observatio
5. else Main ArrayListPanelObservation get ObservationSelectionee NumObservationint 1 setVisible false L op ration consiste en fait r aliser une sorte de d calage vers la gauche afin de supprimer l observation en trop Voici un sch ma montrant ArrayListPanelObservation ainsi que le num ro des panel d observation contenus dans cette ArrayList en fonction de l index mdr Jeff LN PanelObs fr D 3 JAN 25 70 Ici afin de supprimer PanelObservation num ro 2 on va d caler vers la gauche les panels 3 et 4 de mani res ce que le PanelObservation num ro 2 soit cras puis on supprimera le dernier panel Main ArrayListPanelObservation remove NouvelleObservation NbJPanelObservation 1 Apr s cela il faudra encore supprimer les JTextField et JComboBox pr sents dans les ArrayList et que comportaient ces panels for j3 0 4 lt NouvelleObservation NbJTextFieldDansUnPaneloObservation j Main ArrayListTextField remove CreerJTextFieldDansContainer NbJTextFieldDescripteurs 1 ObservationSelectionee NumObservationInt 1 NouvelleObservation NbJTextFieldDansUnPanelObservationt i for j 0 3 lt NouvelleObservation NbJComboBoxDansUnPanelObservation j Main ArrayListComboBox remove CreerJComboBoxDansContainer NbJComboBoxDescripteurs 1 ObservationSelectionee NumObservationInt 1 NouvelleObservation NbJComboBoxDansUnPanelObservation l Rappel Il y a dans le v ritable programme 20
6. Station de travail et OS Pour ce projet la majorit du travail s est effectu sur un ordinateur sous Windows 7 directement sur mon lieu de travail Documents Tout au long de ce projet j ai pu avoir acc s des documents qui m ont guid s et servi de r f rence pour aboutir au r sultat final attendu Je disposais en effet du manuel d utilisateur ASTEP400 comportant de nombreuses informations sur le formatage du fichier final celui ci devait en effet correspondre exactement a la lettre pr s au type de programme attendu par ASTEP400 Voici a quoi celui ci devait ressembler FIELD_NAME lt Canopus gt FIELD_TYPE lt TRANSIT gt FIELD_TIME_UTC_BOUNDARIES lt Boundary min 2009 12 07 14h00m00 000s Boundary max 2010 12 31 23h59m59 0005 gt MOUNT ABS POSITION lt ALT 0 00000 AZ 0 00000 gt MOUNT TRACKING TYPE lt SIDERAL gt SCIENCE STAR CRD lt RA 06 23 57 1 DEC 52 41 44 3 ICRS gt SCIENCE STAR INFO lt pmRA 19 990 pmDE 23 670 Parallax 10 430 RadVel 20 50 gt GUIDE STAR CRD lt RA 06 23 57 1 DEC 52 41 44 3 ICRS gt GUIDE STAR INFO lt pmRA 19 990 pmDE 23 670 Parallax 10 430 RadVel 20 50 gt FIELD RECOGNITION lt NO ExpTime ms 500 gt STORE ROI lt NO xc 256 yc 256 dx 128 dy 128 DataFolder D DataASTEP400 Microlensing gt OBS NAME lt Flats gt TRACK STAR lt NO Exp ms 2000 DetectionThreshold 1 gt OBS SERVOGUIDINGSETPOINT lt YES gt OBS_SERVOFOCUS lt NO gt
7. ficier d une description pr cise de la syntaxe de chaque champ ainsi que des valeurs pr d finies dont l utilisateur devait pouvoir avoir le choix 8 2 1 FIELD NAME Description sp cifie un nom ou un identificateur pour ce champ La valeur de ce descripteur n a pas d impact sur le fonctionnement du programme purement indicatif Format cha ne de 256 caract res au maximum pouvant contenir des espaces 8 2 2 HELD TYPE Description d finit le type d observation qui sera indiqu dans le header FITS des images La valeur de ce descripteur n a pour l instant pas d impact sur le fonctionnement du programme Format cha ne de 128 caract res au maximum dont on utilisera les valeurs pr d finies ci dessous Valeurs possibles TRANSIT_OBJ CALIBRATION Obervation de calibration flat fields s quences de darks Exemple de description pour les deux premiers champs Logiciel et ressources utilis s Eclipse Il m a t donn la possibilit de choisir les logiciels que je souhaitais afin de d velopper au mieux ce projet D j familier de l interface du logiciel Eclipse et satisfait des nombreuses fonctions qu il propose mon choix s est port sur celui ci Eclipse est un IDE Integrated Development Environment c est dire un outil disposant notamment d un compilateur d un diteur de texte d une interface graphique d di au d veloppement de programmes il s agit de plus d un logiciel libre 12 70
8. int uny int uneTaillexLabel int uneTaillexTextField Label new JLabel unLabel Textfield new JTextField 30 x unx y uny TaillexLabel uneTaillexLabel TaillexTextField uneTaillexTextField NouvelleObservation PanelObservation add Label Label setBounds x y TaillexLabel 20 NouvelleObservation PanelObservation add Textfield Textfield setBounds x TaillexLabel 10 y TaillexTextField 20 Chaque JTextField cr st ajout a l ArrayList ArrayListTextField et incr mente le NbJTextField qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList Main ArrayListTextField add Textfield BoutonValider NbJTextFieldt NbTotalJTexFieldDansPanel 56 70 Annexe 12 Main import java text NumberFormat import java util ArrayList import java util Vector import javax swing JButton import javax swing JComboBox import javax swing JFrame import javax swing JLabel import javax swing JPanel import javax swing JTextField import com toedter calendar JDateChooser public class Main static ArrayList lt JTextField gt ArrayListTextField static ArrayList lt JComboBox gt ArrayListComboBox static ArrayList lt JComboBox gt ArrayListComboBoxActions static ArrayList lt JPanel gt ArrayListPanelObservation static ArrayList lt JPanel gt ArrayListPanelAction static ArrayList lt JTextField gt ArrayListTextFieldDansP
9. 1 setVisible false Main ArrayList PanelObservation remove 69 70 NouvelleObservation NbJPanelObs ervation 1 for j 0 j lt NouvelleObservation NbJTextFieldDansUnPanelObservation j Main ArrayListTextField remov CreerJTextFieldDansContainer NbJTextFieldDescripteurs l ObservationSelectionee NumObservationInt 1 NouvelleObservation NbJTex tFieldDansUnPanelObservation 1l for j 0 j lt NouvelleObservation NbJComboBoxDansUnPanelObservation j Main ArrayListComboBox remove CreerJComboBoxDansContainer NbJComboBoxDescripteurs l ObservationSelectionee NumObservationInt 1 NouvelleObservation NbJComboBoxDansUnPanelObservationt 1 NouvelleObservation i public SupprimerObservation JButton un unBoutonObservation addActionLis 70 70 NouvelleObservation VObservation remove NouvelleObservation VObservation size 1 NouvelleObservation ComboBoxObs setModel new DefaultComboBoxModel NouvelleObservation VObservation NouvelleObservation ComboBoxObs revalidate NouvelleObservation ComboBoxObs repaint NouvelleObservation NbObservation BoutonValider NbJTextField BoutonValider NbJTextField NouvelleObservation NbJTextFieldDansUnPanelObservation BoutonValider NbJComboBox BoutonValider NbJComboBox NouvelleObservation NbJComboBoxDansUnPanelObservation NouvelleObservation NbJPanelObservation BoutonObservation tener new
10. JTextField descripteurs et 18 JComboBox descripteurs leur index dans l ArrayList est fixe au contraire des JTextField contenues dans les diff rentes observations qui varient en fonction du nombre de JTextField par observation FIELD_NAME FIELD_TYPE TRANSIT_SRCH v Boundary min am 00 x oo Boundary max ca 00 oo MOUNT_ABS POSITION ALT AZ MOUNT_TRACKING_TYPE SIDERAL v SCIENCE_STAR_CRD coordRA o lo coordDE bo vfo Descripteurs SCIENCE_STAR_INFO pmRA pmDE Parallax RadVel GUIDE_STAR_CRD GUIDE STAR INFO pmDE RadVel FIELD_RECOGNITION ExpTime_ms STORE ROI xc dx 26 70 Explication de l op ration JTextField contenus dans Descripteurs Taille fixe l Observation n 2 Ce LE SE feb tb 32 JTextField contenus dans Observation n 1 Prenons pour un exemple l ArrayList ArrayListTextField Prenons un nombre de JTextField utilis pour la partie r serv e aux descripteurs gal 4 JTextField Supposons que chaque observation contienne 2 JTextField et que l on veuille supprimer l observation num ro 2 Dans notre exemple cela signifie supprimer les JTextField pr sents dans les index num ro 6 et 7 de l ArrayList c est dire ces indices correspondent au Nombre de descripteurs I Num ro de l observation 1 Nombre de JTextF
11. OBS COND SUNHEIGHT lt Sun height min deg none Sun height max deg none gt OBS COND UTC lt UTC min none UTC max none gt OBS COND PERIOD Period 000d01h00m00 000s Duration 000d00h10m00 000s gt REPEAT COUNT lt 1 gt SYSTEM lt FlatSequence 10 0 15000 8Mhz 1 gt OBS NAME lt Science gt TRACK STAR lt YES Exp ms 2000 DetectionThreshold 800 gt OBS SERVOGUIDINGSETPOINT lt YES gt OBS_SERVOFOCUS lt NO gt OBS COND SUNHEIGHT lt Sun height min deg none Sun height max deg none gt OBS COND UTC lt UTC min none UTC max none gt OBS COND PERIOD Period 000d00h00m00 000s Duration 000d00h00m00 000s gt REPEAT COUNT lt 1 gt CAMS lt Acquisition 15000 Science 8Mhz 0 1 gt CAMS lt Acquisition 15000 Science 8Mhz 0 1 gt CAMS lt Acquisition 15000 Science 8Mhz 0 1 gt CAMS lt Acquisition 15000 Science 8Mhz 0 1 gt CAMS lt Acquisition 15000 Science 8Mhz 0 1 gt CAMS lt Acquisition 15000 Dark 8Mhz 0 1 gt FIELD END Extrait du manuel d utilisateur ASTEP400 11 70 Ce fichier comporte deux sortes de donn es Les caract res fixes qui permettent de d crire le champ que le t lescope attend Ex FIELD NAME Les donn es variables saisies par l utilisateur pouvant tre une cha ne de caract re un nombre entier un choix parmi plusieurs possibilit s Ex lt Canopus gt YES NO De plus ce document m a galement permis de b n
12. entrainera la cr ation d un panel et r servera un nombre de places dans chaque ArrayList concern es gal au nombre d l ments du type contenu par cet ArrayList pr sents dans une observation public void actionPerformed ActionEvent e NbJTextFieldDansUnPanelObservation 0 NbJComboBoxDansUnPanelObservation 0 if ComboBoxObs null VObservation new Vector VObservation addElement Observation 1 PanelObservation new JPanel BoutonAction new JButton Nouvelle Action ComboBoxObs new JComboBox VObservation new CreerJTextFieldDansPanelObservation 0BS NAME 0 0 200 350 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation Exp ms 325 30 125 100 NbJTextFieldDansUnPanelObservation Main Container add ComboBoxObs Main Container add PanelObservation PanelObservation setLayout null PanelObservation setBounds 600 100 650 700 PanelObservation add BoutonAction BoutonAction setBounds 0 350 150 25 Main ArrayListPanelObservation add PanelObservation NbJPanelObservation NbObservation i ComboBoxObs setBounds 600 40 200 20 ComboBoxObs setModel new DefaultComboBoxModel VObservation Voici un extrait de NouvelleObservation on y voit la cr ation des diff rents composants graphiques ainsi que du panel PanelObservation 20 70 La condition if ComboBoxObs null a pour objectif de v rifier que la liste d roulante permettant de s lectionn
13. mener bien ce projet Je tiens galement remercier l ensemble de l quipe p dagogique de l IUT ainsi que ma tutrice l IUT Mme Theys pour les connaissances et l aide qu ils m ont apport es 3 70 Table des mati res REM FCI M NES En cddscdsucucsted cecedecansuetaauiadtannsdusnteesesstucessvencaustscusenceianedssausseniesvesteassoucestuebies 3 Pr sentation de l entreprise sc sccenccsscenscsoncashosvesdasutsesdonassedeoneseacecsussucenpespaddsmesbndyasasoncncbeapecnsnutestessaensee 5 Pr sentationduproet Lauarsareenmmk mnmninimeninense ant es n t een te ets boesseseusvesnseden 7 ADSTFACT EE EE EE EN 8 I Etude et organisation du projet seems 9 l Objectif du Pr v are 9 2 Principe de fonctionnement d une observation ssrrrrnrervrrrrnrrrnvrrrnrerrrrrrrnernnrernrersrsssenressrrnneseenn 9 3 Choix du langage informatique ss ie cul ee dE ee nt nn he 10 4 Logiciels et documents a disposition Lan Masai nant annee attes 11 5 Organisation du programme TES Re Ne re 13 IL Cr ation de l interface graphique esssesssesssesssoossoossosesssesssesssoossoossoossssesssesssoossosssssssessssssssses 15 1 Cr ation des composants graphiques insiste ed AN NS NS NA de 15 2 Cr ation de la ne 17 3 Cr ation d une nouvelle observation Nr EG 18 4 Cr ation d une nouvell ACTION oneta aioa EERE AASER EEEE 21 II Analyse et traitement des donn eSs e ssessseoesoossoossssesssesssoossooesooesssesssesesoossoosssssessssssessso
14. permettra de retrouver l index d une certaine action dans l ArrayList contenant les diff rentes action prenons par exemple Ce LEE Ici la l re observation contient 3 actions la 2 me en contient 4 la 3 me en contient 3 et la 4 me observation contient 2 actions De cette mani re on pourra facilement retrouver l index correspondant l action s lectionn e en effet si l on veut retrouver l index de l action num ro 3 de l observation 3 il suffit d ajouter le nombre d actions des panel I et 2 soit 3 4 7 puis de rajouter le num ro de l action s lectionn e savoir 3 l index de l action num ro 2 de l observation 3 dans l ArrayList l ArrayListPanelAction est donc 7 3 10 Ainsi si l on veut rajouter une nouvelle action pour l observation num ro 3 celle ci sera ajout l index 11 de l ArrayList et le tableau sera mis a jour par l op ration NouvelleObservation TabNbActionPardbs ObservationSelectionee NumObservationInt 1 Conclusion L automatisation de la cr ation des diff rents l ments graphiques m a fait gagner un temps consid rable et m a galement permis d assurer la possibilit d int grer de nouveaux param tres d observations tout moment par l ajout simple d une ou deux lignes de code Cependant il restait encore cr er des m thodes destin s la gestion de toutes les donn es envoy es par l utilisateur 22 70 III Analyse et traitement des donn es Apr s la cr a
15. que le programme devait tre pens de mani re volutive car il ne faisait aucun doute que ce programme allait subir des modifications plus tard Exemple new CreerJTextFieldDansContainer FIELD NAME 40 40 150 335 Ici un JLabel contenant la cha ne de texte FIELD NAME positionn e en 40 40 dans le JPanel Container ainsi qu un JTextField sont cr s grace a la fonction CreerJTextFieldDansPanelObservation Les chiffres 150 et 335 correspondent respectivement la taille en x du JLabel et la taille en x du JTextField Le JTextField ainsi cr e est ajout l ArrayList ArrayListTextField collection contenant presque tous les JTextField du programme public CreerJTextFieldDansContainer String unLabel int unx int uny int uneTaillexLabel int uneTaillexTextField Label new JLabel unLabel Textfield new JFormattedTextField Main Container add Label Label setBounds unx uny uneTaillexLabel 20 Main Container add Textfield Textfield setBounds unxt uneTaillexLabel 10 uny uneTaillexTextField 20 Chaque JTextField cr e est aj le NbJTextField qui sera uti Er jans l ArrayList m g fa Ei pour Main ArrayListTextField add Textfield BoutonValider NbJTextField NbJTextFieldDansContainer Voici le code d un constructeur de la classe CreerJTextFieldDansContainer On y voit la cr ation d un Label d une zone de texte ainsi que leur ajout au Panel Conta
16. uny int uneTaillexLabel int uneTaillexComboBox Vector unChoix Label new JLabel unLabel ComboBox new JComboBox unChoix x unx y uny TaillexLabel uneTaillexLabel TaillexComboBox uneTaillexComboBox Main Container add Label Label setBounds x y TaillexLabel 20 Main Container add ComboBox ComboBox setBounds x TaillexLabel 10 y TaillexComboBox 20 Chaque JComboBox cr e est ajout l ArrayList ArrayListComboBox et incr mente le NbJComboBox qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList Main ArrayListComboBox add ComboBox BoutonValider NbJComboBox BoutonValider NbJComboBox l NbJComboBoxDescripteurs 50 70 Annexe 7 CreerJComboBoxDansPanelAction import java util Vector import javax swing JComboBox import javax swing JLabel public class CreerJComboBoxDansPanelAction static JLabel Label static JComboBox ComboBox int int y int TaillexLabel int TaillexComboBox int i public CreerJComboBoxDansPanelAction String unLabel int unx int uny int uneTaillexLabel int uneTaillexComboBox Vector unChoix Label new JLabel unLabel ComboBox new JComboBox unChoix x unx y uny TaillexLabel uneTaillexLabel TaillexComboBox uneTaillexComboBox NouvelleAction PanelAction add Label Label setBounds x y Tai
17. ArrayListPanelAction add PositionActionaRajouter PanelAction NouvelleObservation NbJPanelAction int i Main ArrayListComboBoxActions get ObservationSelectionee NumObservationInt 1 getItemCount 1 VNumeroAction new Vector for j 1 4 lt i j VNumeroAction addElement Action j Incr mentation du nombre d action pour cette observation NouvelleObservation TabNbActionParObs ObservationSelectionee NumObservationInt 1 Main ArrayListComboBoxActions get ObservationSelectionee NumObservationInt 1 setModel new DefaultComboBoxModel VNumeroAction public NouvelleAction JButton unBoutonAction unBoutonAction addActionListener new ActionButtonListener 61 70 Annexe 14 NouvelleObservation import java awt event ActionEvent import java awt event ActionListener import java util Vector import javax swing DefaultComboBoxModel import javax swing JButton import javax swing JComboBox import javax swing JPanel public class NouvelleObservation static JComboBox ComboBoxObs static JComboBox ComboBoxAct static JButton BoutonAction static Vector VObservation static Vector VAction static Vector VTypeAcquisition static int i 1 static JPanel PanelObservation static JPanel PanelAction static String TabGetPanelObservation new String 50 static int TabNbActionParObs new int 100 static int NbJPanelObservation 0 static int Nb
18. Box Ecrit dans le fichier le contenu d TabGetComboBox cptAjoutChampComboBox rep sentant le contenu du JComboBox n cptAjoutChampComboBox transform en String BoutonValider out write BoutonValider TabGetComboBox BoutonValider CptAjoutChampComboBox BoutonValider CptAjoutChampComboBox 37 70 Annexe 3 AjoutValeurJTextField public class AjoutValeurJTextfield public AjoutValeurJTextfield Ecrit dans le fichier le contenu d TabGetTextField cptAjoutChampTextField rep sentant le contenu du JTextField n cptAjoutChampTextField transform en String BoutonValider out write BoutonValider TabGetTextField BoutonValider CptAjoutCham pTextField BoutonValider CptAjoutChampTextField 38 70 import java import java import java import java import java import java import j import j public class static static static static static static static static static static String String String int int int int int int int int Annexe 4 BoutonValider awt event ActionEvent awt event ActionListener io File io FileWriter io IOException io PrintWriter javax swing JOptionPane javax swing JButton BoutonValider int NbJTextField 0 int NbJComboBox 0 int CptAjoutChampTextField 0 int CptAjoutChampComboBox 0 PrintWriter out String Tab
19. Cipi res Rustrel Laboratoire Souterrain Bas Bruit Ses missions sont Contribuer au progr s de la connaissance par le recherche fondamentale et appliqu e Contribuer la formation initiale et continue tudiants et chercheurs Contribuer la diffusion de la culture scientifique Directeur Andr Ferrari Directeur Adjoint Dens Mourard Equipes scientifiques Services g n raux Structure de direction ESOM Environne ments Stellaires Equipe Techni ue Obs rations Mod bation resp Phili Conseilde laboratoire Anim Dens Mourad urs pe na ne MS Ra Bureau Fzeau e andre Ferrari ingenieur syst me Recherche P hysiq ve en Instrume ntation resp Romein Petrov Equipe Ad ministrative ec The Ferari resp 4 Cheron 6 adminstratifs onad min amp trative nfire e Comit de suri de projets z tariat d enseignement resp Lyu Abe M thodes pour l Astronomk et Traitement de l Image et du Signal resp C Theys Feran eur merite Correspondant formation Hygiene et s curit fants Sebastien Ottogslli ACMO C cile Combier Dans le cadre de mon stage j ai t accueilli dans l quipe de Recherche en physique Instrumentale RPI du laboratoire Fizeau Le principal objectif de l quipe de RPI est de d velopper des outils mat riels ainsi que des logiciels susceptibles d am liorer les performances des m thodes d observations Cela inclut de nombreux domaines tels que la r solution an
20. Code effectu e lorsque qu une Action est s l ctionn e class ActionComboBoxListener implements ItemListener public void itemStateChanged ItemEvent e int 1 for i 0 i lt NouvelleObservation NbJPanelAction l i Main ArrayListPanelAction get i setVisible false R cup ration du num ro de l action s l ctionn e NumActionString Main ArrayListComboBoxActions get ObservationSelectionee NumObservationInt 1 getSelectedItem toString substring 6 7 NumActionInt Integer parseInt NumActionString Calcul du num ro de l index du panel s l ctionn for i 0 i lt ObservationSelectionee NumObservationInt l i IndexPanelActionARecuperer IndexPanelActionARecuperer tNouvelleObservation TabNbActionParObs i IndexPanelActionARecuperer IndexPanelActionARecuperer NumActionInt Main ArrayListPanelAction get IndexPanelActionARecuperer 1 setVisible true JTextField TextFieldtest new JTextField Main Container add TextFieldtest 35 70 TextFieldtest setBounds 0 25 150 20 TextFieldtest setText IndexPanelActionARecuperer 1 NumActionInt IndexPanelActionARecuperer 0 public ActionSelectionee JComboBox uneJComboBox uneJComboBox addItemListener new ActionComboBoxListener 36 70 Annexe 2 AjoutValeurJComboBox public class AjoutValeurJComboBox public AjoutValeurJCombo
21. ELD NAME lt dans le fichier AANA ee En AAA RAK WAAR Ici il y a criture dans le fichier cible c A fichier_observation txt des caract res FIELD NAME lt Utilisation des valeurs contenues dans les diff rents tableaux On a ici cr une nouvelle classe afin de rendre plus simple l acc s aux donn es du tableau public class AjoutValeurJTextfield public AjoutValeurJTextfield de TabGetTextField cptAjoutChampTextField repesentant ANA PARA AAA Ecrit dans le fichier le contenu le joutChampTextField transform en String du JTextField n cptA BoutonValider out write BoutonValider TabGetTextField BoutonValider CptAjoutChampTextField BoutonValider CptAjoutChampTextField Ainsi lorsque l on fait appel AjoutValeurJTextField celle ci crit directement la suite du fichier la valeur contenue dans la case num ro CptAjoutChampTextField du tableau TabGetTextField puis incr mente la valeur du Cpt 30 70 Autrement dit cette classe permet a chaque fois d ajouter le contenu de la case suivante du tableau TabGetTextField new AjoutValeurJTextfield out write gt out printin Ici donc AjoutValeurJTextField ajoutera dans le fichier le contenu de la case 0 du tableau CptAjoutChampTextField tant initialis 0 out printin permet de faire un retour la ligne dans le fichier texte Voici donc ce qu on obtient dans fichier_observati
22. ES NO Ajout du calendrier et des JComboxBox destin s aux horaires Container add DateChooserMin Container add LabelDateMin LabelDateMin setBounds 40 100 150 20 DateChooserMin setBounds 200 100 100 20 Container add DateChooserMax Container add LabelDateMax LabelDateMax setBounds 40 130 150 20 DateChooserMax setBounds 200 130 100 20 Ajout du bouton Valider Container add Valider Valider setBounds 150 800 150 25 Container add Debug Debug setBounds 450 800 150 25 Ajout du bouton Cr er Observation Container add Observation Observation setBounds 850 40 175 25 Ajout du bouton Supprimer Observation Container add SupprimerObservation SupprimerObservation setBounds 1050 40 175 25 Lancement des proc dures d coute new BoutonValider Valider new NouvelleObservation Observation new SupprimerObservation SupprimerObservation new Debug Debug Framel setContentPane Container Framel setVisible true 59 70 import import import import import import import import public static static static static static static static static Annexe 13 NouvelleAction java awt event ActionEvent Gikk Gi de he avax avax avax avax avax swing swing swing swing swing java util Vector Defaul
23. GetTextField new String 500 String TabGetTextFieldPanelActions new String 500 String TabGetComboBox new String 500 String TabGetComboBoxPanelActions new String 500 int CptAjoutChampTextFieldPanelActions 0 a TempTextField TempComboBox FichierCible er A fichier observation txt k l CptNumeroObservation 0 CptNum roAction 0 CptTabTextField 0 CptTabTextFieldPanelActions 0 CptTabComboBox 0 CptTabComboBoxPanelActions 0 File fichier new File FichierCible class BoutonListener implements ActionListener public void actionPerformed ActionEvent e Si pas de dates choisies affiche une erreur if Main DateChooserMax getCalendar null Main DateChooserMin getCalendar null Main DateChooserMax getCalendar before Main DateChooserMin getCalendar 39 70 JOptionPane showMessageDialog Main Container Dates choisies incorrectes Erreur JOptionPane ERROR_MESSAGE else Cr ation d un tableau r cuperant le contenu des diff rents JTextField stock s dans l ArrayList ArrayListTextField for k 0 k lt NbJTextField k TempTextField Main ArrayListTextField get k getText TabGetTextField CptTabTextField TempTextField CptTabTextField Cr ation d un tableau r cuperant le contenu des diff rents JCombo stock s dans l ArrayLis
24. JPanel Ly JTextField class NouvelleAction java awt event ActionListener ltComboBoxModel JButton JComboBox JTextField TextFieldAction JComboBox ComboBoxAct Vector VNumeroAction int i Lg JPanel PanelAction int PositionActionaRajouter int NbJTextFieldDansUnPanelAction 0 int NbJComboBoxDansUnPanelAction 0 class ActionButtonListener implements ActionListener Action effectu e lorsque l on clique sur le bouton Nouvelle Action public void actionPerformed ActionEvent a NbJTextFieldDansUnPanelAction 0 NbJComboBoxDansUnPanelAction 0 PanelAction new JPanel R cup ration de l observation actuellement s l ctionn e Main ArrayListPanelObservation get ObservationSelectionee NumObservationInt 1 add PanelAction PanelAction setLayout null PanelAction setBounds 0 400 650 250 PositionActionaRajouter 0 PositionActionaRajouter NouvelleObservation TabNbActionParObs 0 Calcul de l index de ArrayListPanelAction auquel rajouter ce nouveau panel 60 70 if ObservationSelectionee NumObservationInt 1 for i 1 i lt ObservationSelectionee NumObservationInt 17i PositionActionaRajouter PositionActionaRajouter NouvelleObservation TabNbActionParObsl il new CreerJTextFieldDansPanelAction Temps 0 25 150 100 new CreerJComboBoxDansPanelAction Type 0 55 150 100 NouvelleObservation VTypeAcquisition Main
25. JPanelAction 0 static int NbObservation 0 static int NbJTextFieldDansUnPanelObservation 0 static int NbJComboBoxDansUnPanelObservation 0 static int declencheur 0 static int Premi reActionDeObservationCree 0 class ObservationButtonListener implements ActionListener public void actionPerformed ActionEvent e NbJTextFieldDansUnPanelObservation 0 NbJComboBoxDansUnPanelObservation 0 VAction new Vector VAction addElement Actionl int k Initialise le nombre d actions par observation a 1 pour toutes les observations if declencheur 0 for k 0 k lt 100 k TabNbActionParObs k 1 62 70 declencheur declencheur permet cet op ration de ne se d rouler qu une seule fois VTypeAcquisition new Vector VTypeAcquisition addElement Science VTypeAcquisition addElement Dark VTypeAcquisition addElement Bias Si la ComboBoxObs n existe pas autrement dit si aucune observation cr e if ComboBoxObs null VObservation new Vector VObservation addElement Observation i PanelObservation new JPanel BoutonAction new JButton Nouvelle Action ComboBoxObs new JComboBox VObservation Ajout des diff rents composants graphiques d une observation new CreerJTextFieldDansPanelObservation OBS NAME 0 0 200 350 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDan
26. JavaDoc La JavaDoc est une documentation regroupant les classes et m thodes de l dition standard de Java C est un outil dont je me suis tr s souvent servi sa consultation m a en effet permis de conna tre les syntaxes et utilisations des diff rentes classes et m thodes dont je pouvais avoir besoin pour mener terme mon projet 5 Organisation du programme Afin de programmer les diff rents aspects de ce projet j ai s par celui ci en diff rentes classes afin de simplifier sa r alisation ainsi le programme se compose de plusieurs classes dont les principaux objectifs sont les suivants Classes destin es automatiser la cr ation des diff rents composants graphiques JLabel composant contenant un texte JComboBox liste d roulante JTextField zone de texte Classes d coutes qui ont pour but d attendre que l utilisateur interagisse avec un certain l ment bouton Valider nouvelle observation Classes poss dant un aspect utilitaire comme convertir le format d une date ou bien g rer une collection Classe Main Le r sultat souhait devait tre volutif savoir par exemple l ajout de param tres devait pouvoir tre accompli facilement il tait important de pouvoir modifier simplement ce programme si besoin est Voici les principales tapes de la cr ation du fichier final extField 27 gt Graphical User Interface ArrayList Fichier Texte ee a Sc
27. Label 10 y 100 20 Main ArrayListComboBox add ComboBoxYesNo BoutonValider NbJComboBox BoutonValider NbJComboBoxt1 NbJComboBoxDansPanel 52 70 import import import import import public Annexe 9 CreerJTextFieldDansContainer java text NumberFormat javax swing JComboBox javax swing JFormattedTextField javax swing JLabel javax swing text MaskFormatter class CreerJTextFieldDansContainer static JLabel Label static JComboBox ComboBox static JFormattedTextField Textfield int x int y int TaillexLabel int TaillexTextField int TaillexComboBox static int NbJTextFieldDescripteurs 0 static MaskFormatter mask public CreerJTextFieldDansContainer String unLabel int unx int uny int uneTaillexLabel int uneTaillexTextField Label new JLabel unLabel Textfield new JFormattedTextField Main Container add Label Label setBounds unx uny uneTaillexLabel 20 Main Container add Textfield Textfield setBounds unxt tuneTaillexLabel 10 uny uneTaillexTextField 20 Chaque JTextField cr st ajout l ArrayList ArrayListTextField et incr mente le NbJTextField qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList Main ArrayListTextField add Textfield BoutonValider NbJTextFieldt NbJTextFieldDescripteurs Cr e un JLabel ainsi qu un JTextField dans Contai
28. ObservationSelectionee JComboBox uneJComboBox uneJComboBox addItemListener new ObservationComboBoxListener 68 70 Annexe 16 Suppri import import import import import java awt event ActionEvent java awt even javax swing Defaul javax swing JButton javax swing JPanel Ly public class SupprimerObservation class Supprimer public void actionPerfo int j V rifie si l o derni re obser if ObservationSel NouvelleObservat for j Obser 1 j lt Nouvell JPan merObservation t ActionListener ltComboBoxModel ButtonObservationListener implements ActionListener rmed ActionEvent e bservation s l ctionn e actuellement est la vation cr e ectionee NumObservationInt ion NbJPanelObservation vationSelectionee NumObservationInt eObservation NbJPanelObservation l j PanelTemp new JPanel Panel Main Panel Main setV Main Main Main SetV ouve SetS nm Temp ArrayListPanelObservation get j 1 nm Temp setBounds 600 100 650 700 ArrayListPanelObservation get j isible false Container add PanelTemp ArrayList PanelObservation set j PanelTemp ArrayList PanelObservation get j isible true ge lleObservation ComboBoxObs else ctedItem 0 Main ArrayListPanelObservation get ObservationSelectionee NumObservationInt
29. Panel Main ArrayListPanelObservation get ObservationSelectionee NumObservationInt 1 add PanelAction PanelAction setLayout null PanelAction setBounds 0 400 650 250 PositionActionaRajouter 0 PositionActionaRajouter NouvelleObservation TabNbActionParObs 0 if ObservationSelectionee NumObservationInt 1 for 1 1 1 lt ObservationSelectionee NumObservationInt l 1 PositionActionaRajouter PositionActionaRajouter NouvelleObservation TabNbActionPardbs i new CreerJTextFieldDansPanelAction Temps 0 25 150 100 new CreerJComboBoxDansPanelAction Type 0 55 150 100 NouvelleObservation VIypeAcquisition On voit ici qu un panel PanelAction est cr e puis ajout a l observation auquel il correspond puis positionn dans ce PanelObservation Apr s cela si l observation s lectionn e n est pas la premi re observation on utilise une boucle jusqu au num ro de cet observation en ajoutant chaque fois le contenu de l index correspondant du tableau TabNbActionParObs Ce tableau permet de stocker pour chaque observation le nombre d actions que celle ci contient 21 70 ainsi la case index 0 du tableau contient le nombres d action que l observation num ro 1 comprend L utilisation d une boucle it rative ne pose dans ce programme pas de probl me en effet le nombre de cr ations d actions d observations demand s ne sera jamais trop important et donc ne risque pas d utiliser trop de ressources Cela
30. PanelActions toutes les autres JTextField sont contenues dans ArrayListTextField et les JComboBox dans ArrayListComboBox Quant aux diff rents PanelObservation et PanelAction ils sont respectivement contenus dans ArrayListPanelObservation et ArrayListPanelAction Acc s au contenu et criture du fichier Chaque contenu de ces zone de textes et listes d roulantes est ensuite extrait des ArrayList par un ArrayList get unIndex Ces donn es extraites sont ensuite ins r es dans un tableau lors d un clique sur le bouton Validation Creation d un tableau recuperant le contenu des differents JTextField PAA FA s dans l ArrayList ArrayListTextField for k 0 k lt NbJTextField k I TempTextField Main ArrayListTextField get k getText TabGetTextField CptTabTextField TempTextField CptTabTextField 29 70 Ici un exemple est donn avec ArrayListTextField toutes les valeurs contenues dans les JTextField sont r cup r es une par une gr ce la m thode getText puis stock es dans le tableau TabGetTextField Ecriture du fichier d observation Une fois celles ci r cup r es dans le tableau il devient alors possible de les utiliser pour cr er le fichier texte criture dans le flux de caract res format s String FichierCible c A fichier observation txt File fichier new File FichierCible out new PrintWriter new FileWriter fichier out write FIELD NAME lt Ecrit FI
31. Sun height min SCIENCE STAR INFO pmRA pmDE Sun height max Parallax RadVel OBS_COND_UTC UTC min GUIDE_STAR_CRD UTC max GUIDE_STAR_INFO pmRA pmDE OBS COND PERIOD Period Parallax RadVel Duration FIELD_RECOGNITION YES ExpTime_ms EE STORE_ROI YES xe Nouvelle Action ye dx dy i Folder j Science v Container PanelObservation PanelAction Le carr vert correspondant la zone ou sont fix s les diff rents PanelAction l orange la zone o sont fix s les diff rents PanelObservation et le carr bleu correspondant au panel Container englobant les autre panels Presque tous les composants graphiques utilis s pour recueillir les donn es crire dans le le fichier texte final sont cr s avec une classe intitul e Cr er En effet ces classes permettent la cr ation rapide et intuitive des diff rents composants graphiques n cessaires les ajoutent a un JPanel les positionnent et g re leur dimensions Ces classes ont pour but de simplifier la cr ation des diff rents composants mais galement d automatiser l ajout de ces composants dans une ArrayList Les valeurs des diff rentes donn es remplies dans ces composants graphiques sont ensuite r cup r es et stock es dans un tableau afin 15 70 d tre r utilis es lors de la cr ation du fichier Une des raisons de la cr ation de ces classes est galement
32. SupprimerButtonObservationListener
33. TIME UTC BOUNDARIES lt Boundary min new ConversionDate Main DateChooserMin out write ConversionDate DateConvertie new AjoutValeurJComboBox out write h new AjoutValeurJComboBox out write m new AjoutValeurJComboBox out write s out write Boundary max new ConversionDate Main DateChooserMax out write ConversionDate DateConvertie new AjoutValeurJComboBox out write h new AjoutValeurJComboBox out write m new AjoutValeurJComboBox out write 000 out write Ss out write gt BoutonValider out println out write MOUNT ABS POSITION lt ALT new AjoutValeurJTextfield out write Formatage de ALT int temp Yi yj i Integer parseInt TabGetTextField CptAjoutChampTextField if temp lt 10 out write TabGetTextField CptAjoutChampText Field FE OODO 5 else if temp lt 100 out write TabGetTextField CptAjoutChampTextField 000 else if temp lt 1000 out write TabGetTextField CptAjoutChampTextField 41 70 at is else if temp lt 10000 out write TabGetTextField CptAjoutChampTextField MO else if temp gt 10000 TabGetTextField CptAjoutChampTextField TabGetTextField CptAjoutChampTextField substring 0 5 out write TabGetTextField CptAjoutChampTextField CptAjoutChampTextField out write AZ new AjoutValeurJTextfie
34. alider NbJComboBox 3 Cr e 3 JComboBox Heure Minute et Seconde accompagn d un Label avec une taille X param trable public CreerJComboBoxDansContainer String unLabel int unx int uny int uneTaillexLabel x unx y uny TaillexLabel uneTaillexLabel for i 0 i lt 24 i Heure addElement i for i 0 i lt 60 i Minute addElement i for i 0 i lt 60 i Seconde addElement dr Label new JLabel unLabel Main Container add Label Label setBounds x y TaillexLabel 20 ComboBox new JComboBox Heure 49 70 Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x TaillexLabel 10 y 75 20 ComboBox new JComboBox Minute Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x 75 TaillexLabel 10 y 75 20 ComboBox new JComboBox Seconde Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x 150 TaillexLabel 10 y 75 20 Chaque JComboBox cr e est ajout l ArrayList ArrayListComboBox et incr mente le NbJComboBox qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList BoutonValider NbJComboBox BoutonValider NbJComboBox 3 NbJComboBoxDescripteurs Cr e une JComboBox et un Label enti rement param trables public CreerJComboBoxDansContainer String unLabel int unx int
35. anelActions static ArrayList lt JComboBox gt ArrayListComboBoxDansPanelActions static JFrame Framel new JFrame static JPanel Container new JPanel static JButton Valider new JButton Valider static JButton Observation new JButton Nouvelle Observation static JButton SupprimerObservation new JButton Supprimer Observation static JButton Debug new JButton Debug static JDateChooser DateChooserMin new JDateChooser static JDateChooser DateChooserMax new JDateChooser static JLabel LabelDateMin new JLabel Boundary min static JLabel LabelDateMax new JLabel Boundary max static Vector VYES NO public static void main String args Cr ation des ArrayList utilis s pour stocker les JTextField JComboBox et JPanel ArrayListTextField new ArrayList lt JTextField gt ArrayListTextFieldDansPanelActions new ArrayList lt JTextField gt ArrayListComboBox new ArrayList lt JComboBox gt ArrayListPanelObservation new ArrayList lt JPanel gt ArrayListPanelAction new ArrayList lt JPanel gt ArrayListComboBoxActions new ArrayList lt JComboBox gt ArrayListComboBoxDansPanelActions new ArrayList lt JComboBox gt Cr ation des Vectors utilis s pour remplir les JComboBox 57 70
36. e xc new AjoutValeurJTextfield out write yc new AjoutValeurJTextfield out write dx new AjoutValeurJTextfield out write dy new AjoutValeurJTextfield out write DataFolder new AjoutValeurJTextfield out write gt BoutonValider out println else new AjoutValeurJComboBox out write gt BoutonValider out println CreerJTextFieldDansContainer NbJTextFieldDescripteurs CreerJTextFieldDansContainer NbJTextFieldDescripteurs 5 Berit si ryper for k 0 ExpTime ms dans le fichier seulement s l ctionn k lt NouvelleObservation NbObservation k out write OBS NAME lt new AjoutValeurJTextfield out write gt BoutonValider out println out write TRACK STAR a new AjoutValeurJComboBox BoutonValider out write Exp ms new AjoutValeurJTextfield BoutonValider out write DetectionThreshold new AjoutValeurJTextfield 44 70 BoutonValider out write gt BoutonValider out println out write OBS SERVOGUIDINGSETPOINT ST new AjoutValeurJComboBox BoutonValider out write gt BoutonValider out println out write OBS SERVOFOCUS lt new AjoutValeurJComboBox BoutonValider out write gt BoutonValider out println out write OBS COND SUNHEIGHT lt Sun height
37. e commettre une erreur de saisie taient grandes rendant le fichier illisible et constituant une source d interruption de la s quence pr vue Afin de simplifier cette tape de g n ration des fichiers et de r duire le risque d erreur 1l tait devenu n cessaire de proc der la cr ation d un outil d di La solution la plus pertinente trouv e tait de r aliser un programme visant tout d abord pr senter un interface graphique conviviale utilisable par tous afin qu un maximum de personnes puissent proposer des observations pour cet instrument Un point tr s important du projet tait que le programme devait pouvoir tre volutif car en effet l exp rience ASTEP400 est encore en volution et il est tr s probable que la syntaxe des fichiers d observation va devoir tre modifi e d une mani re ou d une autre l avenir 7 70 Abstract I spent these two months working on a project for the ASTEP400 telescope in the RPI team at the Fizeau Laboratory of the Observatoire de la C te d Azur My objective was to create a tool to automate the generation of observations files of this telescope installed in Antarctica at Dome C This 40cm telescope is installed since 2009 in Antarctica at the French Italian Concordia Station at Dome C These files are translated by the ASTEP control software in order to control the telescope in a series of actions pointing a direction in the sky recognize the star field record images etc durin
38. e observation Observation z Nouvelle Observation Supprimer Observation OBS_NAME TRACK_STAR Exp_ms DetectionThreshold OBS_SERVOGUIDING SETPOINT OBS_SERVOFOCUS OBS_COND_SUNHEIGHT Sun height min Sun height max OBS_COND_UTC UTC min UTC max OBS_COND_PERIOD Period Duration JPanel cr e 18 70 Cr ation du bouton Observation Dans la classe Main public class Main ww static JButton Observation new JButton Nouvelle Observation public static void main String args L Ajout du bouton Cr er Observat BS Container add Observation Observation setBounds 850 40 175 2 On voit ici que le JButton Observation est cr e puis ajout au JPanel Container et enfin plac et redimensionn dans celui ci Principe de la mise sur coute du bouton Nouvelle Observation public class NouvelleObservation a class ObservationButtonListener implements ActionListener public void actionPerformed ActionEvent e public NouvelleObservation JButton unBoutonObservation unBoutonObservation addActionListener new ObservationButtonListener 19 70 Ainsi lors de l instanciation de la classe Nouvelle Observation avec en param tre le bouton Observation un nouveau panel PanelObservation est cr e contenant de nouveaux composants graphiques cr s a partir de d une classe de type Cr er DansPanelObservation Chaque clic
39. eldDansContainer Parallax 185 310 55 100 new CreerJTextFieldDansContainer RadVel 315 3104 50 100 5 new CreerJTextFieldDansContainer GUIDE STAR CRD 40 340 150 335 new CreerJTextFieldDansContainer GUIDE STAR INF pmRA 40 370 200 100 new CreerJTextFieldDansContainer pmDE 7 385 370 40 100 new CreerJTextFieldDansContainer Parallax 185 400 55 100 new CreerJTextFieldDansContainer RadVel 375 400 50 100 new CreerJTextFieldDansContainer ExpTime ms 345 430 80 100 new CreerJTextFieldDansContainer xc 375 460 50 100 new CreerJTextFieldDansContainer yc 220 490 20 100 new CreerJTextFieldDansContainer dx 405 490 20 100 new CreerJTextFieldDansContainer dy 220 520 20 100 new CreerJTextFieldDansContainer Folder 73807520 45 100 58 70 Cr ation des JComboBox ainsi que des JTextfield utilis s pour receuillir les donn es new CreerJComboBoxDansContainer FIELD TYPE 40 70 150 150 VFIELD TYPE new CreerJComboBoxDansContainer 310 100 new CreerJComboBoxDansContainer 310 130 new CreerJComboBoxDansContainer MOUNT TRACKING TYPE 40 190 150 150 VMOUNT TRACKING TYPE new CreerJComboBoxDansContainer SCIENCE STAR CRD coordRA 40 220 260 new CreerJComboBoxDansContainer coordDE 215 250 85 new CreerJComboBoxDansContainer FIELD RECOGNITION 2 40 430 150 100 VYES NO new CreerJComboBoxDansContainer STORE ROI 40 460 150 100 VY
40. er static JLabel Label static JComboBox ComboBox int int int int int X Yr TaillexLabel TaillexComboBox a static int NbJComboBoxDescripteurs Vector Heure new Vector Vec Vec tor Minute new Vector tor Seconde new Vector Cr e 3 JComboBox Heure Minut t Seconde avec taille fixe positionn en x y public CreerJComboBoxDansContainer int unx int uny X UnX y uny for i 0 i lt 24 i if i lt 10 Heure addElement 0 i else Heure addElement i for i 0 i lt 60 i if i lt 10 Minute addElement 0 i else Minute addElement i 48 70 for i 0 i lt 60 i if i lt 10 Seconde addElement 0 i Seconde addElement i ComboBox new JComboBox Heure Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x y 75 20 ComboBox new JComboBox Minute Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x 75 y 75 20 ComboBox new JComboBox Seconde Main ArrayListComboBox add ComboBox Main Container add ComboBox ComboBox setBounds x 150 y 75 20 Chaque JComboBox cr e est ajout l ArrayList ArrayListComboBox et incr mente le NbJComboBox qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList BoutonValider NbJComboBox BoutonV
41. er les diff rentes observations existe Si elle n existe pas alors il y a cr ation d un vector Observation ainsi que d une JComboBox ComboBoxObs Si elle existe il y a alors ajout d un nouvel l ment Observation 1 i tant incr ment chaque nouvelle observation Viens ensuite l ajout dans le panel Container de la liste d roulante et de PanelObservation ainsi que le placement de ceux ci et l ajout du panel dans l ArrayList ArrayListPanelObservation On peut galement remarquer qu chaque nouvelle observation les variables comptant le nombre de JTextField et de JComboBox dans PanelObservation sont remises 0 Cela a pour objectif de v ritablement comptabiliser le nombre de JTextField et JComboBox par PanelObservation sinon en effet ces variables comptabiliseraient le nombre total des l ments de chaque type contenu dans toutes les observations et non pas d une seule observation ce qui fausserait les calculs ex cut s plus tard 4 Cr ation d une nouvelle action Le m me principe a t appliqu pour la cr ation d une nouvelle action la diff rence qu ici une nouvelle ArrayList a t utilis e pour le stockage des donn es recueillies pour chaque nouvelle action en effet tant donn qu chaque observation devait pouvoir tre associ es plusieurs actions il devenait plus simple de s parer ces donn es afin de les traiter ind pendamment NbJTextFieldDansUnPanelAction 0 PanelAction new J
42. ermettrait galement d tablir des priorit s mais galement de mieux visualiser l ensemble des programmations effectu s 33 70 Conclusion Le d veloppement de ce logiciel aura permis un gain de temps consid rable dans la g n ration du fichier d observation et son d veloppement pens sur le long terme permettra tout le monde de le modifier simplement Ce stage a t l occasion d approfondir mes connaissances en programmation et ce principalement en JAVA mais m aura galement permis de d velopper des m thodes de travail et d organisation plus avanc es n cessaires au bon d roulement de la r alisation d un projet sur plusieurs mois Je suis pour ma part tr s satisfait d avoir pu travailler sur un projet utile et volutif qui m aura permis de consolider mes connaissances dans un domaine que j appr cie particuli rement Ce stage termine ainsi mes deux ann es de formation l IUT en m accordant la chance de poss der pr sent une exp rience dans le monde de l entreprise qui me sera sans aucun doute tr s utile au cours des ann es venir 34 70 Annexe 1 Voici en annexe l int gralit du programme ActionSelectionee import java awt event ItemEvent import java awt event ItemListener import javax swing JComboBox import javax swing JTextField public class ActionSelectionee static int NumActionInt 1 int 1 int IndexPanelActionARecuperer 0 String NumActionString
43. erminer la p riode orbitale de cette plan te En effet il suffit de rep rer l intervalle entre les transits pour avoir une id e de cette p riode orbitale 9 70 1 2 Etoile Planete Luminosit A Courbe de la lumi re 37 Temps Variation de la luminosit d une toile lors du transit de la plan te Cette m thode est une m thode de d tection des exoplan tes c est dire des plan tes orbitant autour d une toile autre que du Soleil 3 Choix du langage informatique Afin de simplifier la cr ation manuelle des fichiers d observations et rendre la cr ation de ceux ci plus conviviale il a t d cid de cr er un programme proposant une interface graphique ayant pour but de recueillir les donn es saisies par les utilisateurs Une fois ces donn es r cup r es le programme devait tre capable de g n rer le fichier texte final complet et sans erreur directement utilisable par le t lescope Il a donc fallu dans un premier temps d cider quel langage informatique utiliser afin de coder ce g n rateur de script tant donn que ce programme devait pouvoir tre utilisable par un grand nombre de chercheurs afin que ceux ci propose leurs propres observations il tait n cessaire d utiliser un langage compatible avec le maximum de syst me d exploitation possible notre choix s est donc logiquement port sur l utilisation du langage JAVA 10 70 4 Logiciels et documents a disposition
44. g all the austral winter seaso Indeed those files were created manually before this project so there was a risk that they were wrong because those files needs to be well formatted it was a waste of time and an input error was possible To solve this problem the creation of a program convenient and easy to use was needed To meet this need I had to establish a program that include a Graphical User Interface to manage the input of data and in a second time i had to generate an obsevation file from the graphical interface This file had to be complete error free and easily usable A very important point of the project was that the program needed to be evolutive because the ASTEP400 experiment is still evolving and it is highly probable that the syntax of these observing files will need some changes in a way or in another 8 70 I Etude et organisation du projet Avant de pouvoir commencer la r alisation du projet il tait n cessaire de d terminer la fa on dont allait tre r alis le projet ainsi que les principaux int r ts du projet C est pour cette raison que la premi re partie du projet a consist a prendre en main les diff rents documents a disposition ainsi qu approfondir mes connaissances sur l exp rience 1 Objectif du projet Le principal objectif du projet n tait pas de proposer au terme des deux mois de stage un projet complet et termin mais bien de d buter la cr ation d un programme allant pou
45. gulaire la r solution et la couverture spectrale la stabilit et la couverture temporelle la sensibilit Le service de Recherche en physique Instrumentale s occupe de l laboration conceptuelle jusqu au traitement des donn es sans oublier la r alisation d instruments Il n existe malheureusement pas a l heure actuelle d organigramme d taill de l quipe 6 70 Pr sentation du projet Durant ces deux mois de stages pass s au sein de l quipe de Recherche en physique Instrumentale RPI j ai t amen r aliser un outil de g n ration de fichier d observation destin au pilotage du t lescope ASTEP400 Ce t lescope de 40 cm est install depuis 2009 en Antarctique sur la base Franco Italienne de Concordia au Dome C Ces fichiers d observation sont destin s tre d crypt s par le logiciel de contr le du t lescope qui va ex cuter une s rie d actions pointage d une zone du ciel donn e reconnaissance du champ stellaire enregistrement cyclique etc pendant toute la p riode hivernale australe Cette programmation du t lescope est n cessaire car l instrument fonctionne 24 heures sur 24 Ces fichiers comportent tous les param tres n cessaires la configuration de l instrument et des s quences d observation Ces param tres taient auparavant g n r s la main mais ils requi rent un formatage bien d fini pour pouvoir tre d crypt s par le programme de pilotage du t lescope Les risques d
46. h ma montrant le principe de fonctionnement souhait du programme 13 70 Conclusion Apr s avoir pos les bases de l organisation ainsi que du fonctionnement du programme il ne restait plus qu a passer l tape suivante du projet savoir la r alisation du programme qui devint alors plus facile du fait de cette tude pr liminaire 14 70 II Cr ation de l interface graphique Apr s avoir bien analys et tudi les objectifs du projet j ai choisi de par le nombre important de donn es remplir pour l utilisateur et donc de composants graphiques ajouter de cr er des classes d di es la cr ation des diff rents composants graphiques et panels 1 Cr ation des composants graphiques Afin de mieux comprendre les l ments expliqu s plus tard il est important de bien pouvoir visualiser a quoi correspondent les diff rents aspects graphiques du programme r alis Voici ce a quoi ressemble l interface graphique FIELD_NAME Observation1 Nouvelle Observation Supprimer Observation FIELD TYPE TRANSIT SRCH Boundary min 00 y oo OBS_NAME Boundary max 00 v Joo TRACK_STAR Exp_ms MOUNT_ABS_POSITION ALT ol 2 E DetectionThreshold MOUNT_TRACKING_TYPE SIDERAL OBS SERVOGUIDINGSETPOINT SCIENCE STAR CRD coordRA 0 SA jo OBS_SERVOFOCUS coordDE 0 KA Jo OBS_COND_SUNHEIGHT
47. ield par observation 1 on utilise une boucle afin de r p ter la suppression autant de fois qu il y a de JTextField par observation NbJTextFieldDescripteurs 1 NumObservationInt 1 NbJTextFieldDansUnPanelObservation 1 V rification 4 1 2 1 2 1 6 Index de la 1 re JTextField supprimer 27 70 3 Utilisations des ArrayList D claration des diff rentes ArrayList public class Main static ArrayList lt JTextField gt ArrayListTextField static ArrayList lt JComboBox gt ArrayListComboBox static ArrayList lt JComboBox gt ArrayListComboBoxActions static ArrayList lt JPanel gt ArrayListPanelObservation static ArrayList lt JPanel gt ArrayListPanelAction Instanciation des ArrayList public static void main String args ArrayListTextField new ArrayList lt JTextField gt ArrayListComboBox new ArrayList lt JComboBox gt ArrayListPanelObservation new ArrayList lt JPanel gt ArrayListPanelAction new ArrayList lt JPanel gt ArrayListComboBoxActions new ArrayList lt JComboBox gt Role des ArrayList Les ArrayList sont des collections elles peuvent contenir n importe quel type d objet et s agrandissent automatiquement lorsque le nombre d l ments stock d passe la taille de l ArrayList Les diff rentes ArrayList cr s ci dessus ont chacune un r le diff rent Alors que les ArrayList ArrayListTextField et ArrayListComboBox ont pour but de r cup rer les informat
48. iner On peut remarquer l incr mentation des variables NbJTextField correspondant au nombre de JTextField total existant et NbJTextFieldDans Container correspondant comme son nom l indique au nombre de JTextField dans le JPanel Container 16 70 On constate galement que ce principe a permis de simplifier la constitution des ArrayList ainsi tout objet cr par cette classe est automatiquement ajout la fin de l ArrayList ArrayListTextField et de ce fait l ajout manuel de chaque composant dans l ArrayList n est pas n cessaire cela est g r e directement lors de la cr ation de l objet Le m me principe a t appliqu pour les classes CreerJTextFieldDansPanelObservation CreerJComboBoxDansContainer CreerJComboBoxDansPanelObservation Celles ci sont en effet similaires la diff rence qu elles concernent l ajout soit d un JTextField soit d un JComboBox dans PanelObservation ou Container container tant le JPanel principal contenant les JPanel PanelObservation et PanelAction Afin de permettre l utilisateur de disposer d un moyen convivial de choisir les dates de d but et de fin de chaque observation je me suis servi du calendrier JDateChooser qui est un logiciel libre 2011 lun mar mer jeu ven sam dim 22 1 2 3 5 2 SAPS 8 a os aar fe fo 20 far 22 23 20 25 2 20 20 20 2 Cr ation de la frame La classe Main permet principalement la cr ati
49. ion sont rendus non visibles par set Visible false puis le num ro de I observation s lectionn e est obtenu en r cup rant la lettre comprise entre les positions 11 et 12 de la String s lectionn e dans la liste d roulante toutes les String contenues dans la liste d roulante tant de la forme Observation i Celle ci est ensuite convertie en entier par Integer ParseInt UneChaineDeCaract re Elle est enfin utilis e afin de rendre visible le panel de l observation choisie qui est contenue dans l ArrayList a la position de ce chiffre auquel on soustrait 1 le ler index tant 0 et non pas 1 2 Suppression d une observation Afin de permettre de pouvoir supprimer une observation qui aurait t cr en trop il a fallu mettre au point une fonction permettant de supprimer celle ci facilement donc en passant par l interface graphique ainsi il a t d cid de rajouter un bouton Supprimer qui lors de son utilisation permettrait d effacer l observation s lectionn e aussi bien graphiquement que dans le code voici le principe de fonctionnement On met sous coute le bouton Supprimer Dans Main Un nouvel Objet de type SupprimerObservation est cr e avec comme param tre le bouton SupprimerObservation new SupprimerObservation SupprimerObservation Dans SupprimerObservation public class SupprimerObservation Class SupprimerButtonObservationListener implements ActionListener public void ac
50. ions saisies gr ce l interface graphique afin d tre utilis es dans la g n ration du code final l int r t des autres ArrayList s av rent diff rent en effet ArrayListPanelObservation et ArrayListPanelAction servent quant elle stocker les diff rents panels cr es lors de la g n ration de nouvelles observations ou actions 28 70 Contenu des diff rentes ArrayList Chaque ArrayList a pour contenu des composants graphiques biens d finis FIELD_NAME Observation1 Supprimer Observation FIELD TYPE TRANSIT SRCH Boundary min i p OBS_NAME Boundary max 2 TRACK STAR Exp ms MOUNT ABS POSITION ALT I DetectionThreshold MOUNT TRACKING TYPE SIDERAL OBS SERVOGUIDINGSETPOINT SCIENCE STAR CRD coordRA OBS SERVOFOCUS coordDE OBS_COND_SUNHEIGHT Sun height min SCIENCE_STAR_INFO pmRA Sun height max Parallax a OBS_COND_UTC UTC min GUIDE_STAR_CRD E UTC max GUIDE STAR INFO OBS_COND_PERIOD Period RadVel FIELD_RECOGNITION ExpTime ms Nouvelle Action STORE ROI xc dx Container PanelObservation PanelAction A l exception des JTextField et JComboBox de PanelAction qui elles sont contenues dans ArrayListTextFieldDansPanelActions et ArrayListComboBoxDans
51. ld out write Formatage de Az temp Integer parseInt TabGetTextField CptAjoutChampTextField if temp lt 10 out write TabGetTextField CptAjoutChampText Field 0000 else if temp lt 100 out write TabGetTextField CptAjoutChampText Field 000 else if temp lt 1000 out write TabGetTextField CptAjoutChampText Field PL s else if temp lt 10000 out write TabGetTextField CptAjoutChampText Field JH else if temp gt 10000 TabGetTextField CptAjoutChampTextField TabGetTextField CptAjoutChampTextField substring 0 5 out write TabGetTextField CptAjoutChampTextField CptAjoutChampTextField out write gt BoutonValider out println out write MOUNT TRACKING TYPE Sa ce new AjoutValeurJComboBox out write gt BoutonValider out println 42 70 out write SCIENCE STAR CRD lt RA new AjoutValeurJComboBox out write new AjoutValeurJComboBox out write new AjoutValeurJComboBox out write DEC new AjoutValeurJComboBox out write new AjoutValeurJComboBox out write new AjoutValeurJComboBox Out write gt BoutonValider out println out write SCIENCE STAR INFO lt pmRA new AjoutValeurJTextfield out write pmDE new AjoutValeurJTextfield out write Parallax new AjoutValeurJTextfield out
52. llexLabel 20 NouvelleAction PanelAction add ComboBox ComboBox setBounds x TaillexLabel 10 y TaillexComboBox 20 Chaque JComboBox cr e est ajout l ArrayList ArrayListComboBox et incr mente le NbJComboBox qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList if NouvelleObservation Premi reActionDeObservationCree 0 Main ArrayListComboBoxDansPanelActions add NouvelleAction PositionActionaRajoute r ComboBox else Main ArrayListComboBoxDansPanelActions add ComboBox NouvelleAction NbJComboBoxDansUnPanelAction 51 70 Annexe 8 CreerJComboBoxDansPanelObservation import javax swing JComboBox import javax swing JLabel public class CreerJComboBoxDansPanelObservation static JLabel Label static JComboBox ComboBoxYesNo int int y int TaillexLabel int TaillexComboBox int i static int NbJComboBoxDansPanel 0 Cr e une JComboBox YES NO public CreerJComboBoxDansPanelObservation String unLabel int unx int uny int uneTaillexLabel ComboBoxYesNo new JComboBox Main VYES NO Label new JLabel unLabel X UNX y uny TaillexLabel uneTaillexLabel NouvelleObservation PanelObservation add Label Label setBounds x y TaillexLabel 20 NouvelleObservation PanelObservation add ComboBoxYesNo ComboBoxYesNo setBounds x Taillex
53. llexLabel int uneTaillexTextField Label new JLabel unLabel Textfield new JTextField 30 x unx y uny TaillexLabel uneTaillexLabel TaillexTextField uneTaillexTextField NouvelleAction PanelAction add Label Label setBounds x y TaillexLabel 20 NouvelleAction PanelAction add Textfield Textfield setBounds x TaillexLabel 10 y TaillexTextField 20 Chaque JTextField cr e est ajout l ArrayList ArrayListTextField et incr mente le NbJTextField qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList if NouvelleObservation Premi reActionDeObservationCree 0 Main ArrayListTextFieldDansPanelActions add NouvelleAction PositionActionaRajouter Textfield else Main ArrayListTextFieldDansPanelActions add Textfield NouvelleAction NbJTextFieldDansUnPanelActiontt 55 70 Annexe 11 CreerJTextFieldDansPanelObservation import javax swing JComboBox import javax swing JLabel import javax swing JTextField public class CreerJTextFieldDansPanelObservation static JLabel Label static JTextField Textfield static JComboBox ComboBox int x int y int TaillexLabel int TaillexTextField int TaillexComboBox static int NbTotalJTexFieldDansPanel 0 Cr e un JLabel ainsi qu un JTextField dans Container param trable une position x y public CreerJTextFieldDansPanelObservation String unLabel int unx
54. min deg new AjoutValeurJTextfield out write Sun height max deg new AjoutValeurJTextfield BoutonValider out write gt BoutonValider out println out write OBS COND UTC UTC min new AjoutValeurJTextfield out write UTC max new AjoutValeurJTextfield E Ld BoutonValider out write gt BoutonValider out printin out write OBS COND PERIOD lt Period new AjoutValeurJTextfield out write Duration new AjoutValeurJText field BoutonValider out write gt BoutonValider out printin CptNumeroObservation for 1 0 1 lt NouvelleObservation TabNbActionParObs CptNumeroObservation l l out write CAMS lt Acquisition out write Main ArrayListTextFieldDansPanelActions get CptNum roAction getText out write Main ArrayListComboBoxDansPanelActions get CptNum roAction getSelectedItem toString out println CptNum roAction CptTabTextFieldPanelActions 0 CptAjoutChampTextFieldPanelActions 0 CptAjoutChampTextField 0 CptAjoutChampComboBox 0 45 70 CptTabTextField 0 CptTabComboBox 0 CptNum roAction 0 out close Ferme le flux du fichier sauvegardant ainsi les donn es JOptionPane showMessageDialog Main Container Fichier d observation cr e avec su cc s dans FichierCible Fichier cr e JOptionPane PLAIN MESSAGE
55. n a t cr e pas de cr ation d une nouvelle liste d roulante else VObservation addElement Observation i PanelObservation new JPanel Main Container add PanelObservation BoutonAction new JButton Nouvelle Action PanelObservation setLayout null PanelObservation setBounds 600 100 650 700 new CreerJTextFieldDansPanelObservation OBS NAME 0 0 200 350 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation Exp ms 325 30 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation DetectionThreshold 325 60 125 100 NbJTextFieldDansUnPanelObservation t new CreerJTextFieldDansPanelObservation OBS COND SUNHEIGHT Sun height min 0 150 450 100 NbJTextFieldDansUnPanelObservation 65 70 new CreerJTextFieldDansPanelObservation Sun height max 325 180 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation OBS COND UTC UTC min 0 210 450 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation UTC max 325 240 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation OBS COND PERIOD Period 0 270 450 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation Duration 325 300 125 100 NbJTextFieldDansUnPanelObservation new C
56. ner param trable une position x y 53 70 public CreerJTextFieldDansContainer String unLabel int unx int uny int uneTaillexLabel int uneTaillexTextField NumberFormat unNombreFormat Label new JLabel unLabel Textfield new JFormattedTextField unNombreFormat x unx y uny TaillexLabel uneTaillexLabel TaillexTextField uneTaillexTextField Main Container add Label Label setBounds x y TaillexLabel 20 Main Container add Textfield Textfield setBounds x TaillexLabel 10 y TaillexTextField 20 Chaque JTextField cr st ajout a l ArrayList ArrayListTextField et incr mente le NbJTextField qui sera utilis pour d finir le nombre d objets pr sents dans l ArrayList Main ArrayListTextField add Textfield BoutonValider NbJTextField BoutonValider NbJTextField l NbJTextFieldDescripteurs 54 70 Annexe 10 CreerJTextFieldDansPanelAction import javax swing JComboBox import javax swing JLabel import javax swing JTextField public class CreerJTextFieldDansPanelAction static JLabel Label static JTextField Textfield static JComboBox ComboBox int x int y int TaillexLabel int TaillexTextField int TaillexComboBox Cr e un JLabel ainsi qu un JTextField dans Container param trable un position x y public CreerJTextFieldDansPanelAction String unLabel int unx int uny int uneTai
57. on des diff rents composants graphiques et boutons ainsi que de la frame Frame contenant les diff rents JPanel static JFrame Framel new JFrame static JPanel Container new JPanel public static void main String args Framel setResizable false Framei setTitle GUI java Framei setSize i250 900 Framei setLocationRelativeTo null Framei setDefaultCloseOperation JFrame EXIT ON CLOSE Container setLayout null 17 70 On y voit ici l initialisation et le param trage de la frame ainsi que la cr ation du JPanel Container new CreerJTextFieldDansContainer FIELD NAME 40 40 150 335 Ici on voit par exemple que la classe CreerJTextFieldDansContainer est utilis e afin de cr er une JTextField plus facilement et surtout plus rapidement 3 Cr ation d une nouvelle observation A chaque fichier veut tre associ es plusieurs observations il a donc fallu permettre un moyen de cr er celles ci par l impl mentation d une fonction suppl mentaire La classe NouvelleObservation Cette classe a pour objectif lors d un clic sur le bouton Nouvelle Observation de cr er un nouveau panel contenant tous les composants graphiques n cessaires la compl tude des informations concernant cette nouvelle observation Celui ci g re galement l ajout de ces panel et des donn es saisies dans les ArrayList concern es Nouvelle Observation Supprimer Observation Cr ation d une nouvell
58. on txt en crivant unNom dans le premier JTextField et en validant FIELD_NAME lt unNom gt Le m me principe s applique dans le cas de l ajout d une JComboBox on fera appel AjoutValeurJComboBox qui permettra d crire a la suite du fichier la valeur s lectionn e dans la Combobox stock e dans TabGetComboBox public class AjoutValeurJComboBox z public AjoutValeurJComboBox Ecrit dans le fichier le contenu de TabGetComboBox cptAjoutChampComboBox repesentant le contenu du JComboBox n cptAjoutChampComboBox transform en String BoutonValider out write BoutonValider TabGetComboBox BoutonValider CptAjoutChampComboBox BoutonValider CptAjoutChampComboBox Apr s l criture des diff rents descripteurs une boucle est ex cut eafin d crire les NbObservation cr s for k 0 k lt NouvelleObservation NbObservation k out write OBS NAME lt new AjoutValeurJTextfield out write gt BoutonValider out printin 31 70 Viens ensuite l criture des diff rentes actions CptNumeroObservation for 1 0 1x lt NouvelleObservation TabNbA ctionParObs CptNumeroObservation 1 1 out write CAMS lt Acquisition out write Main ArrayListTextFieldDansPanelActions get CptNum roAction getText out write Main ArrayListComboBoxDansPanelActions get CptNum roAction getSelectedItem toString out printin CptNum roAction Ici pou
59. ossssose 23 1 S lection d une observans 23 2 Suppression d une observation 45e raser sina d ende undre 24 3 Utilisations IES ATAVL IST ss dr ren eds EETA RE A E ORTAR aa 28 Possibilit s d VOLULIONN es desssseudcdniecsncanasinsccpsoduccnntesvdscwieusncssbiueincehsadesvandensdesedseuecunsdsenvensesecssseebs 33 CON lUS ER EE nt Re nn te Len ATT 34 PATA CNG PT RS RER AR OR E E RE TER RS 35 Annexe Zadar 37 ANNEXE Jade de 38 Ann ere E E EE ER ES EST eee 39 ARTE Dern EEE EEE 47 EO EEE ET EE EE NE 48 aN CD ain nn ske 51 ATLE EIR ETPA EE ER D AN 52 PU CED ERE OR EEE EEO EAEE NE 53 EG CA EE EE EE EEE 55 VT CD C U EAE E E T E EE E E 56 eU CD C ER E A E E A E E A EEA 57 5 KES T AEE E E E AOE OEE T E E RER 60 AE EEE EN EEEIEE NS 62 Ann ere 1Lassdoseskedeen GNAGE 68 ANDRE Os Re M nn A SALS 69 4 70 Pr sentation de l entreprise L unit Fizeau est une des 4 Unit s Mixes de Recherche de l Observatoire de la C te d Azur Celui ci est le r sultat de la fusion entre l Observatoire de Nice fond en 1881 par Rapha l Bischoffsheim et le CERGA structure de recherche inter universitaire implant e Grasse et Calern Il s agit d un tablissement caract re administratif dirig par M Farrokh Vakili et se compose d environ 450 personnes Il est implant sur 7 sites le Mont Gros et le parc Valrose Nice Villefranche sur mer Sophia Antipolis Roquevignon a Grasse le Plateau de Calern Caussols et
60. r chaque observation on utilise le nombre d actions qui y est associ TabNbActionParObs index contenant le nombre d actions pour chacune des observations ainsi TabNbActionParObs 0 contient le nombre d actions que pr sente la 1 re observation On crit ainsi le contenu des n JTextField suivantes de l ArrayList ArrayListTextFieldDansPanelAction n tant le nombre de JTextField contenus par action le nombre d actions demand es pour cette observation puis on incr mente le num ro de l observation et donc de l index du tableau TabNbActionParObs Le m me raisonnement s applique pour l criture du contenu des JComboBox de chaque action mais avec l ArrayList ArrayListComboBoxDansPanelAction Conclusion L exploitation des diff rentes donn es saisies ainsi que des interactions des utilisateurs fonctionne donc il est en effet possible de se servir de l interface graphique afin de pouvoir g n rer le fichier d observation dans un format fixe et bien d termin L utilisation des ArrayList assure quant elle la simplicit d ajout d l ments dans le cadre d une volution futur 32 70 Possibilit s d volutions Des am liorations sont r alisables afin de rendre cet outil plus pratique il est en effet possible de rajouter une repr sentation graphique temporelle des diff rentes observations afin de v rifier si aucune ne s effectuent en m me temps cela pourrait se repr senter sous cette forme par exemple Cela p
61. reerJComboBoxDansPanelObservation TRACK STAR 0 30 200 NbJComboBoxDansUnPanelObservationt new CreerJComboBoxDansPanelObservation OBS SERVOGUIDINGSETPOINT 0 90 200 NbJComboBoxDansUnPanelObservationtt new CreerJComboBoxDansPanelObservation OBS SERVOFOCUS 0 120 200 NbJComboBoxDansUnPanelObservation Main ArrayListPanelObservation add PanelObservation NbJPanelObservationt NbObservationt GE ComboBoxObs setModel new DefaultComboBoxModel VObservation Cr ation de la l re action pour l observation venant d tre cr e PanelObservation add BoutonAction BoutonAction setBounds 0 350 150 25 NouvelleAction PanelAction new JPanel PanelObservation add NouvelleAction PanelAction NouvelleAction PanelAction setLayout null NouvelleAction PanelAction setBounds 0 400 650 250 66 70 un Premi reActionDeObservationCree 1 new CreerJTextFieldDansPanelAction Temps 0 25 150 100 new CreerJComboBoxDansPanelAction Type 0 55 150 100 VTypeAcquisition Premi reActionDeObservationCree 0 NouvelleAction NbJTextFieldDansUnPanelAction NouvelleAction NbJComboBoxDansUnPanelAction se ComboBoxAct new JComboBox VAction NouvelleObservation PanelObservation add ComboBoxAct ComboBoxAct setBounds 250 350 150 25 Main ArrayListComboBoxActions add ComboBoxAct Main A
62. rrayListPanelAction add Main ArrayListPanelAction size NouvelleAction PanelAction NbJPanelAction new ObservationSelectionee ComboBoxObs new ActionSelectionee ComboBoxAct new NouvelleAction BoutonAction public NouvelleObservation JButton unBoutonObservation BoutonObservation addActionListener new ObservationButtonListener 67 70 Annexe 15 ObservationSelectionee import java awt event ItemEvent import java awt event ItemListener import javax swing JComboBox public int i String static class ObservationSelectionee NumObservationString int NumObservationInt 1 class ObservationComboBoxListener implements ItemListener Action effectu lorsqu une observation est s l ctionn e public void itemStateChanged ItemEvent e Rend non visible tous les panel d observation for i 0 1i lt NouvelleObservation NbJPanelObservation 1 itt Main ArrayList PanelObservation get i setVisible false for i 0 i lt NouvelleObservation NbJPanelAction l i Main ArrayListPanelAction get i setVisible false NumObservationString NouvelleObservation ComboBoxObs getSelectedItem toString substring 11 12 NumObservationInt Integer parseInt NumObservationString Rend visible uniquement le panel de l observation s l ction e Main ArrayList PanelObservation get NumObservationInt 1 setVisible true public
63. sPanelObservation Exp ms 325 30 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation DetectionThreshold 325 60 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation OBS COND SUNHEIGHT Sun height min 0 150 450 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation Sun height max 325 180 125 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation OBS COND UTC UTC min 0 210 450 100 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation UTC max 325 240 125 100 63 70 NbJTextFieldDansUnPanelObservation new CreerJTextFieldDansPanelObservation OBS COND PERIOD Period 0 270 450 100 NbJTextFieldDansUnPanelObservationt new CreerJTextFieldDansPanelObservation Duration 325 300 125 100 NbJTextFieldDansUnPanelObservation new CreerJComboBoxDansPanelObservation TRACK STAR 0 30 200 NbJComboBoxDansUnPanelObservationt new CreerJComboBoxDansPanelObservation OBS SERVOGUIDINGSETPOINT 0 90 200 NbJComboBoxDansUnPanelObservationt new CreerJComboBoxDansPanelObservation OBS SERVOFOCUS 0 120 200 NbJComboBoxDansUnPanelObservationt Main Container add ComboBoxObs Main Container add PanelObservation PanelObservation se PanelObservation se Layout null
64. t ArrayListComboBox for k 0 k lt NbJComboBox k TempComboBox Main ArrayListComboBox get k getSelectedItem toString TabGet ComboBox CptTabComboBox TempComboBox CptTabComboBox for k 0 k lt NouvelleAction NbJTextFieldDansUnPanelAction k TempTextField Main ArrayListTextFieldDansPanelActions get k getText TabGetTextFieldPanelActions CptTabTextFieldPanelActions TempTextField CptTabTextFieldPanelActions for k 0 k lt NouvelleAction NbJComboBoxDansUnPanelAction k TempComboBox Main ArrayListComboBoxDansPanelActions get k getSelectedItem toString TabGetComboBoxPanelActions CptTabComboBoxPanelActions TempComboBox CptTabComboBoxPanelActions try Ecriture du fichier out new PrintWriter new FileWriter fichier Ecrit FIELD NAME lt dans le fichier out write FIELD NAME lt 40 70 Berit la valeur String de la premi r contenu dans TabGetTextField 0 puis incr mente le cpt de celui ci new AjoutValeurJTextfield out write gt out println Retour a la ligne dans le fichier out write FIELD TYPE lt Ecrit la valeur String de la premi re JTextfield JComboBox contenu dans TabGetComboBox 0 puis incr mente le cpt de celui ci new AjoutValeurJComboBox out write gt out println out write FIELD
65. tion de l aspect graphique du logiciel j ai d mettre en place des m thodes afin de pouvoir analyser et utiliser les interactions ainsi que les donn es saisies par les utilisateurs du logiciel Cela signifiait la mise sur coute des diff rents boutons et des listes d roulantes ainsi que le traitement des donn es d sir es par l utilisateur 1 S lection d une observation Afin de pouvoir naviguer entre les diff rentes observations une JComboBox a t utilis e celle ci permet en effet d afficher le panel correspondant l observation s lectionn e Mise sur coute de la liste d roulante public class ObservationSelectionee int i String NumObservationString static int NumObservationInt 1 class ObservationComboBoxListener implements ItemListener public void itemStateChanged ItemEvent e public ObservationSelectionee JComboBox uneJComboBox uneJComboBox addItemListener new ObservationComboBoxListener Action effectu e en cas de changement de s lection for i 0 i lt NouvelleObservation NbJPanelAction 1 i Main ArrayListPanelAction get i setVisible false NumObservationString NouvelleObservation ComboBoxObs getSelectedItem toString substring 11 12 NumObservationInt Integer parseInt NumObservationString Main ArrayListPanelObservation get NumObservationInt 1 setVisible true On voit ainsi que lors de la s lection d une observation tous les PanelObservat
66. tionPerformed ActionEvent e public SupprimerObservation JButton unBoutonObservation unBoutonObservation addActionListener new SupprimerButtonObservationListener 24 70 Puis dans la classe SupprimerObservation action a effectuer lorsque le bouton Supprimer est utilis public void actionPerformed ActionEvent e int j if ObservationSelectionee NumObservationInt NouvelleObservation NbJPanelObservation for j ObservationSelectionee NumObservationInt 1 j lt NouvelleObservation NbJPanelObservation 1 j JPanel PanelTemp new JPanel PanelTemp Main ArrayListPanelObservation get j 1 PanelTemp setBounds 600 100 650 700 Main ArrayListPaneloObservation get j setVisible false Main Container add PanelTemp Main ArrayListPanelObservation set j PanelTemp Main ArrayListPanelObservation get j setVisible true NouvelleObservation ComboBoxObs setSelectedItem 0 Comme on peut le voir si le bouton Supprimer est press le programme r alise un test if afin de voir si l observation s lectionn e lors de la demande de suppression est la derni re observation cr e Si celle ci n est pas la derni re observation cr e alors une boucle sera r alis afin de r cup rer le contenu des diff rents panel des observation dont le nombre est sup rieur ou gal celle s lectionn e Si celle ci est la derni re observation cr alors ce panel est rendu non visible
67. voir voluer au cours des ann es venir Le but qu il fallait ainsi garder l esprit tait entre autre de permettre l ajout ou la modification de param tres d observation facilement 2 Principe de fonctionnement d une observation L objectif de ce programme est d automatiser la cr ation de fichiers d observations destin s tre lus par le t lescope ASTEP400 Ce t lescope a t install en Antarctique au D me C en 2009 pour un programme visant d tecter et caract riser des plan tes extra solaires par la m thode des transits passage de la plan te devant son toile Les observations peuvent tre programm es en fonction de conditions particuli res fen tres temporelles particuli res p riodicit dans le temps observation conditionnelle en fonction de la hauteur du soleil sur ou sous l horizon etc Le principe de fonctionnement du proc d est le suivant Afin de proc der l observation d un certain champ on utilise une toile de rep re appel e toile guide afin de centrer le champ d observation Lors de cette observation on mesure la luminosit appel e flux de certaines toiles le but tant de mesurer les variations de celle ci au cours du temps Si une diminution de ce l intensit de ce flux est remarqu e on est alors peut tre en pr sence d un transit savoir le passage d une plan te devant cet toile Cette m thode est galement un moyen utilis p riodiquement afin de de d t
68. write RadVel new AjoutValeurJTextfield out write gt BoutonValider out println out write GUIDE STAR CRD lt RA new AjoutValeurJTextfield out write gt BoutonValider out println out write GUIDE STAR INFO lt pmRA new AjoutValeurJTextfield out write pmDE new AjoutValeurJTextfield out write Parallax new AjoutValeurJTextfield out write RadVel new AjoutValeurJTextfield out write gt BoutonValider out println out write FIELD RECOGNITION lt Ecrit ExpTime ms dans le fichier seulement si YES s l ctionn IE BoutonValider TabGetComboBox BoutonValider CptAjoutChampComboBox equals YES new AjoutValeurJComboBox out write ExpTime ms new AjoutValeurJTextfield out write gt BoutonValider out println else new AjoutValeurJComboBox 43 70 out write gt BoutonValider out println CreerJTextFieldDansContainer NbJTextFieldDescripteurs out write STORE ROI lt fichier Ecrit les champs Xc Data Folder dans le seulement si YES s l ctionn if BoutonValider TabGetComboBox BoutonValider CptAjoutChampComboBox equals YES new AjoutValeurJComboBox out writ

Download Pdf Manuals

image

Related Search

Related Contents

Manuel du Nokia 5110  Arcade Game Manual: Phoenix      Da-Lite CM-UPC  Gaming Keyboard S16 User Manual  Hasselblad X1 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file