Premiers retours sur l`utilisation de LIMA à SOLEIL

publicité
Compte Rendu de la visioconférence Lima du 13/10/2010
Rédacteur : F. Langlois
SOLEIL : Arafat Noureddine (AN), Florent Langlois (FL)
ESRF : Laurent Claustre (LC), Sebastien Petitdemange (SP), Alejandro Homs (AH), Andy Gotz (AG)
Agenda Prévu :
1. Organisation
a. Mini « formation » git : principes,termes,sous modules
b. Clef ssh ?
c. Commit basler/ modif pour gcc4
d. maven
2. Documentation
a. Wiki (sur epn ?)
b. Doxygen
3. Fonctionnalités
a. Support Nexus
b. Support win32
4. Code
a.
b.
c.
d.
e.
Pb utilisation Processlib (Flip)
Pb utilisation Status
CtSaving : Interface ?
Soft_operation : Quoi + Où
YAT
5. Devices
a. Notre solution envisagée
b. Votre solution
Nos objectifs :
- pouvoir rapidement commiter/updater sur GIT afin de pouvoir travailler correctement (aujourd’hui on a
plusieurs « instances » de lima)
- intégrer le support de NeXus
- mettre en place une maquette sur une ligne (nanoscopium) (pour mi –novembre)
1 Organisation
1.1
Git
Nous avons testé le push de nos ajouts au sous module LimaCameraBasler, mais cela n’a pas fonctionné.
Sebastien doit regarder de son coté avec les admin de la forge. AG nous conseille de demander de l’aide à
Frederic Picca.
Post Reunion : FL arrive à Pusher sur epn avec l’aide de F. Picca
Pour la politique de commit/push, l’ESRF ne préfère pas que Soleil puisse pusher leur modifs sur le git epn
de peur d’impacter les systèmes déjà en production à l’ESRF. SOLEIL pense que via le mécanisme de tags ,
SYNCHROTRON SOLEIL – Société Civile au capital de 12.000 €
439 684 903 R.C.S. EVRY – N° TVA Intracommunautaire : FR 27 439 684 903 - NAF 731Z – SIRET 439 684 903 00016
Siège social : CEA SACLAY – L’Orme des Merisiers – F 91190 SAINT-AUBIN
Adresse postale : Division Informatique– L’Orme des Merisiers – Saint-Aubin - BP 48 - F 91192 GIF-sur-YVETTE Cedex
Tél. 01 69 35 93 21 - Fax 01 69 35 94 53- Web http://www.synchrotron-soleil.fr/
il est tout à fait possible de répondre à cette crainte légitime, et que chaque institut peut ainsi gérer ses
versions de production.
Il est décidé, que dans un premier temps Soleil envoie un Tar à l’esrf, et l’esrf se charge du Merge.
Une autre solution est possible : Soleil push ses modifs sur une branche du git epn et l’esrf se charge du
merge.
Enfin, dans un troisième temps et en fonction de l’utilisation du git epn, Soleil pushera seul ses modifs sur le
git epn. Il y aura de toute façon des tags pour pouvoir facilement revenir en arrière.
Dès aujourd’hui, Soleil a les droits pour pusher sur le sous module CameraBasler.
SOLEIL doit envoyer une clef ssh pour chaque utilisateur et pour chaque plateforme (linux et windows) à
Sébastien qui administre le projet GIT
Il faut git >= 1.6 afin de pouvoir gérer les sous modules.
Post Réunion : Pour la partie windows, l’esrf utilise msysgit.
1.2
Maven
Soleil utilise maven pour compiler ses différents projets. Soleil rajoutera donc des fichiers pom.xml dans
l’arborescence lima. L’esrf veut se renseigner sur maven : soleil envoie des infos sur comment
installer/déployer/utiliser maven.
2 Documentation
2.1
Wiki
L’esrf indique qu’il n’est aujourd’hui pas possible techniquement de mettre le wiki sur epn. L’ESRF voit
avec les admins epn pour transférer le WIKI de BlissGarden vers EPN.
Nous avons une discussion sur le format de la documentation. AG propose l’idée d’un format de doc plus
courant, et qui puisse générer lui-même d’autre format. AG demande ce qui est utilisé pour la collaboration
CDM (Ansto-SOLEIL).
Post Reunion FL : Pour la collaboration CDM, les outils de documentation sont en cours de discussion avec
3 candidats possibles :
1. MAVEN site : http://maven.apache.org/guides/mini/guide-site.html .
2. ANSTO propose d’utiliser DocBook. Apparemment c’est un système pas très pratique à utiliser.
3. Le Wiki
Je pense que pour l’instant on reste sur le wiki (sur epn si possible).
L’esrf a enregistré le compte de FL sur le wiki, afin que soleil puisse modifier le wiki.
2.2
Doxygen
Pour la documentation développeur / API, Doxygen sera utilisé.
Post réunion FL: Il faudrait mettre les pages html produite sur la forge epn.
INF-CR-VisioConf Lima
Dernière mise à jour :
SYNCHROTRON-SOLEIL
Page 2/5
3 Fonctionnalités
3.1
Support NeXus
Soleil va implémenter le support du format NeXus, en suivant l’interface CtSaving, et en s’inspirant de ce
qui a été fait par l’esrf sur cbf.
3.2
Windows
L’esrf va faire les modifs lima afin de supporter windows. Principalement des modifications concernant les
threads. Soleil propose de tester avec la camera basler sous windows.
Soleil envoie des exemples de makefile windows à l’esrf. (makefile.vc, tango.opt…)
4 Code
4.1
Pb utilisation Status
Soleil n’arrive pas à mettre en place correctement le status avec la camera basler. L’esrf propose de jeter un
œil sur les sources basler des qu’elles seront sur git. En parallèle AN regarde ce qui est fait sur la camera
frelon, où le status fonctionne correctement.
4.2
Pb utilisation Processlib
Soleil n’arrive pas à mettre en place la fonctionnalité Flip de la processlib.
Explication de la processlib par l’esrf :
La processlib est une librairie c++ a part, hors de lima. Elle comprend plusieurs fonctionnalités : softroi,
binning, flip, roicounter, saving…. Le moyen d’utiliser ces fonctionnalité depuis lima est de passer par
soft_operations. On peut utiliser SoftOpInternal ou SoftOpExternal. La différence des 2 est :
SoftOpInternal : ces opérations ne sont pas publiques mais utilisés en interne par la couche contrôle, par
example CtImage pour des opérations comme binning, ROI et flip appliqués sur la BaseImage sans recopie
de données et sur le HwBuffer.
SoftOpExternal : contiendra toutes les opérations de la processlib accessible en publique que l’on pourra
appliquer en post traitement. Dans ce cas un deuxième buffer contiendra un recopie des données traiter. On
doit encore implémenter une interface, sinon seule la fonction RoiCounter fait du SoftOpExternal mais
comme elle ne nécessite pas de recopie de l’image (des statistiques sur l’image sont retournées) nous avons
pu l’implémenter.
Exemple pour utiliser le Flip :
OK, après vérification, effectivement ca n’est pas disponible dans CtImage, on se propose de le faire
rapidement. Ensuite comme toute SoftOpInternal il sera possible d’activer le flip depuis CtImage
(control.image()) en précisant vertical et/ou horizontal flip.
La question de l’intégration d’ImgBeamAnalyzer(IBA) est évoquée.
4.3
Yat
Au sujet de l’utilisation de YAT dans lima, l’esrf explique que la philosophie de yat (système de message)
est assez différent de la philosophie de thread actuel dans lima. La mise en place de YAT impacterait
beaucoup de modules. On décide donc d’envisager l’utilisation de Yat dans le cadre d’une évolution de lima.
Soleil pourra commencer la mise en place de YAT dans une branche.
INF-CR-VisioConf Lima
Dernière mise à jour :
SYNCHROTRON-SOLEIL
Page 3/5
4.4
Nouveautés
-
Accumulation (pour permettre d’éviter la saturation): déplacé de Hardware a Control pour faciliter
l’utilisation
-
Concaténation (ajouter plusieurs lignes pour faire une image) : idem
-
Shutter (possibilité de contrôler des shutter intégré au camera) : idem
5 Devices
5.1
Solution Soleil
Aujourd’hui, pour ses tests, Soleil utilise 2 classes dans un DeviceServer. Ces 2 classes se partagent les
objets de lima. (CtControl)
Soleil envisage de n’avoir qu’une seule classe (eg LimaDet) qui aurait un subset d’attributs/commandes
générique (image, expotime, Start, Stop…) et un subset d’attributs spécifiques en fonction de la caméra
utilisée.
Ces attributs serait crées dynamiquement, a partir de plugin. (Comme fait aujourd’hui dans ImgGrabber).
Ceci a pour avantage d’avoir une seule classe Tango à maintenir pour plusieurs plugins.
DeviceServer LimaDet
class LimaDet
-Start/Stop
- exposureTime
- image
- State
-IP
-Gain
-Threshold
5.2
Partie Spécifique créé
dynamiquement via des
plugins
Solution ESRF
Aujourd’hui, l’esrf utilise plusieurs classes dans le même device server (dans le cas du Maxipix par exemple)
INF-CR-VisioConf Lima
Dernière mise à jour :
SYNCHROTRON-SOLEIL
Page 4/5
DeviceServer LimaDet
class LimaDet
class Maxipix
-Start/Stop
- exposureTime
- image
- State
class RoiCounter
-IP
-Gain
-Threshold
-…
class TacoWrapper
- getImage
- getExpo
- getState
-…
- count
Spec
Les solutions de chacun ne sont pas arrêtées. Il est décidé que chacun mette en place sa solution envisagée, et
ensuite, voir les pour et les contres de chaque solution.
Dans tous les cas, les 2 instituts sont d’accord pour dire qu’il serait très préférable d’utiliser la même solution
afin de partager au mieux le code.
6 Actions
Who
What
When
ESRF
Configuration Git epn pour accès depuis Soleil
Fait
SOLEIL
Envoie info Maven et exemples Makefile win32
Octobre 2010
ESRF
Possibilité de migration wiki sur epn
ASAP
SOLEIL/ESRF
Réfléchir sur format de documentations
ASAP
SOLEIL
Support Nexus
November 2010
ESRF
Portage windows
November 2010
INF-CR-VisioConf Lima
Dernière mise à jour :
SYNCHROTRON-SOLEIL
Page 5/5
Téléchargement