source: Sophya/trunk/AddOn/TAcq/brbaseproc.h@ 3935

Last change on this file since 3935 was 3909, checked in by ansari, 15 years ago

1/ Mise en place d'informations auxiliaires au niveau de RAcqMemZoneMgr ,

FillTime (DATEOBS) pour chaque zone et identificateur des fibres

2/ remplissage de FillTime(DATEOBS) Et FiberId's de MemZoneMgr par

les classes PCIEMultiReader et EthernetReader

3/ Ajout de mots-cle (ds les datacards) pour numeros d'identification des

fibres et parametres de controles du DMA (@fiberids @waitenddma)
et corrections/ameliorations des modes acq (raw1c ordfft2c ...)

4/ Parametrage des WaitEndDMA ds PCIEWrapperInterface et implementation

au niveau de DMAMgrV6 (dmamgrv6.h .cc)

5/ Gestion d'echec DMA -> arret acquisition ds PCIEMultiReader,EthernetReader

modification TimeOut DMA entre le premier DMA et les suivants pour permettre
un arret propre rapide

6/ Adaptation de la classe BRVisibilityCalculator pour utilisation

FillTime (DATEOBS) et FiberIds de MemZoneMgr - amelioration de
l'identification des numeros de canaux pour les matrices de visibilites

7/ Petites ameliorations (ecriture mot-cles) pour MultiDataSaver et

amelioration classe BRMultiFitsReader pour lecture FillTime (DATEOBS)
et FiberIds depuis les fichiers FITS et remplissage de RAcqMemZoneMgr

Reza, 21/11/2010

File size: 2.4 KB
Line 
1#ifndef BRBASEPROC_H_SEEN
2#define BRBASEPROC_H_SEEN
3
4//----------------------------------------------------------------
5// Projet BAORadio - (C) LAL/IRFU 2008-2010
6// Classes de threads de traitememt donnees BAORadio
7//----------------------------------------------------------------
8
9
10#include "racqumem.h"
11#include <string>
12#include <vector>
13#include <iostream>
14
15#include "brpaqu.h"
16#include "timestamp.h" // include SOPHYA
17
18using namespace std;
19
20//---------------------------------------------------------------------
21// Classe de base pour l'analyse donnees (paquets acquisition) BAORadio
22// Les classes de traitement des paquets BAORadio peuvent heriter de
23// cette classe de base BRBaseProcessor en redefinissant la methode Process()
24//---------------------------------------------------------------------
25class BRBaseProcessor : public SOPHYA::ZThread {
26public:
27 BRBaseProcessor(RAcqMemZoneMgr& memgr, MemZaction mmact=MemZA_ProcA);
28
29 MemZStatus SetMemZAction(MemZaction mmact=MemZA_ProcA);
30
31 virtual void run();
32 inline void Stop();
33 inline void STOP() { stop_ = true; }
34
35 inline void setNameId(const char* nom, int id)
36 { bpnom_=nom; bpid_=id; }
37 inline void setNameId(string nom, int id)
38 { bpnom_=nom; bpid_=id; }
39
40protected:
41 // Methode devant etre redefinie pour effectuer le traitement - appele pour chaque trigger
42 virtual int Process(); // renvoie 0 si OK, sinon, arret traitement
43
44 RAcqMemZoneMgr& memgr_;
45 MemZaction mmact_; // Definition de l'action sur les paquets (defaut=MemZA_ProcA)
46 MemZStatus mmsta_; // Statut associe a mmact_ (defaut=MemZS_ProcA)
47 bool stop_;
48 vector<Byte*> fbuff_; // Vecteur de pointeur de zone memoire pour chaque fibre
49 vector<Byte*> fprocbuff_; // Vecteur de pointeur de proc_zone_mem pour chaque fibre
50 vector<BRPaquet> vpaq_; // Vecteur de BRPaquet pour chaque fibre
51 vector<Byte*> vprocpaq_; // Vecteur de pointeur de zone memoire pour donnees traitees de chaque paquet/fibre
52 vector<BRPaqChecker> vpchk_;
53 vector<uint_8> vfgok_; // Vecteur de flag si paquet OK pour chaque fibre
54 vector<uint_8> curfc_; // Vecteur de numero de FrameCounter pour chaque fibre
55 vector<uint_8> fcfirst_; //
56 vector<uint_8> ttfirst_;
57 bool fgokallfibers_; // true -> paquets for all fibers OK
58
59 uint_8 totprocnpaq_;
60 SOPHYA::TimeStamp cts_; // current time stamp, get from MemZoneMgr
61
62 string bpnom_; // nom du processeur
63 int bpid_; // numero d'identificateur
64};
65
66
67
68#endif
Note: See TracBrowser for help on using the repository browser.