SlideShare una empresa de Scribd logo
Diseño del software de
adquisición de datos para
          ANAIS

          Miguel Oliván
              GIFNA
     Universidad de Zaragoza
Requisitos funcionales

   Hardware de adquisición intercambiable 
   Almacenamiento de los datos en formato ROOT
   Incorporación de nuevos módulos, vías, fuentes de 
      datos, cristales, de modo sencillo 
   Almacenamiento de la configuración junto a los 
     datos de adquisición
   Monitorización (ritmos de adquisición, otros)
Requisitos no funcionales

   Estabilidad (Cuantificar)
   Maximizar tiempo vivo (Cuantificar)
          Rendimiento suficiente en adquisición
          Respuesta rápida a eventos
   Registro de incidencias
Pautas de diseño

   Keep it Simple → KISS
          Fácil de entender, de modificar
   Don't repeat yourself → DRY
          Fácil de mantener
   Fail Fast
          Salir rápido en caso de error, informando del motivo
   Extensibilidad
Un vistazo al diseño
Un vistazo al diseño

   Conceptos fundamentales:
          DAQSource → Fuente de datos, datos elementales
          DAQEvent      → Evento, conjunto de fuentes 
            asociadas a un trigger
          DAQBoard      →  Dispositivo que puede esperar al 
            trigger, adquirir datos de fuentes, realizar acciones 
            al comienzo o después de cada adquisición
                  Matacq, LTD, XDC, PU, IORegister ...
Hardware intercambiable

   Polimorfismo: Elección de implementación en 
     tiempo de ejecución → virtual
   Requiere un interfaz común e identificar 
     funcionalidades:
          Init, WaitForTrigger, Acquire,
            DoPostAcquire

    DAQHardwareFactory instancia las clases en 
     función de la configuración
Hardware intercambiable

   Controladores
          Derivan de la clase cuya funcionalidad implementa: 
            DAQBoard
          Gestionan tiempos y estado del hardware
          Gestionan la relación Fuente ↔ Dispositivo
          Gestionan los buffers internamente
Almacenamiento de datos

   Ficheros ROOT
   Estructuras de datos sencillas con datos 
     elementales
          Legibles en tiempo de ejecución y extensibles
   Usando Branch(name, address, leaflist,
     bufsize) y generando leaflist en tiempo de 
     ejecución (ver TData.h)
   Con los nombres de las fuentes de la configuración
Configuración

   Formato YAML
          Legible
          Editable manual y automáticamente
   Permite añadir y modificar hardware 
   Esquema genérico:
           - grupo: nombre
             clave: valor
             clave: [vector, de, valores]
Ejemplo de adquisición
                     SOFT RESET



   SIGNALS                    IO
              LTD    OR
                           Register   Gate Generator
             (VME)
                            (VME)
                                                           GATE



DELAYED
SIGNALS


              QDC          Matacq      Pattern Unit
             (VME)         (VME)         (VME)




                                                      CHANNEL PER SIGNAL
                                                      GLOBAL
Ejemplo de configuración
- event: Group1                                       - source: pu0

 trigger: io_reg_0                                     board: pu0

 source: [matacq1_0,matacq1_1, qdc1_0, qdc1_1, pu0]   - matacq: matacq1

 post_acquire: [ matacq1, io_reg_0]                    baseaddr: 0x10000

- source: matacq1_0                                    channels: [0, 1, 2]

 board: matacq1                                        #...

 channel: 0                                           - xdc: qdc1

- source: matacq1_1                                    baseaddr: 0xA0000

 board: matacq1                                        channel: [0, 1]

 channel: 1                                           - ltd814: ltd

- source: qdc1_0                                       baseaddr: 0xC0000

 board: qdc1                                           channel: [14 , 15]

 channel: 0                                            threshold: [20, 20]

- source: qdc1_1                                      - io_register: io_reg_0

 board: qdc1                                           baseaddr: 0xE0000

 channel: 1                                           - pattern_unit_259: pu0

                                                       baseaddr: 0x60000
Ejemplo de captura
Detalles de implementación
   Bucle de adquisición:   DAQEvent.h
Detalles de implementación
   Controlador DAQBoard:   hw/Matacq.h
Detalles de implementación
   Instanciar controlador:   hw/DAQHardwareFactory.cxx
