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