This commit is contained in:
2019-07-02 09:13:47 +02:00
parent a373609b08
commit e22d03a744
20 changed files with 431 additions and 1015 deletions

View File

@ -20,44 +20,14 @@ class qCloneWidget : public QMainWindow {
public:
qCloneWidget(QWidget *parent, int id, QString title, QString xTitle, QString yTitle, QString zTitle, int numDim,
QString filePath, QString fileName, int fileIndex,
QString filePath, QString fileName, int imageIndex,
bool displayStats, QString min, QString max, QString sum);
~qCloneWidget();
void SetupWidgetWindow(QString title, QString xTitle, QString yTitle, QString zTitle, int numDim);
/**
* Get the 1D hist values to plot
* @param nHists Number of graphs in 1D
* @param histNBins Total Number of X axis values/channels in 1D
* @param histXAxis X Axis value in 1D
* @param histYAxis Y Axis value in 1D
* @param histTitle Title for all the graphs in 1D
* @param lines style of plot if lines or dots
* @param markers style of plot markers or not
*/
void SetCloneHists(unsigned int nHists, int histNBins, double *histXAxis, std::vector<double*> histYAxis, QString histTitle, bool lines, bool markers);
/**
* Get the 1D hist values to plot for angle plotting
* @param nbinsx number of bins in x axis
* @param xmin minimum in x axis
* @param xmax maximum in x axis
* @param nbinsy number of bins in y axis
* @param ymin minimum in y axis
* @param ymax maximum in y axis
* @param d data
*/
void SetCloneHists2D(int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, double *d);
/**
* Set the range of the 1d plot
* @param IsXYRange array of x,y,min,max if these values are set
* @param XYRange array of set values of x,y,
* min, max
*/
void SetCloneHists2D(int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, double *d, QString frameIndexTitle);
void SetRange(bool IsXYRange[], double XYRange[]);
SlsQt1DPlot *Get1dPlot();
public slots:

View File

@ -7,9 +7,13 @@ class SlsQtH1D;
class SlsQt2DPlotLayout;
class qCloneWidget;
class QGridLayout;
class QGroupBox;
class QwtSymbol;
/*
#include "qwt_symbol.h"
#include <QGridLayout>
#include <QGroupBox>
#include <QString>
#include <QTimer>
@ -32,11 +36,13 @@ class qDrawPlot : public QWidget {
/** Destructor */
~qDrawPlot();
bool isRunning();
bool GetIsRunning();
// from measurement tabs
int GetProgress();
int64_t GetCurrentFrameIndex();
int64_t GetCurrentMeasurementIndex();
int GetNumMeasurements();
void SetNumMeasurements(int val);
// from plot tab
void Select1dPlot(bool enable);
void SetPlotTitlePrefix(QString title);
@ -74,6 +80,7 @@ class qDrawPlot : public QWidget {
void CloseClones();
void SaveClones();
void SavePlot();
void SetStopSignal();
private slots:
@ -93,19 +100,19 @@ class qDrawPlot : public QWidget {
int LockLastImageArray();
int UnlockLastImageArray();
void SetStyle(SlsQtH1D *h);
void GetStatistics(double &min, double &max, double &sum, double *array, int size);
void GetStatistics(double &min, double &max, double &sum);
void DetachHists();
void UpdateXYRange();
static void GetProgressCallBack(double currentProgress, void *this_pointer);
static void GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer);
static void GetMeasurementFinishedCallBack(int currentMeasurementIndex, void *this_pointer);
static void GetDataCallBack(detectorData *data, uint64_t frameIndex, uint32_t subFrameIndex, void *this_pointer);
void AcquisitionFinished(double currentProgress, int detectorStatus);
void MeasurementFinished(int currentMeasurementIndex);
void GetData(detectorData *data, uint64_t frameIndex, uint32_t subFrameIndex);
void toDoublePixelData(double *dest, char *source, int size, int databytes, int dr, double *gaindest = NULL);
void UpdatePlot();
void Update1dPlot(double* rawData);
void Update2dPlot(double* rawData, double* gainData);
void Update1dXYRange();
void Update2dXYRange();
static const int NUM_PEDESTAL_FRAMES = 20;
multiSlsDetector *myDet;
slsDetectorDefs::detectorType detType;
@ -123,7 +130,7 @@ class qDrawPlot : public QWidget {
bool isRunning{false};
// titles
QString plotTitle_prefix{""};
QString plotTitlePrefix{""};
QLabel *lblFrameIndexTitle1d{nullptr};
QString xTitle1d{"Channel Number"};
QString yTitle1d{"Counts"};
@ -138,11 +145,11 @@ class qDrawPlot : public QWidget {
unsigned int nHists{1};
double *datax1d{nullptr};
std::vector<double *> datay1d;
double *data2d{nullptr};
double *data2d;
//options
bool plotEnable{true};
bool binary{false};
bool isPlot{true};
bool isBinary{false};
int binaryFrom{0};
int binaryTo{0};
int persistency{0};
@ -151,12 +158,12 @@ class qDrawPlot : public QWidget {
bool isMarkers{false};
QwtSymbol *marker{nullptr};
QwtSymbol *noMarker{nullptr};
bool pedestal{false};
bool isPedestal{false};
double *pedestalVals{nullptr};
double *tempPedestalVals{nullptr};
int pedestalCount{0};
bool startPedestalCal{false};
bool accumulate{false};
bool resetPedestal{false};
bool isAccumulate{false};
bool resetAccumulate{false};
QWidget *widgetStatistics{nullptr};
QLabel *lblMinDisp{nullptr};
@ -166,23 +173,18 @@ class qDrawPlot : public QWidget {
std::vector<qCloneWidget *> cloneWidgets;
QString fileSavePath{"/tmp"};
QString fileSaveName{"Image"};
double *gainImage{nullptr};
bool gainDataExtracted{false};
bool gainDataEnable{false};
unsigned int nPixelsX{0};
unsigned int nPixelsY{0};
double minPixelsY{0};
double maxPixelsY{0};
double startPixel{0};
double endPixel{0};
double pixelWidth{0};
bool isGainDataExtracted{false};
bool hasGainData{false};
int progress{0};
int64_t currentMeasurement{0};
int64_t currentFrame{0};
pthread_mutex_t lastImageCompleteMutex;
bool hasStopped{false};
int numMeasurements{0};
unsigned int nPixelsX{0};
unsigned int nPixelsY{0};
const static int npixelsx_jctb = 400;
int npixelsy_jctb{0};
};