Detalles de implementación

   Buenas prácticas en C++:
          Uso de la librería estándar de C++
                   std::string
          Uso de la STL (Standard Template Library)
          RAII (Resource Acquisition Is Initialization)
          Otras herramientas: Valgrind, gdb, subversion
Puesta en marcha

   Implementación buffering, datos opcionales
   Análisis de datos 
   Pruebas de rendimiento y estabilidad → junio
   Instalación en Canfranc   → ¿1º semana de julio?
   Ajuste fino de parámetros → julio
   Adquisición prolongada    → agosto­septiembre
Cuestiones abiertas - futuro

   Estructura de datos reordenada en fichero ROOT 
   Guardar datos opcionalmente. Condiciones 
   Test Interrupciones vs. Polling
   Kernel realtime vs. Normal
   Threading en la adquisición
   Almacenamiento síncrono vs. Asíncrono
   Configuración gráfica

Más contenido relacionado

Similar a Diseño del software de adquisición de datos para ANAIS

Jdbc
JdbcJdbc
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
RootedCON
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
RootedCON
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solaris
guest926912
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Codemotion
 
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TISoluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
Mario Redón Luz
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
Lorena Fernández
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5
Nahuel Defossé
 
Zookeeper
ZookeeperZookeeper
SDN (Software Define Networking) - The evolution of the Network
SDN (Software Define Networking) - The evolution of the NetworkSDN (Software Define Networking) - The evolution of the Network
SDN (Software Define Networking) - The evolution of the Network
Logicalis Latam
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
Ronald Francisco Vargas Quesada
 
mantenimiento
mantenimientomantenimiento
mantenimiento
mateo1997
 
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
RootedCON
 
Prototipo de Proveedor de SaaS para Pymes
Prototipo de Proveedor de SaaS para PymesPrototipo de Proveedor de SaaS para Pymes
Prototipo de Proveedor de SaaS para Pymes
Daniel Núñez Espinoza
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
Francisco Javier Toscano Lopez
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
T.I.C
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
Eduardo Castro
 
Cacti desde-paquetes
Cacti desde-paquetesCacti desde-paquetes
Cacti desde-paquetes
Renè Grillet
 
Cacti desde-paquetes
Cacti desde-paquetesCacti desde-paquetes
Cacti desde-paquetes
tioe
 
Proyecto de Grado
Proyecto de GradoProyecto de Grado
Proyecto de Grado
Pablo Zincarini
 

Similar a Diseño del software de adquisición de datos para ANAIS (20)

Jdbc
JdbcJdbc
Jdbc
 
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
 
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solaris
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
 
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TISoluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
Soluciones de Oracle para la Auditoría, Seguridad y Gobierno de TI
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5
 
Zookeeper
ZookeeperZookeeper
Zookeeper
 
SDN (Software Define Networking) - The evolution of the Network
SDN (Software Define Networking) - The evolution of the NetworkSDN (Software Define Networking) - The evolution of the Network
SDN (Software Define Networking) - The evolution of the Network
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
 
mantenimiento
mantenimientomantenimiento
mantenimiento
 
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
David Meléndez Cano - Trash Robotic Router Platform (TRRP) [Rooted CON 2013]
 
Prototipo de Proveedor de SaaS para Pymes
Prototipo de Proveedor de SaaS para PymesPrototipo de Proveedor de SaaS para Pymes
Prototipo de Proveedor de SaaS para Pymes
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
 
Cacti desde-paquetes
Cacti desde-paquetesCacti desde-paquetes
Cacti desde-paquetes
 
Cacti desde-paquetes
Cacti desde-paquetesCacti desde-paquetes
Cacti desde-paquetes
 
Proyecto de Grado
Proyecto de GradoProyecto de Grado
Proyecto de Grado
 

Más de miguelolivan

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospects
miguelolivan
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduino
miguelolivan
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...
miguelolivan
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muerto
miguelolivan
 
Un Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuraciónUn Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuración
miguelolivan
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svn
miguelolivan
 

Más de miguelolivan (6)

ANAIS: status and prospects
ANAIS: status and prospectsANAIS: status and prospects
ANAIS: status and prospects
 
Adquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con ArduinoAdquisición de datos ADC Canberra con Arduino
Adquisición de datos ADC Canberra con Arduino
 
Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...Sistema de adquisición de datos para un experimento de detección directa de m...
Sistema de adquisición de datos para un experimento de detección directa de m...
 
