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] - Diff between revs 6 and 27

Only display areas with differences | Details | Blame | View Log

Rev 6 Rev 27
 
 
#include "tf_testbufm2.h"
#include "tf_testbufm2.h"
#include "tf_workparam.h"
#include "tf_workparam.h"
#include "tf_test.h"
#include "tf_test.h"
 
 
class CL_AMBPEX;
class CL_AMBPEX;
class TF_TestDDS;
class TF_TestDDS;
class TF_Emac;
class TF_Emac;
 
 
class TF_TestStrm : public TF_WorkParam, public TF_Test
class TF_TestStrm : public TF_WorkParam, public TF_Test
{
{
 
 
 
 
    struct ParamExchange
    struct ParamExchange
    {
    {
        U32 Strm;
        U32 Strm;
        U32 Mode;
        U32 Mode;
        U32 BlockWr;
        U32 BlockWr;
        U32 BlockRd;
        U32 BlockRd;
        U32 BlockOk;
        U32 BlockOk;
        U32 BlockError;
        U32 BlockError;
        U32 TotalError;
        U32 TotalError;
        U32 DataType;           // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
        U32 DataType;           // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
        U32 DataFix;            // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
        U32 DataFix;            // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
        U32     trd;
        U32     trd;
        float   VelocityCurrent;
        float   VelocityCurrent;
        float   VelocityAvarage;
        float   VelocityAvarage;
        float   fftTime_us;
        float   fftTime_us;
        TF_TestBufM2 testBuf;
        TF_TestBufM2 testBuf;
 
 
        U32 time_start;
        long time_start;
        U32 time_last;
        long time_last;
        U32 BlockLast;
        U32 BlockLast;
        U32 freeCycle;
        U32 freeCycle;
        U32 freeCycleZ;
        U32 freeCycleZ;
 
 
 
 
        ParamExchange()
        ParamExchange()
        {
        {
            Strm=0;
            Strm=0;
            Mode=0;
            Mode=0;
            BlockWr=0;
            BlockWr=0;
            BlockRd=0;
            BlockRd=0;
            BlockOk=0;
            BlockOk=0;
            BlockError=0;
            BlockError=0;
            TotalError=0;
            TotalError=0;
            DataType=0;
            DataType=0;
            DataFix=0;
            DataFix=0;
            trd=0;
            trd=0;
            VelocityCurrent=0;
            VelocityCurrent=0;
            VelocityAvarage=0;
            VelocityAvarage=0;
            time_start=0;
            time_start=0;
            time_last=0;
            time_last=0;
            BlockLast=0;
            BlockLast=0;
            freeCycle=0;
            freeCycle=0;
            freeCycleZ=0;
            freeCycleZ=0;
        }
        }
    };
    };
 
 
    UINT ThreadId;
    UINT ThreadId;
    UINT ThreadIdIsvi;
    UINT ThreadIdIsvi;
 
 
    pthread_t hThread;
    pthread_t hThread;
    pthread_attr_t  attrThread_;
    pthread_attr_t  attrThread_;
 
 
    pthread_t hThreadIsvi;
    pthread_t hThreadIsvi;
    pthread_attr_t  attrThreadIsvi_;
    pthread_attr_t  attrThreadIsvi_;
 
 
    CL_AMBPEX  *pBrd;
    CL_AMBPEX  *pBrd;
 
 
    static void* ThreadFunc( void* lpvThreadParm );
    static void* ThreadFunc( void* lpvThreadParm );
    static void* ThreadFuncIsvi( void* lpvThreadParm );
    static void* ThreadFuncIsvi( void* lpvThreadParm );
 
 
public:
public:
 
 
    TF_TestStrm( BRDCHAR* fname, CL_AMBPEX *fotr );
    TF_TestStrm( BRDCHAR* fname, CL_AMBPEX *fotr );
    virtual ~TF_TestStrm();
    virtual ~TF_TestStrm();
 
 
    virtual void Prepare( void );
    virtual void Prepare( void );
    virtual void Start( void );
    virtual void Start( void );
    virtual void Stop( void );
    virtual void Stop( void );
    virtual int isComplete( void );
    virtual int isComplete( void );
    virtual void GetResult( void );
    virtual void GetResult( void );
    virtual void Step( void );
    virtual void Step( void );
 
 
    U32 Execute( void );
    U32 Execute( void );
    U32 ExecuteIsvi( void );
    U32 ExecuteIsvi( void );
 
 
 
 
    //! Установка параметров по умолчанию
    //! Установка параметров по умолчанию
    virtual void SetDefault( void );
    virtual void SetDefault( void );
 
 
    //! Расчёт параметров
    //! Расчёт параметров
    virtual void CalculateParams( void );
    virtual void CalculateParams( void );
 
 
    //! Отображение параметров
    //! Отображение параметров
    virtual void ShowParam( void );
    virtual void ShowParam( void );
 
 
    U32 Terminate;
    U32 Terminate;
    U32 BlockRd;
    U32 BlockRd;
    U32 BlockOk;
    U32 BlockOk;
    U32 BlockError;
    U32 BlockError;
    U32 TotalError;
    U32 TotalError;
 
 
    U32 CntBuffer;              // Число буферов стрима
    U32 CntBuffer;              // Число буферов стрима
    U32 CntBlockInBuffer;       // Число блоков в буфере
    U32 CntBlockInBuffer;       // Число блоков в буфере
    U32 SizeBlockOfWords;       // Размер блока в словах
    U32 SizeBlockOfWords;       // Размер блока в словах
    U32 SizeBlockOfBytes;       // Размер блока в байтах
    U32 SizeBlockOfBytes;       // Размер блока в байтах
    U32 SizeBuferOfBytes;       // Размер буфера в байтах
    U32 SizeBuferOfBytes;       // Размер буфера в байтах
    U32 SizeStreamOfBytes;      // Общий размер буфера стрима
    U32 SizeStreamOfBytes;      // Общий размер буфера стрима
    U32 isCycle;                // 1 - циклический режим работы стрима
    U32 isCycle;                // 1 - циклический режим работы стрима
    U32 isSystem;               // 1 - системная память
    U32 isSystem;               // 1 - системная память
    U32 isAgreeMode;            // 1 - согласованный режим
    U32 isAgreeMode;            // 1 - согласованный режим
 
 
    U32 trdNo;          // номер тетрады
    U32 trdNo;          // номер тетрады
    U32 strmNo;         // номер стрима
    U32 strmNo;         // номер стрима
    U32 isTest;         // 1 - проверка псевдослучайной последовательности, 2 - проверка тестовой последовательности
    U32 isTest;         // 1 - проверка псевдослучайной последовательности, 2 - проверка тестовой последовательности
    U32 isMainTest; // 1 - включение режима тестирования в тетараде MAIN
    U32 isMainTest; // 1 - включение режима тестирования в тетараде MAIN
 
 
    U32 isFifoRdy;      // 1 - генератор тестовой последовательности анализирует флаг готовности FIFO
    U32 isFifoRdy;      // 1 - генератор тестовой последовательности анализирует флаг готовности FIFO
    U32 Cnt1;           // Число тактов записи в FIFO, 0 - постоянная запись в FIFO
    U32 Cnt1;           // Число тактов записи в FIFO, 0 - постоянная запись в FIFO
    U32 Cnt2;           // Число тактов паузы при записи в FIFO
    U32 Cnt2;           // Число тактов паузы при записи в FIFO
    U32 DataType;       // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
    U32 DataType;       // Тип данных при фиксированном типе блока, 6 - счётчик, 8 - псевдослучайная последовательность
    U32 DataFix;        // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
    U32 DataFix;        // 1 - фиксированный тип блока, 0 - данные в блоке записят от номера блока
 
 
    U32 BlockMode;      // режим проверки
    U32 BlockMode;      // режим проверки
 
 
    U32 isTestCtrl;     // 1 - подготовка тетрады TEST_CTRL
    U32 isTestCtrl;     // 1 - подготовка тетрады TEST_CTRL
 
 
    char*       fnameAdcParam;  // Имя файла параметров для режима АЦП
    char*       fnameAdcParam;  // Имя файла параметров для режима АЦП
    char*       fnameDdcParam;  // Имя файла параметров для режима DDC
    char*       fnameDdcParam;  // Имя файла параметров для режима DDC
    char*       fnameIsvi;              // Имя файла данных ISVI
    char*       fnameIsvi;              // Имя файла данных ISVI
 
 
    char*       fnameAdmReg;    // Имя файла регистров
    char*       fnameAdmReg;    // Имя файла регистров
    U32         isAdmReg;               // 1 - разрешение записи регистров из файла fnameAdmReg
    U32         isAdmReg;               // 1 - разрешение записи регистров из файла fnameAdmReg
 
 
    char*       fnameAdmReg2;   // Имя файла регистров (выполняется после старта стрима)
    char*       fnameAdmReg2;   // Имя файла регистров (выполняется после старта стрима)
    U32         isAdmReg2;              // 1 - разрешение записи регистров из файла fnameAdmReg2
    U32         isAdmReg2;              // 1 - разрешение записи регистров из файла fnameAdmReg2
 
 
    U32         isIsvi;                 // 1 - вывод в ISVI
    U32         isIsvi;                 // 1 - вывод в ISVI
    U32*        bufIsvi;                // Буфер данных ISVI
    U32*        bufIsvi;                // Буфер данных ISVI
    char        IsviHeaderStr[1024]; // суффикс ISVI
    char        IsviHeaderStr[1024]; // суффикс ISVI
    U32         IsviHeaderLen;
    U32         IsviHeaderLen;
    U32         IsviHeaderMode;                 // режим формирования суффикса ISVI, 0 - нет, 1 - DDC, 2 - ADC
    U32         IsviHeaderMode;                 // режим формирования суффикса ISVI, 0 - нет, 1 - DDC, 2 - ADC
    U32         IsviStatus;                     // состояние вывода в ISVI
    U32         IsviStatus;                     // состояние вывода в ISVI
    U32         IsviCnt;                        // число выведенных кадров в ISVI
    U32         IsviCnt;                        // число выведенных кадров в ISVI
 
 
    void IsviStep( U32* ptr );
    void IsviStep( U32* ptr );
    void WriteFlagSinc(int flg, int isNewParam);
    void WriteFlagSinc(int flg, int isNewParam);
    int  ReadFlagSinc(void);
    int  ReadFlagSinc(void);
    void WriteDataFile( U32 *pBuf, U32 sizew );
    void WriteDataFile( U32 *pBuf, U32 sizew );
 
 
    U32 lc_status;
    U32 lc_status;
    float cpuFreq;
    float cpuFreq;
 
 
    ParamExchange       rd0;
    ParamExchange       rd0;
 
 
    void ReceiveData(  ParamExchange *pr );
    void ReceiveData(  ParamExchange *pr );
 
 
    U32  TestSeq;       // Региср управления режимом формирования тестовой последовательности
    U32  TestSeq;       // Региср управления режимом формирования тестовой последовательности
 
 
    void RestartAdc( void );
    void RestartAdc( void );
 
 
    U32 isRestart;      // 1 - перезапуск сбора после завершения заполнения буфера стрима
    U32 isRestart;      // 1 - перезапуск сбора после завершения заполнения буфера стрима
    U32 cntRestart; // число перезапусков
    U32 cntRestart; // число перезапусков
 
 
    U32 isSystemMonitor;    //!< 1 - чтение данных системного монитора
    U32 isSystemMonitor;    //!< 1 - чтение данных системного монитора
 
 
private :
private :
 
 
    bool isFirstCallStep;
    bool isFirstCallStep;
 
 
    void PrepareAdm( void );
    void PrepareAdm( void );
    void PrepareAdmReg( char* fname );
    void PrepareAdmReg( char* fname );
    void PrepareAdc( void );
    void PrepareAdc( void );
    void PrepareDac( void );
    void PrepareDac( void );
    void RestartDac(void);
    void RestartDac(void);
    void PrepareMain( void );
    void PrepareMain( void );
    void PrepareTestCtrl( void );
    void PrepareTestCtrl( void );
    void StartTestCtrl( void );
    void StartTestCtrl( void );
};
};
 
 

powered by: WebSVN 2.1.0

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