OpenCores
URL https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [soft/] [linux/] [application/] [adm_test/] [src/] [work/] [tf_teststrm.h] - Blame information for rev 27

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dsmv
 
2
#include "tf_testbufm2.h"
3
#include "tf_workparam.h"
4
#include "tf_test.h"
5
 
6
class CL_AMBPEX;
7
class TF_TestDDS;
8 6 v.karak
class TF_Emac;
9 2 dsmv
 
10
class TF_TestStrm : public TF_WorkParam, public TF_Test
11
{
12
 
13
 
14
    struct ParamExchange
15
    {
16
        U32 Strm;
17
        U32 Mode;
18
        U32 BlockWr;
19
        U32 BlockRd;
20
        U32 BlockOk;
21
        U32 BlockError;
22
        U32 TotalError;
23
        U32 DataType;           // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
24
        U32 DataFix;            // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
25
        U32     trd;
26
        float   VelocityCurrent;
27
        float   VelocityAvarage;
28
        float   fftTime_us;
29
        TF_TestBufM2 testBuf;
30
 
31 27 dsmv
        long time_start;
32
        long time_last;
33 2 dsmv
        U32 BlockLast;
34
        U32 freeCycle;
35
        U32 freeCycleZ;
36
 
37
 
38
        ParamExchange()
39
        {
40
            Strm=0;
41
            Mode=0;
42
            BlockWr=0;
43
            BlockRd=0;
44
            BlockOk=0;
45
            BlockError=0;
46
            TotalError=0;
47
            DataType=0;
48
            DataFix=0;
49
            trd=0;
50
            VelocityCurrent=0;
51
            VelocityAvarage=0;
52
            time_start=0;
53
            time_last=0;
54
            BlockLast=0;
55
            freeCycle=0;
56
            freeCycleZ=0;
57
        }
58
    };
59
 
60
    UINT ThreadId;
61
    UINT ThreadIdIsvi;
62
 
63
    pthread_t hThread;
64
    pthread_attr_t  attrThread_;
65
 
66
    pthread_t hThreadIsvi;
67
    pthread_attr_t  attrThreadIsvi_;
68
 
69
    CL_AMBPEX  *pBrd;
70
 
71
    static void* ThreadFunc( void* lpvThreadParm );
72
    static void* ThreadFuncIsvi( void* lpvThreadParm );
73
 
74
public:
75
 
76
    TF_TestStrm( BRDCHAR* fname, CL_AMBPEX *fotr );
77
    virtual ~TF_TestStrm();
78
 
79
    virtual void Prepare( void );
80
    virtual void Start( void );
81
    virtual void Stop( void );
82
    virtual int isComplete( void );
83
    virtual void GetResult( void );
84
    virtual void Step( void );
85
 
86
    U32 Execute( void );
87
    U32 ExecuteIsvi( void );
88
 
89
 
90
    //! Установка параметров по умолчанию
91
    virtual void SetDefault( void );
92
 
93
    //! Расчёт параметров
94
    virtual void CalculateParams( void );
95
 
96
    //! Отображение параметров
97
    virtual void ShowParam( void );
98
 
99
    U32 Terminate;
100
    U32 BlockRd;
101
    U32 BlockOk;
102
    U32 BlockError;
103
    U32 TotalError;
104
 
105 6 v.karak
    U32 CntBuffer;              // Число буферов стрима
106 2 dsmv
    U32 CntBlockInBuffer;       // Число блоков в буфере
107
    U32 SizeBlockOfWords;       // Размер блока в словах
108
    U32 SizeBlockOfBytes;       // Размер блока в байтах
109
    U32 SizeBuferOfBytes;       // Размер буфера в байтах
110
    U32 SizeStreamOfBytes;      // Общий размер буфера стрима
111 6 v.karak
    U32 isCycle;                // 1 - циклический режим работы стрима
112
    U32 isSystem;               // 1 - системная память
113 2 dsmv
    U32 isAgreeMode;            // 1 - согласованный режим
114
 
115
    U32 trdNo;          // номер тетрады
116
    U32 strmNo;         // номер стрима
117
    U32 isTest;         // 1 - проверка псевдослучайной последовательности, 2 - проверка тестовой последовательности
118
    U32 isMainTest; // 1 - включение режима тестирования в тетараде MAIN
119
 
120
    U32 isFifoRdy;      // 1 - генератор тестовой последовательности анализирует флаг готовности FIFO
121
    U32 Cnt1;           // Число тактов записи в FIFO, 0 - постоянная запись в FIFO
122
    U32 Cnt2;           // Число тактов паузы при записи в FIFO
123
    U32 DataType;       // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
124
    U32 DataFix;        // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
125
 
126
    U32 BlockMode;      // режим проверки
127
 
128
    U32 isTestCtrl;     // 1 - подготовка тетрады TEST_CTRL
129
 
130
    char*       fnameAdcParam;  // Имя файла параметров для режима АЦП
131
    char*       fnameDdcParam;  // Имя файла параметров для режима DDC
132
    char*       fnameIsvi;              // Имя файла данных ISVI
133
 
134
    char*       fnameAdmReg;    // Имя файла регистров
135
    U32         isAdmReg;               // 1 - разрешение записи регистров из файла fnameAdmReg
136
 
137
    char*       fnameAdmReg2;   // Имя файла регистров (выполняется после старта стрима)
138
    U32         isAdmReg2;              // 1 - разрешение записи регистров из файла fnameAdmReg2
139
 
140
    U32         isIsvi;                 // 1 - вывод в ISVI
141
    U32*        bufIsvi;                // Буфер данных ISVI
142
    char        IsviHeaderStr[1024]; // суффикс ISVI
143
    U32         IsviHeaderLen;
144
    U32         IsviHeaderMode;                 // режим формирования суффикса ISVI, 0 - нет, 1 - DDC, 2 - ADC
145
    U32         IsviStatus;                     // состояние вывода в ISVI
146
    U32         IsviCnt;                        // число выведенных кадров в ISVI
147
 
148
    void IsviStep( U32* ptr );
149
    void WriteFlagSinc(int flg, int isNewParam);
150
    int  ReadFlagSinc(void);
151
    void WriteDataFile( U32 *pBuf, U32 sizew );
152
 
153
    U32 lc_status;
154
    float cpuFreq;
155
 
156 6 v.karak
    ParamExchange       rd0;
157 2 dsmv
 
158
    void ReceiveData(  ParamExchange *pr );
159
 
160
    U32  TestSeq;       // Региср управления режимом формирования тестовой последовательности
161
 
162 6 v.karak
    void RestartAdc( void );
163 2 dsmv
 
164 6 v.karak
    U32 isRestart;      // 1 - перезапуск сбора после завершения заполнения буфера стрима
165
    U32 cntRestart; // число перезапусков
166
 
167
    U32 isSystemMonitor;    //!< 1 - чтение данных системного монитора
168
 
169 2 dsmv
private :
170
 
171
    bool isFirstCallStep;
172
 
173
    void PrepareAdm( void );
174
    void PrepareAdmReg( char* fname );
175 6 v.karak
    void PrepareAdc( void );
176
    void PrepareDac( void );
177
    void RestartDac(void);
178 2 dsmv
    void PrepareMain( void );
179
    void PrepareTestCtrl( void );
180
    void StartTestCtrl( void );
181
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.