Estimación tiempo muerto
Estimación tiempo muertoEstimación tiempo muerto
Estimación tiempo muerto
 
Un Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuraciónUn Clúster con SLURM, uso y configuración
Un Clúster con SLURM, uso y configuración
 
Sistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svnSistemas de control de versiones. Introducción a svn
Sistemas de control de versiones. Introducción a svn
 

Último

DIRECTORIO órgano de control institucional - ABRIL 2024.pdf
DIRECTORIO órgano de control institucional - ABRIL 2024.pdfDIRECTORIO órgano de control institucional - ABRIL 2024.pdf
DIRECTORIO órgano de control institucional - ABRIL 2024.pdf
peruvip2
 
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
Think-e Comentarios México
 
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdfNutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
JulianCorrea38
 
Actividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptxActividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptx
luis95466
 
Semana 2 - Competidores en el analisis de administracion
Semana 2 - Competidores en el analisis de administracionSemana 2 - Competidores en el analisis de administracion
Semana 2 - Competidores en el analisis de administracion
MarinaGutierrez35
 
Practica individual-Semana.Curso Liderazgo y comportamiento organizacional
Practica individual-Semana.Curso Liderazgo y comportamiento organizacionalPractica individual-Semana.Curso Liderazgo y comportamiento organizacional
Practica individual-Semana.Curso Liderazgo y comportamiento organizacional
JanethLozanoLozano
 
Calculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdfCalculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdf
LEIDYRIOFRIO
 
TECNOLOGIA FARMACEUTICA II GRANULACION.pdf
TECNOLOGIA FARMACEUTICA II GRANULACION.pdfTECNOLOGIA FARMACEUTICA II GRANULACION.pdf
TECNOLOGIA FARMACEUTICA II GRANULACION.pdf
IsaacUsca
 
Las Inteligencias Artificiales pdf que hizimos en grupo
Las Inteligencias Artificiales pdf que hizimos en grupoLas Inteligencias Artificiales pdf que hizimos en grupo
Las Inteligencias Artificiales pdf que hizimos en grupo
fabianlomparteomg
 
Bloqueo y candadeo, norma NOM-004-STPS-1999
Bloqueo y candadeo, norma NOM-004-STPS-1999Bloqueo y candadeo, norma NOM-004-STPS-1999
Bloqueo y candadeo, norma NOM-004-STPS-1999
MiguelZavala76
 
MENTORÍA ENTRENANDO AL ENTRENADOR Oxford Group FULL.pdf
MENTORÍA ENTRENANDO AL ENTRENADOR  Oxford Group FULL.pdfMENTORÍA ENTRENANDO AL ENTRENADOR  Oxford Group FULL.pdf
MENTORÍA ENTRENANDO AL ENTRENADOR Oxford Group FULL.pdf
Oxford Group
 
Trabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdfTrabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdf
YennyGarcia45
 
Mario Mendoza Marichal - La Perennia.pdf
Mario Mendoza Marichal - La Perennia.pdfMario Mendoza Marichal - La Perennia.pdf
Mario Mendoza Marichal - La Perennia.pdf
Mario Mendoza Marichal
 
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdfEl consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
lrequejonn
 
Gestión de Inventarios - Cadena de Sumnistro
Gestión de Inventarios - Cadena de SumnistroGestión de Inventarios - Cadena de Sumnistro
Gestión de Inventarios - Cadena de Sumnistro
hrbuildersaccom
 
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANOINVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
jennicaceres
 
Lo nuevo NOI 11 haz ese momento historico
Lo nuevo NOI 11 haz ese momento historicoLo nuevo NOI 11 haz ese momento historico
Lo nuevo NOI 11 haz ese momento historico
Cade Soluciones
 
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOSLA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
amelyquispecaxi2006
 
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
micarnavaltupatrimon
 
ejercicios y modelos de los libros contables usados en una empresa
ejercicios y modelos de los libros contables usados en una empresaejercicios y modelos de los libros contables usados en una empresa
ejercicios y modelos de los libros contables usados en una empresa
Padit Atachagua
 

Último (20)

