source: Sophya/trunk/AddOn/TAcq/pciewrap.cc@ 3640

Last change on this file since 3640 was 3639, checked in by cmv, 16 years ago

ajout des #include C pour compil sur dernieres versions gcc/g++, cmv 27/05/2009

File size: 1.6 KB
Line 
1#include "pciewrap.h"
2#include "brpaqu.h"
3
4#include "racqumem.h"
5
6#include <stdlib.h>
7#include <stdio.h>
8#include <string.h>
9#include <math.h>
10#include <iostream>
11
12/* --Methode-- */
13TestPCIWrapperNODMA::TestPCIWrapperNODMA(UInt32 sz)
14 : PCIEWrapperInterface() , size_(sz)
15{
16 data_ = new Byte[size_];
17 srcdata_ = new Byte[10*size_];
18 for(UInt32 kk=0; kk<10*size_; kk++)
19 srcdata_[kk] = (Byte)(kk%200+20);
20 frame_counter_ = 0;
21 timetag_ = 0;
22 tottransfer_ = 0;
23}
24
25/* --Methode-- */
26TestPCIWrapperNODMA::~TestPCIWrapperNODMA()
27{
28 delete[] data_;
29 delete[] srcdata_;
30}
31
32/* --Methode-- */
33UInt32 TestPCIWrapperNODMA::TransferSize()
34{
35 return size_;
36}
37
38/* --Methode-- */
39UInt64 TestPCIWrapperNODMA::TotTransferBytes()
40{
41 return tottransfer_;
42}
43
44/* --Methode-- */
45Byte* TestPCIWrapperNODMA::DoTransferData(int numbuff)
46{
47 frame_counter_ ++;
48 timetag_ = frame_counter_ * size_ / 2;
49 BRPaquet paq(data_, size_);
50 paq.SetHDRMarker64(pchk_.HDRTag());
51 paq.SetTRLMarker64(pchk_.TRLTag());
52 paq.SetFrameCounter(frame_counter_);
53 paq.SetTimeTag(timetag_);
54 paq.SetPaqLen((UInt16)((size_ - BRHDRSIZE - BRTRLSIZE)/4));
55 Byte* bp = paq.Data1();
56/*
57 for(UInt32 kk=0; kk<paq.DataSize(); kk++)
58 bp[kk] = (Byte)(sin(0.0345*kk)*78.+127.5);
59 UInt32 kkmax = paq.DataSize();
60 for(UInt32 kk=0; kk<kkmax; kk++)
61 bp[kk] = (Byte)(kk%200+20);
62*/
63 UInt32 off = (frame_counter_*size_/3)%(9*size_);
64 memcpy(bp, srcdata_+off, paq.DataSize());
65 tottransfer_ += size_;
66 return data_;
67}
68
69/* --Methode-- */
70void TestPCIWrapperNODMA::PrintStatus(ostream& os)
71{
72 os << "TestPCIWrapperNODMA::Status, FrameCounter=" << frame_counter_
73 << " TimeTag=" << timetag_ << endl;
74}
Note: See TracBrowser for help on using the repository browser.