Wiki

ChemCam Ground Data Log Book

This is a Java GUI tool to help building an information context to be associated to an observation (a series of ChemCam shots, FOCUS, LIBS, RMI) done in a laboratory

(Last update : 10/7/2015)


INFORMATIONS TECHNIQUES

(TODO) Ce logiciel est installé sur le Pc Chemcam, en salle blanche : http://planetowiki.irap.omp.eu/do/view/Computers/PcChemcam2Tour

OLD web page for this project : http://planetowiki.irap.omp.eu/do/view/Cgdl/WebHome

SVN repository : http://planetoweb2.irap.omp.eu/cgdl_svn/trunk


DOWNLOAD

  • LAST Version July 2015 (modifications made by R. Hitier), FORMULAIRE UNIQUE : attachment:COMING SOON

EXECUTION

In order to run this tool (a java archive file), you need a Java Virtual Machine installed on your computer (either JRE or JDK).

You can run this tool two different ways :
  • by double-clicking on it
  • from the command line (Mac or Linux) : java -jar cgdl.jar

RECUPERATION DU PROJET

SVN repository : http://planetoweb2.irap.omp.eu/cgdl_svn/trunk

Pour récupérer une version synchronisée (avec les dossiers .svn) et ainsi contribuer au développement du projet :
svn co http://planetoweb2.irap.omp.eu/cgdl_svn/trunk ma_version_synchronisee_de_cgdl

Pour récupérer une copie statique (non synchronisée, sans les ".svn") :
svn export http://planetoweb2.irap.omp.eu/cgdl_svn/trunk ma_version_statique_de_cgdl

Lire ensuite le fichier README.txt

2015 Juin-Juillet - TRANSFORMATION (EN VUE D'UNE COLLABORATION AVEC C-SPEC-HK)

Suite aux réunions du 29/4/15 et du 22/5/15 avec OG, WR, AC, PM, et EP,
le nouveau besoin exprimé passe par une collaboration de cet outil avec l'autre outil C-SPEC-HK.
Début juin, nous avons eu une réunion avec le prestataire Richard Hitier qui nous a proposé un devis sur 6 jours,
pour la réalisation d'une nouvelle version impliquant la refonte de l'IHM en un seul formulaire contenant tous les champs.

1. JALONS DU DEVELOPPEMENT DES NOUVELLES FONCTIONNALITES PAR LE PRESTATAIRE

Le développement doit se faire en Java 8

Calendrier prévisionnel (non contractuel) :

1) Mercredi 24/6/15 : Livraison de la version existante adaptée pour qu'elle crée un fichier XML unique par contexte

2) Lundi 6/7/15 : Version avec Formulaire unique (au lieu du formulaire multi-onglets actuel)
(Réunion de validation avec l'équipe Chemcam à 10h30)

3) Mercredi 8/7/15 : Livraison de la version finale

2. NOUVELLE PRESENTATION

(NOUVELLE IHM, NOUVEAU FORMULAIRE, NOUVEAU WORKFLOW)

(Note : on change de contexte quand on change la roche, la distance, ou l’atmosphère…)

Le logiciel doit démarrer automatiquement au boot du pc.

Il est désormais composé de seulement 2 écrans.

2.1. ECRAN 1 : START

Le premier écran START doit proposer les 4 choix suivants :

1) Create a brand new context
2) Create a new context from another one
3) Modify a context
4) Delete a context

Dans tous les cas (sauf le 1), une liste de TOUS les contextes existants est affichée (tous les contextes créés, même ceux du passé), parmi lesquels on doit en sélectionner un.

Dans le cas (4), on demande confirmation avant la suppression ("Do you really want to delete this context ? <OK> <CANCEL>), puis on revient à l'écran START après la suppression.

Dans tous les autres cas (1 à 3), on arrive ensuite à l'écran du formulaire unique "CONTEXT DEFINITION".

Suppression (virtuelle) d'un contexte (options 3 et 4) (*):
Afin de faciliter l'interaction avec le logiciel C-Spec-HK,
les fichiers de contexte "supprimés" ne doivent pas être physiquement supprimés,
mais seulement marqués du préfixe "_DELETED_".
Ces fichiers "supprimés" virtuellement ne doivent plus être visibles dans la liste des contextes affichée par C-GDL.
Ainsi, C-Spec-HK pourra se rendre compte qu'un contexte (même ancien, dans le passé) a été supprimé,
et pourra supprimer en conséquence le dossier de contexte associé
(suppression virtuelle elle aussi car on préfère ne pas prendre le risque de supprimer un dossier de contexte par erreur...)

2.2. ECRAN 2 : CONTEXT DEFINITION

2.2.1. Différence de comportement selon l'option choisie (dans l'écran 1)