DIRECTORIO órgano de control institucional - ABRIL 2024.pdf
DIRECTORIO órgano de control institucional - ABRIL 2024.pdfDIRECTORIO órgano de control institucional - ABRIL 2024.pdf
DIRECTORIO órgano de control institucional - ABRIL 2024.pdf
 
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
¿Think-E Estafa? - Un Nuevo Sistema de Aprendizaje de Inglés.pdf
 
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdfNutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
Nutrición amway Nutrilite PPT EMPRESARIOS MAYO 2024.pdf
 
Actividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptxActividad Sumativa #2 Realizado por Luis Leal..pptx
Actividad Sumativa #2 Realizado por Luis Leal..pptx
 
Semana 2 - Competidores en el analisis de administracion
Semana 2 - Competidores en el analisis de administracionSemana 2 - Competidores en el analisis de administracion
Semana 2 - Competidores en el analisis de administracion
 
Practica individual-Semana.Curso Liderazgo y comportamiento organizacional
Practica individual-Semana.Curso Liderazgo y comportamiento organizacionalPractica individual-Semana.Curso Liderazgo y comportamiento organizacional
Practica individual-Semana.Curso Liderazgo y comportamiento organizacional
 
Calculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdfCalculo de amortización de un prestamo.pdf
Calculo de amortización de un prestamo.pdf
 
TECNOLOGIA FARMACEUTICA II GRANULACION.pdf
TECNOLOGIA FARMACEUTICA II GRANULACION.pdfTECNOLOGIA FARMACEUTICA II GRANULACION.pdf
TECNOLOGIA FARMACEUTICA II GRANULACION.pdf
 
Las Inteligencias Artificiales pdf que hizimos en grupo
Las Inteligencias Artificiales pdf que hizimos en grupoLas Inteligencias Artificiales pdf que hizimos en grupo
Las Inteligencias Artificiales pdf que hizimos en grupo
 
Bloqueo y candadeo, norma NOM-004-STPS-1999
Bloqueo y candadeo, norma NOM-004-STPS-1999Bloqueo y candadeo, norma NOM-004-STPS-1999
Bloqueo y candadeo, norma NOM-004-STPS-1999
 
MENTORÍA ENTRENANDO AL ENTRENADOR Oxford Group FULL.pdf
MENTORÍA ENTRENANDO AL ENTRENADOR  Oxford Group FULL.pdfMENTORÍA ENTRENANDO AL ENTRENADOR  Oxford Group FULL.pdf
MENTORÍA ENTRENANDO AL ENTRENADOR Oxford Group FULL.pdf
 
Trabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdfTrabajo sobre Presupuesto Empresarial .pdf
Trabajo sobre Presupuesto Empresarial .pdf
 
Mario Mendoza Marichal - La Perennia.pdf
Mario Mendoza Marichal - La Perennia.pdfMario Mendoza Marichal - La Perennia.pdf
Mario Mendoza Marichal - La Perennia.pdf
 
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdfEl consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
El consumidor en el 2024_V5_21Mar24 (Presentación evento)_0.pdf
 
Gestión de Inventarios - Cadena de Sumnistro
Gestión de Inventarios - Cadena de SumnistroGestión de Inventarios - Cadena de Sumnistro
Gestión de Inventarios - Cadena de Sumnistro
 
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANOINVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
INVESTIGACION FORMATIVA GESTIÓN DE TALENTO HUMANO
 
Lo nuevo NOI 11 haz ese momento historico
Lo nuevo NOI 11 haz ese momento historicoLo nuevo NOI 11 haz ese momento historico
Lo nuevo NOI 11 haz ese momento historico
 
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOSLA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
LA MACROECONOMIA Y MICROECONOMIA, CONCEPTOS
 
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
Mi Carnaval, sistema utilizará algoritmos de ML para optimizar la distribució...
 
ejercicios y modelos de los libros contables usados en una empresa
ejercicios y modelos de los libros contables usados en una empresaejercicios y modelos de los libros contables usados en una empresa
ejercicios y modelos de los libros contables usados en una empresa
 

