Changeset 3758 in Sophya
- Timestamp:
- Apr 30, 2010, 2:46:42 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/mfacq.cc
r3757 r3758 72 72 if (narg>3) { 73 73 basedir=arg[2]; 74 for(int jj= 2; jj<narg; jj++) oargs.push_back(arg[jj]);74 for(int jj=3; jj<narg; jj++) oargs.push_back(arg[jj]); 75 75 } 76 76 try { … … 165 165 mmgr.SetFinalizedMask(((uint_4)MemZS_Saved) | ((uint_4)MemZS_Proc)); 166 166 cout << " mfacq[1.b]/Info: Mmgr.SetFinalizedMask( MemZS_Saved | MemZS_Proc )" << endl; 167 //mmgr.SetFinalizedMask( (uint_4)MemZS_Saved ); 168 //cout << " mfacq[1.b]/Info: Mmgr.SetFinalizedMask( MemZS_Saved )" << endl; 167 169 } 168 170 … … 198 200 string ppath=bpar.OutputDirectory(); 199 201 MonitorProc PrThr(mmgr); 202 cout << "mfacq[3] Creating PCIEMultiReader thread object " << endl; 200 203 vector<PCIEWrapperInterface*> vec_pciw; 201 for (int i=0 ;i<bpar.NFibers();i++) vec_pciw.push_back( pciwp[i]); 202 cout << "mfacq[3] Creating PCIEMultiReader thread object " << endl; 204 for (int i=0 ;i<bpar.NFibers();i++) { 205 vec_pciw.push_back( pciwp[i]); 206 // cout << " mfacq[3.b]/Debug - pciwp[" << i << "] " << hex << pciwp[i] << dec << endl; 207 } 203 208 PCIEMultiReader PcierThr(vec_pciw, mmgr, bpar.GetParams()); 204 209 // usleep(200); attente au cas ou ... -
trunk/AddOn/TAcq/racqueth.cc
r3757 r3758 42 42 43 43 char msg[BRTCPMSGLEN]; 44 cout << "PCIEToEthernet/Info: Establishing TCP/IP connections ... " << endl; 44 45 for(size_t i=0; i<vec_pciw_.size(); i++) { 45 46 vector<ClientSocket> vskt; 46 for(size_t j=0; j< vskt.size(); j++) {47 for(size_t j=0; j<destname_.size(); j++) { 47 48 ClientSocket sok(destname_[j], tcpportid_); 48 49 for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0'; … … 57 58 vvec_skt_.push_back(vskt); 58 59 } 60 totrdsnd_ = 0; 59 61 } 60 62 … … 74 76 struct timeval tv1,tv2; 75 77 gettimeofday(&tv1, NULL); 76 uint_8 totrdsnd = 0;77 78 78 79 cout << " PCIEToEthernet::run() - Starting , NMaxMemZones=" << par_.MaxNbBlocs() … … 83 84 // sigaddset(&act.sa_mask,SIGINT); // pour proteger le transfert DMA 84 85 //sigaction(SIGINT,&act,NULL); 85 uint_4 paqszmm = par_.MMgr NbPaquet();86 uint_4 paqszmm = par_.MMgrPaquetSize(); 86 87 uint_4 paqsz = packSize_; 87 88 uint_4 dmasz = vec_pciw_[0]->TransferSize(); … … 103 104 // Initialisation des tampons pour recopie des paquets a cheval pour chaque DMA 104 105 for (int i=0;i< (int)nbDma_ ;i++) { 106 // cout << " DEBUG*AB paqsz=" << paqsz << " paqszmm=" << paqszmm << endl; 107 tampon[i]=nexpaq[i]=NULL; 105 108 tampon[i] = new Byte[paqsz]; 106 109 nexpaq[i] = new Byte[paqszmm]; … … 131 134 for(size_t j=0; j<vskt.size(); j++) { 132 135 for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0'; 133 vskt[i].Receive(msg,BRTCPMSGLEN); 134 if (strncmp(msg,"BAORadio-EthernetReader-Ready-GO",32)!=0) 136 vskt[j].Receive(msg,BRTCPMSGLEN); 137 if (strncmp(msg,"BAORadio-EthernetReader-Ready-GO",32)!=0) { 138 msg[BRTCPMSGLEN-1]='\0'; 139 cout << "PCIEToEthernet:ERROR BAD Go for fiber=" << i << " dest=" << j << " msg: " << msg << endl; 135 140 throw SocketException("PCIEToEthernet:ERROR/ BAD Go message from EthernetReader "); 136 } 137 cout << " PCIEToEthernet::run() Received GO message for Fiber/DMA " << i << " from " << destname_[i] << endl; 141 } 142 cout << " PCIEToEthernet::run() Received GO message for Fiber/DMA " << i << " from " << destname_[j] << endl; 143 } 138 144 } 139 145 … … 165 171 } 166 172 if (fgbaddma) continue; 173 167 174 if (fgdirectsend) { // Pas de copie / reduction de taille de paquet, on rebalance tel quel ... 168 175 for (int fib=0; fib<(int) nbDma_ ;fib++) { 169 vector<ClientSocket>& vskt = vvec_skt_[fib]; 170 for(size_t j=0; j<vskt.size(); j++) { 171 vskt[j].Send((const char *)Datas[fib], dmasz); 172 totrdsnd += dmasz; 173 } 176 //DBG cout << " DEBUG*B fib=" << fib << " Datas[fib]=" << hex << Datas[fib] << dec << endl; 177 SendToTargets(fib, Datas[fib], dmasz); 174 178 trnbytes[fib] += (uint_8)dmasz; 175 179 npaqfait[fib] += (trnbytes[fib]/(uint_8)paqszmm); … … 179 183 continue; // On bypasse le reste 180 184 } 185 181 186 // Si on arrive ici, c'est qu'il faut copier / reduire les paquets .... 182 187 uint_4 curoff=0; … … 205 210 } 206 211 BRPaquet paq(nexpaq[fib], packSizeInMgr_); 207 vector<ClientSocket>& vskt = vvec_skt_[fib]; 208 for(size_t j=0; j<vskt.size(); j++) { 209 vskt[j].Send((const char *)nexpaq[fib], packSizeInMgr_); 210 totrdsnd += packSizeInMgr_; 211 } 212 SendToTargets(fib, nexpaq[fib], packSizeInMgr_); 212 213 npaqfait[fib]++; 213 214 if (fib==nbDma_-1) npaqfaitg++; // Ne pas oublier le compteur de paquets faits … … 244 245 } 245 246 BRPaquet paq(nexpaq[fib], packSizeInMgr_); 246 vector<ClientSocket>& vskt = vvec_skt_[fib]; 247 for(size_t j=0; j<vskt.size(); j++) { 248 vskt[j].Send((const char *)nexpaq[fib], packSizeInMgr_); 249 totrdsnd += packSizeInMgr_; 250 } 247 SendToTargets(fib, nexpaq[fib], packSizeInMgr_); 251 248 npaqfait[fib]++; 252 249 if (fib==nbDma_-1) npaqfaitg++; // Ne pas oublier le compteur de paquets faits … … 269 266 if (tmelaps2<0.1) tmelaps2=0.1; 270 267 cout << " ---------- PCIEToEthernet::run()-End summary NPaqFait=" << npaqfaitg 271 << " TotSend (kb)=" << totrdsnd /1024 << "------ " << endl;268 << " TotSend (kb)=" << totrdsnd_/1024 << "------ " << endl; 272 269 for (int dma=0; dma < (int)nbDma_ ;dma++) { 273 270 cout << " --Fib=" << dma << " NPaqFait=" << npaqfait[dma] << " TotDMATransfer=" … … 305 302 } 306 303 307 304 static long cnt_prt=0; 305 /* --Methode-- */ 306 size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len) 307 { 308 //DBG cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 309 vector<ClientSocket>& vskt = vvec_skt_[fib]; 310 size_t rc=0; 311 for(size_t j=0; j<vskt.size(); j++) { 312 rc += vskt[j].Send((const char *)data, len); 313 totrdsnd_ += len; 314 } 315 return rc; 316 } 308 317 //------------------------------------------------------------------ 309 318 // Classe thread de lecture sur interface reseau (Ethernet) … … 369 378 strcpy(msg,"BAORadio-EthernetReader-Ready-GO"); 370 379 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 380 cout << " EthernetReader/Debug - Sending GO message to sender " << fib << endl; 371 381 vsok_[fib].Send(msg,BRTCPMSGLEN); 372 382 } -
trunk/AddOn/TAcq/racqueth.h
r3757 r3758 55 55 56 56 protected: 57 virtual size_t SendToTargets(int fib, Byte* data, size_t len); 58 57 59 BRParList par_; // Parametres divers d'acquisition 58 60 … … 68 70 uint_4 packSizeInMgr_; 69 71 uint_4 nbDma_; 72 uint_8 totrdsnd_; 70 73 71 74 };
Note:
See TracChangeset
for help on using the changeset viewer.