Dans les 3 premiers cas (options 1 à 3), une fois que le contexte est sauvegardé (clic sur bouton SAVE), il est FERMÉ car on ne doit plus pouvoir le modifier, sauf en l'ouvrant à nouveau en modification (option 3). Le bouton "SAVE" devra donc plutôt être nommé "SAVE CONTEXT (and close)".

  • 1) Create a brand new context (Création d'un tout nouveau contexte) :
    • date = date du jour (modifiable pour pouvoir créer un contexte dans le passé)
    • start time = maintenant (modifiable)
    • stop time = 23:59 (modifiable)
    • Autres champs = valeurs par défaut
    • Quand on clique sur le bouton SAVE :
      • a) La confirmation suivante est demandée : "Do you want to CREATE this context with the name <...> ? <OK> <CANCEL>)"
      • b) Dans le cas (rare) où le nom du contexte existe déjà, le message d'avertissement suivant est affiché : "WARNING : Cannot create this context. Another context already exists with this name <...>. <OK>", et la sauvegarde n'est pas effectuée (il revient à l'utilisateur de changer des paramètres pour changer le nom de son contexte et ainsi pouvoir le sauvegarder, sinon il peut toujours annuler)
  • 2) Create a new context from another one (Création d'un nouveau contexte à partir d'un contexte existant) :
    • date = idem (1)
    • start time = idem (1)
    • stop time = idem (1)
    • Autres champs = valeurs du contexte existant
    • Quand on clique sur le bouton SAVE : idem (1)
  • 3) Modify a context (Modification d'un contexte existant) :
    • date = date du contexte existant (modifiable, bien qu'en théorie, on ne devrait pas l'autoriser, mais ça n'est pas bien grave...)
    • start time = heure du contexte existant (modifiable)
    • stop time = heure du contexte existant (modifiable)
    • Autres champs = valeurs du contexte existant (idem (2))
    • Quand on clique sur le bouton SAVE, c'est un peu plus compliqué car on doit SUPPRIMER (ou ECRASER, si le nom n'a pas changé) le contexte d'origine.
      • a) Quand l'utilisateur clique sur le bouton "SAVE", on demande confirmation : "Do you want to UPDATE this context (with the name <...>) ? <OK> <CANCEL>"
      • b) Si le nom du contexte existe déjà :
        • Si c'est le nom du contexte d'origine, c'est normal (car c'est une modif), on doit l'ECRASER (le mettre à jour)
        • Si c'est un autre nom, ça n'est pas normal, et donc le message d'avertissement suivant est affiché : "WARNING : Cannot update this context. Another context already exists with this name <...>. <OK>", et la sauvegarde n'est pas effectuée (il revient à l'utilisateur de changer des paramètres pour changer le nom de son contexte et ainsi pouvoir le sauvegarder, sinon il peut toujours annuler)
      • c) Sinon (le nom du contexte n'existe pas encore) : il faut SUPPRIMER le contexte d'origine (suppression virtuelle) et créer le "nouveau" contexte

2.2.2. Aspect général du formulaire

Voici une maquette (incomplète mais suffisante) du nouveau formulaire proposée par AC et OG (voir surtout les 2 dernières diapos) :

  • Document complet (PPT) : CGDL-idees_v3.pptx
  • Nouvelle IHM proposée :

Diapositive10.jpg

  • Liste des options pour les champs à liste déroulante :

Diapositive11.jpg

2.2.3. Description détaillée des champs du formulaire

Afin de faciliter les changements à l'avenir, la configuration du formulaire unique (noms des labels, valeurs par défaut, paramètre obligatoire ou facultatif) doit être écrite dans un fichier texte (XML, JSON, ...).
On pourra nommer ce fichier "SETTINGS" ou "CONFIG"*

2.2.3.1. Panel OBSERVATION

Au tout début de ce formulaire, on trouve le panel "OBSERVATION", qui contient notamment les 3 champs donnant les date et période de couverture du contexte (pris en compte pour le champ CONTEXT NAME tout en bas) :

Date and time of acquisition:
- [Date] (format YYYYMMDD)
- [Start time] (format HHMM)
- [Stop time] (format HHMM)

2.2.3.2. Panel CONTEXT NAME

Tout en bas, on a le panel "CONTEXT NAME" (avec le bouton "SAVE CONTEXT (and close)"), qui contient le nom courant du contexte.

Ce champ est READ ONLY car il est construit automatiquement à partir de la valeur des 3 champs temporels du début, et de tous les champs "bleus" de tous les panels.

Voici le format de ce champ : <YYYYMMDD>_<HHMM>-<HHMM>_CONTEXT_<valeurs-des-champs-bleus>.xml (ou .json si on fait du JSON à la place du XML, option ouverte)
avec :

  • YYYYMMDD : Date du jour (ex, 20050529)
  • HHMM-HHMM : temps de début puis temps de fin (ex : 0935-1147)
    Par défaut, temps début = maintenant, et temps fin = 2359 (fin de journée)
  • <valeurs-des-champs-bleus> : concaténation des valeurs de tous les champs bleus de tous les panels

(Supprimer la fonctionnalité du 000, 001, 002 à la fin du nom du contexte)

2.2.3.3. Validation du formulaire

En mode "Creation from scratch (1)", au début, tous les titres de tous les panels sont ROUGE car non remplis (ils peuvent être verts si les valeurs par défaut sont suffisantes),
sauf les panels facultatifs tels que "NOTES"... qui sont VERT, et le bouton "SAVE CONTEXT (and close)" est désactivé.
Le titre d'un panel passe au VERT quand son contenu est suffisemment rempli.
Quand tous les panels sont VERT, le panel "CONTEXT NAME" passe lui aussi au VERT, et son bouton "SAVE CONTEXT (and close)" devient disponible.

2.2.3.4. Autres remarques

Prévoir un bouton "RESET" permettant de remettre toutes les valeurs par défaut. Ce bouton ne sera présent que dans l'option (1) "Creation of a new Context".

Ajouter un panel "Notebook" sur lequel on pourra prendre des notes diverses.

(NB: Dans la version précédente de C-GDL, le contexte n'était pas créé séparément, mais il était ajouté à un fichier CgdlContextList.xml dans le répertoire du programme, trié par date puis par nom de cible)

2.3. AUTRES CHANGEMENTS SUR LE LOGICIEL

ATTENTION, CETTE SECTION N'EST PAS FORCEMENT TRES A JOUR CAR ELLE PART DE LA PHILO DE L'ANCIEN FORMULAIRE (multi-onglets), mais à consulter quand même

Outre le nouveau fonctionnement décrit ci-dessus, les adaptations suivantes ont été demandées.

(Le bouton "Reset it" ne doit pas faire un "Next" après le reset (on peut d'ailleurs appeler ce bouton "Reset" tout simplement). Il remet les valeurs par défaut dans tous les champs de l'écran.)

Panel Observation :
- Observation type : Cible LIBS par défaut (d'ailleurs, on peut enlever RMI et FOCUS)

Panel Target :
Valeurs par défaut :
- granulo : unknown
- rough : unknown
- size : 1-5 cm
- albedo : remplacer 0 par unknown
- origin : ajouter PELLET
- composition : unknown

Panel Environment :
- Atmosphere (en bleu car pris en compte pour le nom du contexte) : Mars par défaut
- pressure : controlled par défaut

Panel Hardware :
Valeurs par défaut :
- Location (en bleu car pris en compte dans le nom du contexte) : IRAP
- body unit : + Chemcam EM 2013 (par défaut)
- Ctrl/cde : LANL/GSE
- Mast : ChemCam EQM
- Fiber : ChemCam FM-like

Panel Distance :
- "Distance to target" => "Approximate dist to target"
- enlever « obtained »
- "st" => "step"

Panel Miscellaneous :
- "Temperature of laser" => "Instrument chamber temperature"
- "More comments" => "Description", doit contenir le commentaire suivant par défaut :
"Sample in Martian chamber
With folding mirror
Laser in instrument chamber"
- Laser pulse : supprimer
- SOH : yes par défaut
- Laser freq : 3 Hz par défaut
- Existing of laser : désactiver

CGDL-idees_v3.pptx (440 KB) Etienne Pallier, 06/25/2015 06:06 pm

Diapositive10.jpg (66.6 KB) Etienne Pallier, 06/26/2015 05:50 pm

Diapositive11.jpg (73.1 KB) Etienne Pallier, 06/26/2015 05:50 pm

cgdl_jpl_apres_modif_JPL_demandee_par_Agnes.jar (417 KB) Etienne Pallier, 07/03/2015 01:41 pm

ChemCamLabTool-0.4.1.jar (537 KB) Etienne Pallier, 07/03/2015 01:41 pm