Changeset 3763 in Sophya for trunk/AddOn/TAcq


Ignore:
Timestamp:
May 2, 2010, 12:13:24 PM (15 years ago)
Author:
ansari
Message:

Debug Ajout methodes Socket::SendAll(),ReceiveAll() , Reza 01/05/2010

Location:
trunk/AddOn/TAcq
Files:
3 edited

Legend:

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

    r3762 r3763  
    5353      sprintf(msg,"BAORadio-PCIEToEthernet  %d %d %d %d %d", par_.MMgrNbPaquet(), par_.MMgrPaquetSize(), dmasz, 0,i);
    5454      //           123456789012345678901234567890
    55       sok.Send(msg,BRTCPMSGLEN);
    56       sok.Receive(msg,BRTCPMSGLEN);
     55      sok.SendAll(msg,BRTCPMSGLEN);
     56      sok.ReceiveAll(msg,BRTCPMSGLEN);
    5757      if (strncmp(msg,"BAORadio-EthernetReader-OK",26)!=0)
    5858        throw SocketException("PCIEToEthernet:ERROR/  Connection to EthernetReader not established ");
     
    140140    for(size_t j=0; j<vskt.size(); j++) {
    141141      for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0';
    142       vskt[j].Receive(msg,BRTCPMSGLEN);
     142      vskt[j].ReceiveAll(msg,BRTCPMSGLEN);
    143143      if (strncmp(msg,"BAORadio-EthernetReader-Ready-GO",32)!=0) {
    144144        msg[BRTCPMSGLEN-1]='\0';
     
    316316size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len)
    317317{
    318   //  cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++;
     318  //DBG    cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++;
    319319  vector<ClientSocket>& vskt = vvec_skt_[fib];
    320320  size_t rc=0;
     
    323323    sprintf(msg,"PCIEToEthernet-SendCnt %d",vec_cntpaq_[fib]);
    324324    for(size_t j=0; j<vskt.size(); j++) {
    325       vskt[j].Send(msg, BRTCPMSGLEN2);
     325      vskt[j].SendAll(msg, BRTCPMSGLEN2);
    326326    }
    327327    if (vec_cntpaq_[fib]>0) {
    328328      for(size_t j=0; j<vskt.size(); j++) {
    329         vskt[j].Receive(msg, BRTCPMSGLEN2);
     329        vskt[j].ReceiveAll(msg, BRTCPMSGLEN2);
    330330        msg[BRTCPMSGLEN2-1]='\0';
    331331        if (strncmp(msg,"EthernetReader-RecvCnt",22) != 0)
     
    334334    }
    335335  }
     336  for(size_t j=0; j<vskt.size(); j++) {
     337    rc += vskt[j].SendAll((const char *)data, len);
     338    totrdsnd_ += eths_bsz_;
     339  }
     340  vec_cntpaq_[fib]++;
     341  return rc;
     342  /* 
    336343  if (eths_bsz_<16) {
    337344    for(size_t j=0; j<vskt.size(); j++) {
    338       rc += vskt[j].Send((const char *)data, len);
     345      rc += vskt[j].SendAll((const char *)data, len);
    339346      totrdsnd_ += eths_bsz_;
    340347    }
     
    348355    for(size_t i=0; i<nblk; i++) {
    349356      for(size_t j=0; j<vskt.size(); j++) {
    350         rc += vskt[j].Send((const char *)data+off, eths_bsz_);
     357        rc += vskt[j].SendAll((const char *)data+off, eths_bsz_);
    351358        totrdsnd_ += eths_bsz_;
    352359      }
     
    356363  if (fblk>0) {
    357364    for(size_t j=0; j<vskt.size(); j++) {
    358       rc += vskt[j].Send((const char *)data+off, fblk);
     365      rc += vskt[j].SendAll((const char *)data+off, fblk);
    359366      totrdsnd_ += fblk;
    360367    }
     
    362369  vec_cntpaq_[fib]++;
    363370  return rc;
     371  */
    364372}
    365373//------------------------------------------------------------------
     
    397405    Socket sok=srv.WaitClientConnection();
    398406    for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0';
    399     sok.Receive(msg,BRTCPMSGLEN);
     407    sok.ReceiveAll(msg,BRTCPMSGLEN);
    400408    if (strncmp(msg,"BAORadio-PCIEToEthernet",23)!=0)
    401409      throw SocketException("EthernetReader:ERROR/  Bad message from PCIEToEthernet client !");
     
    404412    if (((uint_4)ia!=par_.MMgrNbPaquet()) || ((uint_4)ib!=par_.MMgrPaquetSize())) {
    405413      strcpy(msg,"BAORadio-EthernetReader-BAD MMgrNbPaquet/MMgrPaquetSize()");
    406       sok.Send(msg,BRTCPMSGLEN);
     414      sok.SendAll(msg,BRTCPMSGLEN);
    407415      throw SocketException("EthernetReader:ERROR/  Bad MMgrNbPaquet/MMgrPaquetSize() from PCIEToEthernet client !");
    408416    }
    409417    for(int ii=0; ii<BRTCPMSGLEN; ii++) msg[ii]='\0';
    410418    strcpy(msg,"BAORadio-EthernetReader-OK");
    411     sok.Send(msg,BRTCPMSGLEN);
     419    sok.SendAll(msg,BRTCPMSGLEN);
    412420    vsok_.push_back(sok);
    413421    cout << " EthernetReader/Info connection/link" << fib << " established." << endl;
     
    437445    for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
    438446      cout << " EthernetReader/Debug - Sending GO message to sender " << fib << endl;
    439       vsok_[fib].Send(msg,BRTCPMSGLEN);
     447      vsok_[fib].SendAll(msg,BRTCPMSGLEN);
    440448    }
    441449    Byte* nextpaq=NULL;
     
    550558    char msg[BRTCPMSGLEN2];
    551559    msg[0]='\0';
    552     vsok_[fib].Receive(msg, BRTCPMSGLEN2);
     560    vsok_[fib].ReceiveAll(msg, BRTCPMSGLEN2);
    553561    if (strncmp(msg,"PCIEToEthernet-SendCnt",22) != 0)
    554562      cout << " EthernetReader::ReceiveFromSocket/ BAD HandShake message : " << msg << endl;
    555563  } 
    556 
     564  rc += vsok_[fib].ReceiveAll(data, len);
     565  vec_cntpaq_[fib]++;
     566
     567  /*   
    557568  if (ethr_bsz_<16) {
    558     rc += vsok_[fib].Receive(data, len);
     569    rc += vsok_[fib].ReceiveAll(data, len);
    559570  }
    560571  else {
     
    564575    if (nblk>0) {
    565576      for(size_t i=0; i<nblk; i++)  {
    566         rc += vsok_[fib].Receive(data+off, ethr_bsz_);
     577        rc += vsok_[fib].ReceiveAll(data+off, ethr_bsz_);
    567578        off += ethr_bsz_; 
    568579      }
    569580    }
    570581    if (fblk>0) {
    571       rc += vsok_[fib].Receive(data+off, fblk);
     582      rc += vsok_[fib].ReceiveAll(data+off, fblk);
    572583    }
    573584  }
    574585  vec_cntpaq_[fib]++;
     586    */
    575587
    576588  if (vec_cntpaq_[fib]%par_.MMgrNbPaquet() == 0) {
    577589    char msg[BRTCPMSGLEN2];
    578590    sprintf(msg,"EthernetReader-RecvCnt %d",vec_cntpaq_[fib]);
    579     vsok_[fib].Send(msg, BRTCPMSGLEN2);
     591    vsok_[fib].SendAll(msg, BRTCPMSGLEN2);
    580592  } 
    581593  return rc;
  • trunk/AddOn/TAcq/swrapsock.cc

    r3757 r3763  
    9595  }
    9696  else return 0;
     97}
     98
     99/* --Methode-- */
     100size_t Socket::SendAll(const char * buff, size_t len)
     101{
     102  size_t  nst = 0;
     103  int ntry = 0;
     104  while (nst < len) {
     105    size_t ns = Send(buff+nst, len-nst);
     106    ntry++;
     107    if (ns < 1)  break;
     108    nst += ns;
     109  }
     110  if (nst < len) {
     111    cout << "  Socket::SendAll() / ERROR ! ntry=" << ntry
     112         << " nst=" << nst << " len=" << len << endl;
     113    throw SocketException("Socket::SendAll()  Error NBytesSent < len ");
     114  }
     115  return nst;
     116}
     117
     118/* --Methode-- */
     119size_t Socket::ReceiveAll(char * buff, size_t len)
     120{
     121  size_t  nrt = 0;
     122  int ntry = 0;
     123  while (nrt < len) {
     124    size_t nr = Receive(buff+nrt, len-nrt);
     125    ntry++;
     126    if (nr < 1)  break;
     127    nrt += nr;
     128  }
     129  if (nrt < len) {
     130    cout << "  Socket::ReceiveAll / ERROR ! ntry=" << ntry
     131         << " nrt=" << nrt << " len=" << len << endl;
     132    throw SocketException("Socket::ReceiveAll()  Error NBytesRecv < len ");
     133  }
     134  return nrt;
    97135}
    98136
  • trunk/AddOn/TAcq/swrapsock.h

    r3757 r3763  
    4141  size_t Send(const char * buff, size_t len, int flag=0);
    4242  size_t Receive(char * buff, size_t len, int flag=0);
     43  size_t SendAll(const char * buff, size_t len);
     44  size_t ReceiveAll(char * buff, size_t len);
     45
    4346  int Close();
    4447 
Note: See TracChangeset for help on using the changeset viewer.