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
RevLine 
[3537]1#include "pciewrap.h"
[3623]2#include "brpaqu.h"
[3537]3
[3623]4#include "racqumem.h"
5
[3537]6#include <stdlib.h>
7#include <stdio.h>
[3639]8#include <string.h>
[3537]9#include <math.h>
10#include <iostream>
11
[3628]12/* --Methode-- */
[3623]13TestPCIWrapperNODMA::TestPCIWrapperNODMA(UInt32 sz)
[3628]14 : PCIEWrapperInterface() , size_(sz)
[3537]15{
[3623]16 data_ = new Byte[size_];
[3631]17 srcdata_ = new Byte[10*size_];
18 for(UInt32 kk=0; kk<10*size_; kk++)
19 srcdata_[kk] = (Byte)(kk%200+20);
[3623]20 frame_counter_ = 0;
21 timetag_ = 0;
22 tottransfer_ = 0;
[3537]23}
24
[3628]25/* --Methode-- */
[3623]26TestPCIWrapperNODMA::~TestPCIWrapperNODMA()
[3537]27{
[3631]28 delete[] data_;
29 delete[] srcdata_;
[3537]30}
31
[3628]32/* --Methode-- */
[3623]33UInt32 TestPCIWrapperNODMA::TransferSize()
34{
35 return size_;
36}
[3537]37
[3628]38/* --Methode-- */
[3623]39UInt64 TestPCIWrapperNODMA::TotTransferBytes()
40{
41 return tottransfer_;
42}
[3537]43
[3628]44/* --Methode-- */
[3623]45Byte* TestPCIWrapperNODMA::DoTransferData(int numbuff)
[3537]46{
[3623]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();
[3625]56/*
[3623]57 for(UInt32 kk=0; kk<paq.DataSize(); kk++)
58 bp[kk] = (Byte)(sin(0.0345*kk)*78.+127.5);
[3626]59 UInt32 kkmax = paq.DataSize();
60 for(UInt32 kk=0; kk<kkmax; kk++)
[3625]61 bp[kk] = (Byte)(kk%200+20);
[3631]62*/
63 UInt32 off = (frame_counter_*size_/3)%(9*size_);
64 memcpy(bp, srcdata_+off, paq.DataSize());
[3623]65 tottransfer_ += size_;
66 return data_;
[3537]67}
68
[3628]69/* --Methode-- */
[3623]70void TestPCIWrapperNODMA::PrintStatus(ostream& os)
[3537]71{
[3623]72 os << "TestPCIWrapperNODMA::Status, FrameCounter=" << frame_counter_
73 << " TimeTag=" << timetag_ << endl;
[3639]74}
Note: See TracBrowser for help on using the repository browser.