Changeset 3758 in Sophya for trunk/AddOn/TAcq/racqueth.cc


Ignore:
Timestamp:
Apr 30, 2010, 2:46:42 PM (15 years ago)
Author:
ansari
Message:

Debug divers classes/progeramme envoi-reception paquets sur Ethernet, Reza 30/04/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/racqueth.cc

    r3757 r3758  
    4242
    4343  char msg[BRTCPMSGLEN];
     44  cout << "PCIEToEthernet/Info: Establishing TCP/IP connections ... " << endl;
    4445  for(size_t i=0; i<vec_pciw_.size(); i++) {
    4546    vector<ClientSocket> vskt;
    46     for(size_t j=0; j<vskt.size(); j++) {
     47    for(size_t j=0; j<destname_.size(); j++) {
    4748      ClientSocket sok(destname_[j], tcpportid_);
    4849      for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0';
     
    5758    vvec_skt_.push_back(vskt);   
    5859  }
     60  totrdsnd_ = 0;
    5961}
    6062
     
    7476  struct timeval tv1,tv2;
    7577  gettimeofday(&tv1, NULL);
    76   uint_8 totrdsnd = 0;
    7778 
    7879  cout << " PCIEToEthernet::run() - Starting , NMaxMemZones=" <<  par_.MaxNbBlocs()
     
    8384  // sigaddset(&act.sa_mask,SIGINT);  // pour proteger le transfert DMA
    8485  //sigaction(SIGINT,&act,NULL);       
    85   uint_4 paqszmm = par_.MMgrNbPaquet();
     86  uint_4 paqszmm = par_.MMgrPaquetSize();
    8687  uint_4 paqsz =  packSize_;
    8788  uint_4 dmasz = vec_pciw_[0]->TransferSize();
     
    103104  // Initialisation des tampons pour recopie des paquets a cheval pour chaque DMA
    104105  for (int i=0;i< (int)nbDma_ ;i++) { 
     106    //    cout << " DEBUG*AB paqsz=" << paqsz << " paqszmm=" << paqszmm << endl;
     107    tampon[i]=nexpaq[i]=NULL;
    105108    tampon[i] = new Byte[paqsz];
    106109    nexpaq[i] = new Byte[paqszmm];
     
    131134    for(size_t j=0; j<vskt.size(); j++) {
    132135      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;
    135140        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    }
    138144  }
    139145
     
    165171    }
    166172    if (fgbaddma) continue; 
     173
    167174    if (fgdirectsend) {  // Pas de copie / reduction de taille de paquet, on rebalance tel quel ...
    168175      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);
    174178        trnbytes[fib] += (uint_8)dmasz;
    175179        npaqfait[fib] += (trnbytes[fib]/(uint_8)paqszmm);
     
    179183      continue;  // On bypasse le reste
    180184    }
     185
    181186    // Si on arrive ici, c'est qu'il faut copier / reduire les paquets ....
    182187    uint_4 curoff=0;
     
    205210          }
    206211          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_);
    212213          npaqfait[fib]++;
    213214          if (fib==nbDma_-1) npaqfaitg++;  // Ne pas oublier le compteur de paquets faits
     
    244245          }
    245246          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_);
    251248          npaqfait[fib]++;
    252249          if (fib==nbDma_-1) npaqfaitg++;  // Ne pas oublier le compteur de paquets faits
     
    269266  if (tmelaps2<0.1) tmelaps2=0.1;
    270267  cout << " ---------- PCIEToEthernet::run()-End summary NPaqFait=" << npaqfaitg
    271        << " TotSend (kb)=" << totrdsnd/1024 << "------ " << endl;
     268       << " TotSend (kb)=" << totrdsnd_/1024 << "------ " << endl;
    272269  for (int dma=0; dma < (int)nbDma_ ;dma++)   {
    273270    cout << " --Fib=" << dma << " NPaqFait=" << npaqfait[dma] <<  " TotDMATransfer="
     
    305302}
    306303
    307 
     304static long cnt_prt=0;
     305/* --Methode-- */
     306size_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}
    308317//------------------------------------------------------------------
    309318// Classe thread de lecture sur interface reseau (Ethernet)
     
    369378    strcpy(msg,"BAORadio-EthernetReader-Ready-GO");
    370379    for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
     380      cout << " EthernetReader/Debug - Sending GO message to sender " << fib << endl;
    371381      vsok_[fib].Send(msg,BRTCPMSGLEN);
    372382    }
Note: See TracChangeset for help on using the changeset viewer.