Changeset 3659 in Sophya for trunk/AddOn/TAcq/brpaqu.cc


Ignore:
Timestamp:
Oct 19, 2009, 3:43:12 PM (16 years ago)
Author:
ansari
Message:

amelioration classe BRPaqChecker et ajout methode d'acces en SByte et TwoByteComplex aux donnees de la classe BRPaquet - Reza 19/10/2009

File:
1 edited

Legend:

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

    r3658 r3659  
    7777
    7878    // on reoordonne les coeff FFT et on swappe en mem temps  (Byte-swap sur 8 octets)
    79     if (fgswap == BR_FFTOneChan) ReorderFFTData(src+HeaderSize(), dst_+HeaderSize(), DataSize());
     79    if (fgswap == BR_FFTOneChan) ReorderFFTData((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize());
    8080    else if (fgswap == BR_FFTTwoChan) {
    81       ReorderFFTData(src+HeaderSize(), dst_+HeaderSize(), DataSize()/2);
    82       ReorderFFTData(src+HeaderSize()+DataSize()/2, dst_+HeaderSize()+DataSize()/2, DataSize()/2);
     81      ReorderFFTData((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize()/2);
     82      ReorderFFTData((SByte*)(src+HeaderSize()+DataSize()/2), (SByte*)(dst_+HeaderSize()+DataSize()/2), DataSize()/2);
    8383    }
    8484    // Byte swap (sur 8 octets) du trailer
     
    100100 
    101101    // on reoordonne et on swappe en mem temps (Echange de deux mots de 4 octets)
    102     if (fgswap == BR_FFTOneChan32) ReorderFFTData32(src+HeaderSize(), dst_+HeaderSize(), DataSize());
     102    if (fgswap == BR_FFTOneChan32) ReorderFFTData32((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize());
    103103    else if (fgswap == BR_FFTTwoChan32) {
    104       ReorderFFTData32(src+HeaderSize(), dst_+HeaderSize(), DataSize()/2);
    105       ReorderFFTData32(src+HeaderSize()+DataSize()/2, dst_+HeaderSize()+DataSize()/2, DataSize()/2);
     104      ReorderFFTData32((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize()/2);
     105      ReorderFFTData32((SByte*)(src+HeaderSize()+DataSize()/2), (SByte*)(dst_+HeaderSize()+DataSize()/2), DataSize()/2);
    106106    }
    107107    // swap du trailler uniquement : Echange de deux mots de 4 octets
     
    120120
    121121    // on reoordonne les coeff FFT (pas de swap)
    122     if (fgswap == BR_FFTOneChanNoSwap) ReorderFFTDataNoSwap(src+HeaderSize(), dst_+HeaderSize(), DataSize());
     122    if (fgswap == BR_FFTOneChanNoSwap) ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize());
    123123    else if (fgswap == BR_FFTTwoChanNoSwap) {
    124       ReorderFFTDataNoSwap(src+HeaderSize(), dst_+HeaderSize(), DataSize()/2);
    125       ReorderFFTDataNoSwap(src+HeaderSize()+DataSize()/2, dst_+HeaderSize()+DataSize()/2, DataSize()/2);
     124      ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()), (SByte*)(dst_+HeaderSize()), DataSize()/2);
     125      ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()+DataSize()/2), (SByte*)(dst_+HeaderSize()+DataSize()/2), DataSize()/2);
    126126    }
    127127    // copie du trailler uniquement :
     
    143143
    144144    // on reoordonne les coeff FFT (pas de swap)
    145     if (fgswap == BR_FFTOneChanNoSwap) ReorderFFTDataNoSwap(src+HeaderSize(), tmp+HeaderSize(), DataSize());
     145    if (fgswap == BR_FFTOneChanNoSwap) ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()), (SByte*)(tmp+HeaderSize()), DataSize());
    146146    else if (fgswap == BR_FFTTwoChanNoSwap) {
    147       ReorderFFTDataNoSwap(src+HeaderSize(), tmp+HeaderSize(), DataSize()/2);
    148       ReorderFFTDataNoSwap(src+HeaderSize()+DataSize()/2, tmp+HeaderSize()+DataSize()/2, DataSize()/2);
     147      ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()), (SByte*)(tmp+HeaderSize()), DataSize()/2);
     148      ReorderFFTDataNoSwap((SByte*)(src+HeaderSize()+DataSize()/2), (SByte*)(tmp+HeaderSize()+DataSize()/2), DataSize()/2);
    149149    }
    150150    memcpy(tmp+ HeaderSize(), src+(binMin+ HeaderSize()), nbBin);
     
    294294
    295295/* --Methode__ */
    296 void BRPaquet::ReorderFFTData(Byte* src, Byte* dst, int N)
     296void BRPaquet::ReorderFFTData(SByte* src, SByte* dst, int N)
    297297{
    298298  // Code recopie depuis /Dev/DisplayData/HistoWindow.cc
     
    342342}
    343343
    344 void BRPaquet::ReorderFFTData32(Byte* src, Byte* dst, int N)
     344void BRPaquet::ReorderFFTData32(SByte* src, SByte* dst, int N)
    345345{
    346346  // Code recopie depuis /Dev/DisplayData/HistoWindow.cc
     
    384384  return ;
    385385}
    386 void BRPaquet::ReorderFFTDataNoSwap(Byte* src, Byte* dst, int N)
     386void BRPaquet::ReorderFFTDataNoSwap(SByte* src, SByte* dst, int N)
    387387{
    388388  // Code recopie depuis /Dev/DisplayData/HistoWindow.cc
     
    483483  lostframes = 0;
    484484  frclst = 0;
     485  lastframenum = 0;
    485486  cnt_saut = 0;
    486487  maxprt_ = maxprt;
     
    506507
    507508
    508 bool BRPaqChecker::Check(BRPaquet& paq)
     509bool BRPaqChecker::Check(BRPaquet& paq, UInt64& numframe)
    509510{
    510511  totnframes++;
     512  numframe=0;
    511513  if (paq.HDRMarker64() != HDRTag()) return false;
    512514  if (cktrl_&&(paq.TRLMarker64() != TRLTag())) return false;
     
    534536    }
    535537  }
    536   nframeok++; frclst = curfc;
     538  nframeok++; frclst=curfc;
     539  lastframenum+=(unsigned long long)delfc;  // numero de frame sans repliement a 65535
     540  numframe=lastframenum;
    537541//DBG  if (cnt_pb<5) { cnt_pb++; paq.Print(); }
    538542  return true;
Note: See TracChangeset for help on using the changeset viewer.