Diseño del software de adquisición de datos para ANAIS

  • 1. Diseño del software de adquisición de datos para ANAIS Miguel Oliván GIFNA Universidad de Zaragoza
  • 2. Requisitos funcionales  Hardware de adquisición intercambiable   Almacenamiento de los datos en formato ROOT  Incorporación de nuevos módulos, vías, fuentes de  datos, cristales, de modo sencillo   Almacenamiento de la configuración junto a los  datos de adquisición  Monitorización (ritmos de adquisición, otros)
  • 3. Requisitos no funcionales  Estabilidad (Cuantificar)  Maximizar tiempo vivo (Cuantificar)  Rendimiento suficiente en adquisición  Respuesta rápida a eventos  Registro de incidencias
  • 4. Pautas de diseño  Keep it Simple → KISS  Fácil de entender, de modificar  Don't repeat yourself → DRY  Fácil de mantener  Fail Fast  Salir rápido en caso de error, informando del motivo  Extensibilidad
  • 5. Un vistazo al diseño
  • 6. Un vistazo al diseño  Conceptos fundamentales:  DAQSource → Fuente de datos, datos elementales  DAQEvent → Evento, conjunto de fuentes  asociadas a un trigger  DAQBoard →  Dispositivo que puede esperar al  trigger, adquirir datos de fuentes, realizar acciones  al comienzo o después de cada adquisición  Matacq, LTD, XDC, PU, IORegister ...
  • 7. Hardware intercambiable  Polimorfismo: Elección de implementación en  tiempo de ejecución → virtual  Requiere un interfaz común e identificar  funcionalidades:  Init, WaitForTrigger, Acquire, DoPostAcquire  DAQHardwareFactory instancia las clases en  función de la configuración
  • 8. Hardware intercambiable  Controladores  Derivan de la clase cuya funcionalidad implementa:  DAQBoard  Gestionan tiempos y estado del hardware  Gestionan la relación Fuente ↔ Dispositivo  Gestionan los buffers internamente
  • 9. Almacenamiento de datos  Ficheros ROOT  Estructuras de datos sencillas con datos  elementales  Legibles en tiempo de ejecución y extensibles  Usando Branch(name, address, leaflist, bufsize) y generando leaflist en tiempo de  ejecución (ver TData.h)  Con los nombres de las fuentes de la configuración
  • 10. Configuración  Formato YAML  Legible  Editable manual y automáticamente  Permite añadir y modificar hardware   Esquema genérico: - grupo: nombre clave: valor clave: [vector, de, valores]
  • 11. Ejemplo de adquisición SOFT RESET SIGNALS IO LTD OR Register Gate Generator (VME) (VME) GATE DELAYED SIGNALS QDC Matacq Pattern Unit (VME) (VME) (VME) CHANNEL PER SIGNAL GLOBAL
  • 12. Ejemplo de configuración - event: Group1 - source: pu0 trigger: io_reg_0 board: pu0 source: [matacq1_0,matacq1_1, qdc1_0, qdc1_1, pu0] - matacq: matacq1 post_acquire: [ matacq1, io_reg_0] baseaddr: 0x10000 - source: matacq1_0 channels: [0, 1, 2] board: matacq1 #... channel: 0 - xdc: qdc1 - source: matacq1_1 baseaddr: 0xA0000 board: matacq1 channel: [0, 1] channel: 1 - ltd814: ltd - source: qdc1_0 baseaddr: 0xC0000 board: qdc1 channel: [14 , 15] channel: 0 threshold: [20, 20] - source: qdc1_1 - io_register: io_reg_0 board: qdc1 baseaddr: 0xE0000 channel: 1 - pattern_unit_259: pu0 baseaddr: 0x60000
  • 14. Detalles de implementación  Bucle de adquisición: DAQEvent.h
  • 15. Detalles de implementación  Controlador DAQBoard: hw/Matacq.h
  • 16. Detalles de implementación  Instanciar controlador: hw/DAQHardwareFactory.cxx
  • 17. Detalles de implementación  Buenas prácticas en C++:  Uso de la librería estándar de C++  std::string  Uso de la STL (Standard Template Library)  RAII (Resource Acquisition Is Initialization)  Otras herramientas: Valgrind, gdb, subversion
  • 18. Puesta en marcha  Implementación buffering, datos opcionales  Análisis de datos   Pruebas de rendimiento y estabilidad → junio  Instalación en Canfranc → ¿1º semana de julio?  Ajuste fino de parámetros → julio  Adquisición prolongada → agosto­septiembre
  • 19. Cuestiones abiertas - futuro  Estructura de datos reordenada en fichero ROOT   Guardar datos opcionalmente. Condiciones   Test Interrupciones vs. Polling  Kernel realtime vs. Normal  Threading en la adquisición  Almacenamiento síncrono vs. Asíncrono  Configuración gráfica