mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-17 23:37:14 +02:00
Compare commits
4 Commits
gotthardDo
...
2.0.5
Author | SHA1 | Date | |
---|---|---|---|
e48a92d9cd | |||
a2217e2066 | |||
aaa02706fc | |||
172fa66b1f |
13
.gitignore
vendored
13
.gitignore
vendored
@ -1,11 +1,10 @@
|
|||||||
.cproject
|
.cproject
|
||||||
.project
|
.project
|
||||||
bin/
|
bin/
|
||||||
|
calibrationWizards/
|
||||||
|
slsDetectorGui/
|
||||||
|
slsDetectorSoftware/
|
||||||
|
slsReceiverSoftware/
|
||||||
|
slsDetectorCalibration/
|
||||||
|
slsImageReconstruction/
|
||||||
.settings
|
.settings
|
||||||
*.aux
|
|
||||||
*.log
|
|
||||||
*.out
|
|
||||||
*.toc
|
|
||||||
build
|
|
||||||
docs/
|
|
||||||
RELEASE.txt
|
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
|
||||||
set (CALIBRATE OFF)
|
|
||||||
|
|
||||||
option (USE_HDF5 "HDF5 File format" OFF)
|
|
||||||
option (USE_TEXTCLIENT "Text Client" OFF)
|
|
||||||
option (USE_RECEIVER "Receiver" OFF)
|
|
||||||
option (USE_GUI "GUI" OFF)
|
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-misleading-indentation")
|
|
||||||
|
|
||||||
find_package(Qt4)
|
|
||||||
find_package(Qwt 6)
|
|
||||||
find_package(CBF)
|
|
||||||
find_package(Doxygen)
|
|
||||||
find_package(PNG REQUIRED)
|
|
||||||
|
|
||||||
if (USE_HDF5)
|
|
||||||
find_package(HDF5 1.10 COMPONENTS CXX)
|
|
||||||
endif (USE_HDF5)
|
|
||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
||||||
|
|
||||||
set(CMAKE_INSTALL_RPATH "$ORIGIN")
|
|
||||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
||||||
|
|
||||||
|
|
||||||
if (USE_TEXTCLIENT)
|
|
||||||
add_subdirectory(slsDetectorSoftware)
|
|
||||||
endif (USE_TEXTCLIENT)
|
|
||||||
|
|
||||||
if (USE_RECEIVER)
|
|
||||||
add_subdirectory(slsReceiverSoftware)
|
|
||||||
endif (USE_RECEIVER)
|
|
||||||
|
|
||||||
if (USE_GUI)
|
|
||||||
if (QT4_FOUND AND QWT_FOUND)
|
|
||||||
add_subdirectory(slsDetectorGui)
|
|
||||||
endif()
|
|
||||||
endif (USE_GUI)
|
|
||||||
|
|
||||||
|
|
||||||
if (CALIBRATE)
|
|
||||||
if (DEFINED ENV{ROOTSYS})
|
|
||||||
find_package(ROOT)
|
|
||||||
if (ROOT_FOUND)
|
|
||||||
add_subdirectory(calibrationWizards)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif(CALIBRATE)
|
|
157
JCTBGui/JCTBGui.cpp
Executable file
157
JCTBGui/JCTBGui.cpp
Executable file
@ -0,0 +1,157 @@
|
|||||||
|
#include <TApplication.h>
|
||||||
|
#include <TColor.h>
|
||||||
|
|
||||||
|
#include <TStyle.h>
|
||||||
|
#include <TROOT.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
#include "sls_receiver_defs.h"
|
||||||
|
#include "jctbMain.h"
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
|
|
||||||
|
string afname, cfname, pfname;
|
||||||
|
int id=0;
|
||||||
|
|
||||||
|
int af=0, cf=0, pf=0;
|
||||||
|
|
||||||
|
|
||||||
|
cout << " *** " << argc << endl;
|
||||||
|
for (int ia=0; ia<argc; ia++) {
|
||||||
|
if (strcmp(argv[ia],"-alias")==0) {
|
||||||
|
if (ia+1<argc) {
|
||||||
|
afname=argv[ia+1];
|
||||||
|
ia++;
|
||||||
|
af=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (strcmp(argv[ia],"-config")==0) {
|
||||||
|
if (ia+1<argc) {
|
||||||
|
cfname=argv[ia+1];
|
||||||
|
ia++;
|
||||||
|
cf=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else if (strcmp(argv[ia],"-par")==0) {
|
||||||
|
if (ia+1<argc) {
|
||||||
|
pfname=argv[ia+1];
|
||||||
|
ia++;
|
||||||
|
pf=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else if (strcmp(argv[ia],"-id")==0) {
|
||||||
|
if (ia+1<argc) {
|
||||||
|
id=atoi(argv[ia+1]);
|
||||||
|
ia++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cout << " *** " << endl;
|
||||||
|
|
||||||
|
/****** Create detector ****************/
|
||||||
|
multiSlsDetector *myDet=new multiSlsDetector(id);
|
||||||
|
myDet->setOnline(slsDetectorDefs::ONLINE_FLAG);
|
||||||
|
|
||||||
|
|
||||||
|
if (cf) {
|
||||||
|
myDet->readConfigurationFile(cfname);
|
||||||
|
} else
|
||||||
|
cout << "No config file specified" << endl;
|
||||||
|
|
||||||
|
|
||||||
|
cout << "Created multi detector id " << id << " hostname " << myDet->getHostname() << endl;
|
||||||
|
|
||||||
|
if (pf) {
|
||||||
|
myDet->retrieveDetectorSetup(pfname);
|
||||||
|
} else
|
||||||
|
cout << "No parameter file specified" << endl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********Create GUI stuff *******************/
|
||||||
|
TApplication theApp("App",&argc,argv);
|
||||||
|
|
||||||
|
|
||||||
|
gStyle->SetDrawBorder(0);
|
||||||
|
gStyle->SetCanvasColor(kWhite);
|
||||||
|
gStyle->SetCanvasDefH(800);
|
||||||
|
gStyle->SetCanvasDefW(800);
|
||||||
|
gStyle->SetCanvasBorderMode(0);
|
||||||
|
gStyle->SetPadBorderMode(0);
|
||||||
|
gStyle->SetPaintTextFormat("5.2f");
|
||||||
|
gStyle->SetLineWidth(2);
|
||||||
|
gStyle->SetTextSize(1.1);
|
||||||
|
gStyle->SetLabelSize(0.04,"xy");
|
||||||
|
gStyle->SetTitleSize(0.05,"xy");
|
||||||
|
gStyle->SetTitleOffset(1.0,"x");
|
||||||
|
gStyle->SetTitleOffset(1.1,"y");
|
||||||
|
gStyle->SetPadTopMargin(0.15);
|
||||||
|
gStyle->SetPadRightMargin(0.15);
|
||||||
|
gStyle->SetPadBottomMargin(0.15);
|
||||||
|
gStyle->SetPadLeftMargin(0.15);
|
||||||
|
gStyle->SetLegendBorderSize(1);
|
||||||
|
gStyle->SetFrameBorderMode(0);
|
||||||
|
gStyle->SetFrameFillColor(kWhite);
|
||||||
|
// gStyle->SetLegendFillColor(kWhite);
|
||||||
|
gStyle->SetTitleFillColor(kWhite);
|
||||||
|
gStyle->SetFillColor(kWhite);
|
||||||
|
gStyle->SetStatFontSize(0.03);
|
||||||
|
gStyle->SetStatBorderSize(1);
|
||||||
|
gStyle->SetStatFormat("6.4g");
|
||||||
|
gStyle->SetStatX(0.95);
|
||||||
|
gStyle->SetStatY(0.95);
|
||||||
|
gStyle->SetStatW(0.2);
|
||||||
|
gStyle->SetStatH(0.2);
|
||||||
|
gStyle->SetTitleX(0.1);
|
||||||
|
gStyle->SetTitleY(0.95);
|
||||||
|
gStyle->SetTitleBorderSize(0);
|
||||||
|
gStyle->SetTitleFontSize(0.05);
|
||||||
|
gROOT->SetStyle("Default");
|
||||||
|
|
||||||
|
|
||||||
|
TColor::InitializeColors();
|
||||||
|
const Int_t NRGBs = 5;
|
||||||
|
const Int_t NCont = 90;
|
||||||
|
|
||||||
|
Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
|
||||||
|
Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 };
|
||||||
|
Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
|
||||||
|
Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 };
|
||||||
|
TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
|
||||||
|
gStyle->SetNumberContours(NCont);
|
||||||
|
|
||||||
|
|
||||||
|
gROOT->ForceStyle();
|
||||||
|
jctbMain *mf=new jctbMain(gClient->GetRoot(),myDet);
|
||||||
|
|
||||||
|
cout << " *** " << argc << endl;
|
||||||
|
for (int ia=0; ia<argc; ia++)
|
||||||
|
cout << argv[ia] << endl;
|
||||||
|
|
||||||
|
|
||||||
|
cout << " *** " << endl;
|
||||||
|
|
||||||
|
if (af)
|
||||||
|
mf->loadAlias(afname);
|
||||||
|
else
|
||||||
|
cout << "no alias specified" << endl;
|
||||||
|
|
||||||
|
theApp.Run();
|
||||||
|
return 0;
|
||||||
|
}
|
29
JCTBGui/Makefile
Executable file
29
JCTBGui/Makefile
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
SRC=jctbDict.cpp jctbMain.cpp jctbDacs.cpp jctbDac.cpp jctbPattern.cpp jctbSignals.cpp jctbSignal.cpp jctbAdcs.cpp jctbAcquisition.cpp
|
||||||
|
INCS=jctbSignals.h jctbSignal.h jctbPattern.h jctbDacs.h jctbDac.h jctbMain.h jctbAdcs.h jctbAcquisition.h
|
||||||
|
LINKDEF=jctbLinkDef.h
|
||||||
|
|
||||||
|
INCDIR=-I../slsReceiverSoftware/include/ -I../slsDetectorSoftware/multiSlsDetector/ -I../slsDetectorSoftware/slsDetector -I../slsDetectorSoftware/commonFiles -I../slsDetectorSoftware/slsDetectorAnalysis -I../slsDetectorSoftware/slsDetectorUsers -I../slsDetectorSoftware/usersFunctions
|
||||||
|
LDFLAG=-L../bin -lSlsDetector -L/usr/lib64/ -lpthread
|
||||||
|
|
||||||
|
MAIN=JCTBGui.cpp
|
||||||
|
|
||||||
|
DESTDIR?=../bin
|
||||||
|
|
||||||
|
all: $(DESTDIR)/JCTBGui
|
||||||
|
|
||||||
|
doc:
|
||||||
|
cd manual && make DESTDIR=$(DESTDIR)
|
||||||
|
|
||||||
|
htmldoc:
|
||||||
|
cd manual && make html DESTDIR=$(DESTDIR)
|
||||||
|
|
||||||
|
jctbDict.cpp: $(INCS) $(LINKDEF)
|
||||||
|
rootcint -f jctbDict.cpp -c $(INCS) $(LINKDEF)
|
||||||
|
|
||||||
|
$(DESTDIR)/JCTBGui: $(SRC) $(MAIN) $(LINKDEF) $(INCS)
|
||||||
|
g++ -DMYROOT `root-config --cflags --glibs` -lMinuit $(LDFLAG) -o JCTBGui $(INCDIR) $(SRC) $(MAIN)
|
||||||
|
mv JCTBGui $(DESTDIR)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f JCTBGui *.o jctbDict.*
|
176
JCTBGui/example.alias
Executable file
176
JCTBGui/example.alias
Executable file
@ -0,0 +1,176 @@
|
|||||||
|
# this is a comment (every line starting with no keyword is such)
|
||||||
|
|
||||||
|
# space in label not allowed (tbf)
|
||||||
|
|
||||||
|
#BITX bitName plotFlag plotColorRGB (from 0!)
|
||||||
|
|
||||||
|
|
||||||
|
#BIT1 compTestOUT 1 2 #you can put comments also here (leave a space bef. #)
|
||||||
|
|
||||||
|
BIT1 compTestIN
|
||||||
|
|
||||||
|
BIT32 curON
|
||||||
|
|
||||||
|
BIT2 side_clk
|
||||||
|
|
||||||
|
BIT3 side_din
|
||||||
|
|
||||||
|
BIT4 clear_shr
|
||||||
|
|
||||||
|
BIT5 bottom_din
|
||||||
|
|
||||||
|
BIT6 bottom_clk
|
||||||
|
|
||||||
|
BIT7 gHF
|
||||||
|
|
||||||
|
BIT31 bypassCDS
|
||||||
|
|
||||||
|
BIT8 ENprechPRE
|
||||||
|
|
||||||
|
BIT9 res
|
||||||
|
|
||||||
|
BIT30 pulseOFF
|
||||||
|
|
||||||
|
BIT27 connCDS #INVERTED NAME to match logical behaviour, chipname disconnCDS
|
||||||
|
|
||||||
|
BIT24 Dsg_1
|
||||||
|
|
||||||
|
BIT25 Dsg_2
|
||||||
|
|
||||||
|
BIT23 Dsg_3
|
||||||
|
|
||||||
|
BIT10 sto0
|
||||||
|
|
||||||
|
BIT11 sto1
|
||||||
|
|
||||||
|
BIT12 sto2
|
||||||
|
|
||||||
|
BIT13 resCDS
|
||||||
|
|
||||||
|
BIT14 prechargeConnect
|
||||||
|
|
||||||
|
BIT15 pulse
|
||||||
|
|
||||||
|
BIT21 PCT_mode
|
||||||
|
|
||||||
|
BIT16 res_DGS
|
||||||
|
|
||||||
|
#BIT26 dbit1
|
||||||
|
|
||||||
|
#BIT27 dbit0
|
||||||
|
|
||||||
|
#CMOS_IN
|
||||||
|
|
||||||
|
#CMOS_IN1 out_DGS
|
||||||
|
|
||||||
|
#LVDS_IN
|
||||||
|
|
||||||
|
# now the names of ADC channels (lt. 12 characters)
|
||||||
|
|
||||||
|
ADC1 T_boa.(C)
|
||||||
|
|
||||||
|
ADC2 Va+
|
||||||
|
|
||||||
|
ADC3 Vdd_ps
|
||||||
|
|
||||||
|
ADC4 Vsh
|
||||||
|
|
||||||
|
ADC5 Vcc_int
|
||||||
|
|
||||||
|
ADC6 Vcc_iochip
|
||||||
|
|
||||||
|
ADC7 Vcc1.8A
|
||||||
|
|
||||||
|
ADC8 Vcc1.8D
|
||||||
|
|
||||||
|
ADC9 T_chip
|
||||||
|
|
||||||
|
ADC10 _nc
|
||||||
|
|
||||||
|
ADC11 _nc
|
||||||
|
|
||||||
|
ADC12 _Vcc_io # 0.068 ohm resistor
|
||||||
|
|
||||||
|
ADC13 _nc # 0.068 ohm resistor
|
||||||
|
|
||||||
|
ADC14 _Va # 0.068 ohm resistor
|
||||||
|
|
||||||
|
ADC15 _nc
|
||||||
|
|
||||||
|
ADC16 _vdd_ana
|
||||||
|
|
||||||
|
I1 _I_va(mA) # this values are computed as spec.
|
||||||
|
|
||||||
|
I1a 2 #by the following lines ((ADCa-ADCb)/R)
|
||||||
|
|
||||||
|
I1b 14 # all the values comes mainly from the adapter board
|
||||||
|
|
||||||
|
I1r 0.068
|
||||||
|
|
||||||
|
I2 _I_vdd(mA) #
|
||||||
|
|
||||||
|
I2a 3
|
||||||
|
|
||||||
|
I2b 16
|
||||||
|
|
||||||
|
I2r 0.068 #
|
||||||
|
|
||||||
|
I3 _nn
|
||||||
|
|
||||||
|
I3a 14
|
||||||
|
|
||||||
|
I3b 2
|
||||||
|
|
||||||
|
I3r 0.068
|
||||||
|
|
||||||
|
I4 _I_io(mA)
|
||||||
|
|
||||||
|
I4a 6
|
||||||
|
|
||||||
|
I4b 12
|
||||||
|
|
||||||
|
I4r 0.068 #shuld be 5000000 for mA readout
|
||||||
|
|
||||||
|
# now the names of DAC channels (lt. 12 characters)
|
||||||
|
|
||||||
|
DAC7 vbp_colbuf
|
||||||
|
|
||||||
|
DAC8 vIpreCDS
|
||||||
|
|
||||||
|
DAC9 vIpre
|
||||||
|
|
||||||
|
DAC10 VprechPre
|
||||||
|
|
||||||
|
DAC11 prechargeV
|
||||||
|
|
||||||
|
DAC12 ibias_SFP
|
||||||
|
|
||||||
|
DAC1 vcasc_SFP
|
||||||
|
|
||||||
|
DAC3 VPH
|
||||||
|
|
||||||
|
DAC4 VPL
|
||||||
|
|
||||||
|
DAC2 ibias_CS
|
||||||
|
|
||||||
|
DAC5 vrefDGS
|
||||||
|
|
||||||
|
DAC6 vIpreDGS
|
||||||
|
|
||||||
|
DAC1 vcascSFP
|
||||||
|
|
||||||
|
DAC13 s2d_vcascp
|
||||||
|
|
||||||
|
#POT1 s2d_vcascn
|
||||||
|
|
||||||
|
DAC14 vin_com
|
||||||
|
|
||||||
|
DAC15 vout_com
|
||||||
|
|
||||||
|
DAC16 vb_sda
|
||||||
|
|
||||||
|
# number (1-16) of the adc "reading" the pot controlled VR. (should be always 2)
|
||||||
|
|
||||||
|
DACFORPOTVR 2
|
||||||
|
|
||||||
|
#SCHEMATIC jungfrau01_ADP.pdf #those files are located in doc/ folder
|
228
JCTBGui/jctbAcquisition.cpp
Executable file
228
JCTBGui/jctbAcquisition.cpp
Executable file
@ -0,0 +1,228 @@
|
|||||||
|
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
#include <TThread.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbAcquisition.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbAcquisition::jctbAcquisition(TGVerticalFrame *page, multiSlsDetector *det) : TGGroupFrame(page,"Acquisition",kVerticalFrame), myDet(det) {
|
||||||
|
|
||||||
|
page->AddFrame(this,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe=new TGHorizontalFrame(this, 800,50);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
|
||||||
|
cFileSave= new TGCheckButton(hframe, "Output file: ");
|
||||||
|
hframe->AddFrame(cFileSave,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
cFileSave->MapWindow();
|
||||||
|
cFileSave->SetTextJustify(kTextRight);
|
||||||
|
cFileSave->Connect("Toggled(Bool_t)","jctbAcquisition",this,"setFsave(Bool_t)");
|
||||||
|
|
||||||
|
|
||||||
|
eFname = new TGTextEntry(hframe, (myDet->getFileName()).c_str());
|
||||||
|
|
||||||
|
hframe->AddFrame(eFname,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
eFname->MapWindow();
|
||||||
|
eFname->Resize(150,30);
|
||||||
|
|
||||||
|
eFname->Connect("ReturnPressed()","jctbAcquisition",this,"setFname()");
|
||||||
|
|
||||||
|
|
||||||
|
TGLabel *label=new TGLabel(hframe,"index: ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextRight);
|
||||||
|
|
||||||
|
|
||||||
|
eFindex = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
hframe->AddFrame( eFindex,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eFindex->MapWindow();
|
||||||
|
eFindex->Resize(150,30);
|
||||||
|
TGTextEntry *e= eFindex->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbAcquisition",this,"setFindex()");
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(this, 800,50);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
label=new TGLabel(hframe,"Output directory: ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextRight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eOutdir = new TGTextEntry(hframe, (myDet->getFilePath()).c_str());
|
||||||
|
|
||||||
|
hframe->AddFrame(eOutdir,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
eOutdir->MapWindow();
|
||||||
|
eOutdir->Resize(150,30);
|
||||||
|
|
||||||
|
|
||||||
|
eOutdir->Connect("ReturnPressed()","jctbAcquisition",this,"setOutdir()");
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(this, 800,50);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
bStatus=new TGTextButton(hframe, "Start");
|
||||||
|
hframe->AddFrame(bStatus,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
bStatus->MapWindow();
|
||||||
|
bStatus->Connect("Clicked()","jctbAcquisition",this,"toggleAcquisition()");
|
||||||
|
|
||||||
|
|
||||||
|
acqThread = new TThread("acqThread",
|
||||||
|
jctbAcquisition::ThreadHandle,(void*)this);
|
||||||
|
// acqThread->Run();
|
||||||
|
|
||||||
|
myDet->registerProgressCallback(&progressCallback,(void*)this);
|
||||||
|
|
||||||
|
|
||||||
|
myDet->registerDataCallback(&dataCallback, (void*)this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbAcquisition::dataCallback(detectorData *data, int index, void* pArgs) {
|
||||||
|
|
||||||
|
|
||||||
|
cout <<"------"<< index << " " << data->npoints << " "<< data->npy << endl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbAcquisition::setOutdir() {
|
||||||
|
|
||||||
|
myDet->setFilePath(eOutdir->GetText());
|
||||||
|
|
||||||
|
// // cout << "setting dac! "<< id << endl;
|
||||||
|
|
||||||
|
// myDet->setDAC(dacsEntry->GetIntNumber(), (slsDetectorDefs::dacIndex)id, dacsUnit->IsOn());
|
||||||
|
|
||||||
|
// getValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAcquisition::setFname() {
|
||||||
|
myDet->setFileName(eFname->GetText());
|
||||||
|
// int val=myDet->setDAC(-1, (slsDetectorDefs::dacIndex)id, dacsUnit->IsOn());
|
||||||
|
// char s[100];
|
||||||
|
|
||||||
|
// sprintf(s,"%d",val);
|
||||||
|
|
||||||
|
// dacsValue->SetText(s);
|
||||||
|
|
||||||
|
|
||||||
|
// return val;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAcquisition::setFindex() {
|
||||||
|
myDet->setFileIndex(eFindex->GetNumber());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbAcquisition::setFsave(Bool_t b) {
|
||||||
|
myDet->enableWriteToFile(b);
|
||||||
|
eFname->SetState(b);
|
||||||
|
eOutdir->SetState(b);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAcquisition::update() {
|
||||||
|
|
||||||
|
|
||||||
|
eFname->SetText((myDet->getFileName()).c_str());
|
||||||
|
eOutdir->SetText((myDet->getFilePath()).c_str());
|
||||||
|
eFindex->SetNumber(myDet->getFileIndex());
|
||||||
|
cFileSave->SetOn(myDet->enableWriteToFile());
|
||||||
|
eFname->SetState(cFileSave->IsOn());
|
||||||
|
eOutdir->SetState(cFileSave->IsOn());
|
||||||
|
eFindex->SetState(cFileSave->IsOn());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbAcquisition::toggleAcquisition() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (acqThread->GetState()==1 || acqThread->GetState()==6) {
|
||||||
|
bStatus->SetText("Stop");
|
||||||
|
acqThread->Run();
|
||||||
|
//myDet->startAcquisition();
|
||||||
|
StopFlag=0;
|
||||||
|
} else {
|
||||||
|
StopFlag=1;
|
||||||
|
myDet->stopAcquisition();
|
||||||
|
bStatus->SetText("Start");
|
||||||
|
// acqThread->Kill();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAcquisition::acquisitionFinished() {
|
||||||
|
bStatus->SetText("Start");
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAcquisition::startAcquisition(){
|
||||||
|
cout << "Detector started " << endl;
|
||||||
|
myDet->acquire();
|
||||||
|
}
|
||||||
|
|
||||||
|
void* jctbAcquisition::ThreadHandle(void *arg)
|
||||||
|
{
|
||||||
|
jctbAcquisition *acq = static_cast<jctbAcquisition*>(arg);
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
acq->startAcquisition();
|
||||||
|
acq->acquisitionFinished();
|
||||||
|
|
||||||
|
// while(!(classInstance->StopFlag))
|
||||||
|
// {
|
||||||
|
// cout << "thread " << i++ << endl;
|
||||||
|
// usleep(100000);
|
||||||
|
// }
|
||||||
|
//myDet->readFrame();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbAcquisition::progressCallback(double f,void* arg) {
|
||||||
|
|
||||||
|
|
||||||
|
// jctbAcquisition *acq = static_cast<jctbAcquisition*>(arg);
|
||||||
|
|
||||||
|
|
||||||
|
cout << "*********" << f << "*******" << endl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
60
JCTBGui/jctbAcquisition.h
Executable file
60
JCTBGui/jctbAcquisition.h
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#ifndef JCTBACQUISITION_H
|
||||||
|
#define JCTBACQUISITION_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TGCheckButton;
|
||||||
|
class TThread;
|
||||||
|
|
||||||
|
class TGTextButton;
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
class detectorData;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbAcquisition : public TGGroupFrame {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
TGTextEntry *eOutdir;
|
||||||
|
TGTextEntry *eFname;
|
||||||
|
TGNumberEntry *eFindex;
|
||||||
|
TGCheckButton *cFileSave;
|
||||||
|
TGTextButton *bStatus;
|
||||||
|
// TGTextButton
|
||||||
|
|
||||||
|
TThread *acqThread;
|
||||||
|
|
||||||
|
multiSlsDetector* myDet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbAcquisition(TGVerticalFrame*, multiSlsDetector*);
|
||||||
|
void setOutdir();
|
||||||
|
void setFname();
|
||||||
|
void setFsave(Bool_t);
|
||||||
|
void setFindex();
|
||||||
|
void toggleAcquisition();
|
||||||
|
static void* ThreadHandle(void *arg);
|
||||||
|
void update();
|
||||||
|
void acquisitionFinished();
|
||||||
|
|
||||||
|
void startAcquisition();
|
||||||
|
static int progressCallback(double,void*);
|
||||||
|
static int dataCallback(detectorData*, int, void*);
|
||||||
|
int StopFlag;
|
||||||
|
|
||||||
|
ClassDef(jctbAcquisition,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
215
JCTBGui/jctbAdcs.cpp
Executable file
215
JCTBGui/jctbAdcs.cpp
Executable file
@ -0,0 +1,215 @@
|
|||||||
|
#include <TApplication.h>
|
||||||
|
#include <TGClient.h>
|
||||||
|
#include <TCanvas.h>
|
||||||
|
#include <TF1.h>
|
||||||
|
#include <TRandom.h>
|
||||||
|
#include <TGButton.h>
|
||||||
|
#include <TRootEmbeddedCanvas.h>
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
#include <TGFileDialog.h>
|
||||||
|
#include <TGComboBox.h>
|
||||||
|
#include <TH2F.h>
|
||||||
|
#include <TColor.h>
|
||||||
|
#include <TH1F.h>
|
||||||
|
#include <TGraphErrors.h>
|
||||||
|
#include <TGColorSelect.h>
|
||||||
|
#include <THStack.h>
|
||||||
|
#include <TGTab.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbAdcs.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbAdc::jctbAdc(TGVerticalFrame *page, int i, multiSlsDetector *det)
|
||||||
|
: TGHorizontalFrame(page, 800,800), id(i), myDet(det) {
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe=this;
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
page->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "ADC%d", id);
|
||||||
|
|
||||||
|
sAdcLabel= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(sAdcLabel,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sAdcLabel->MapWindow();
|
||||||
|
sAdcLabel->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sAdcEnable= new TGCheckButton(hframe, "Enable");
|
||||||
|
hframe->AddFrame( sAdcEnable,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sAdcEnable->MapWindow();
|
||||||
|
sAdcEnable->SetOn(kTRUE);
|
||||||
|
sAdcEnable->SetEnabled(kFALSE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sAdcPlot= new TGCheckButton(hframe, "Plot");
|
||||||
|
hframe->AddFrame( sAdcPlot,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sAdcPlot->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sAdcPlot->Connect("Toggled(Bool_t)","jctbAdc",this,"ToggledPlot(Bool_t)");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fColorSel = new TGColorSelect(hframe, id+1, 0);
|
||||||
|
hframe->AddFrame(fColorSel, new TGLayoutHints(kLHintsTop |
|
||||||
|
kLHintsLeft, 2, 0, 2, 2));
|
||||||
|
|
||||||
|
|
||||||
|
fColorSel->SetColor(TColor::Number2Pixel(id+1));
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
void jctbAdc::setAdcAlias(char *tit, int plot, int color) {
|
||||||
|
if (tit)
|
||||||
|
sAdcLabel->SetText(tit);
|
||||||
|
if (plot)
|
||||||
|
sAdcPlot->SetOn(kTRUE,kTRUE);
|
||||||
|
else
|
||||||
|
sAdcPlot->SetOn(kFALSE,kTRUE);
|
||||||
|
if (color>=0)
|
||||||
|
fColorSel->SetColor(color);
|
||||||
|
fColorSel->SetEnabled(sAdcPlot->IsOn());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string jctbAdc::getAdcAlias() {
|
||||||
|
|
||||||
|
char line[1000];
|
||||||
|
sprintf(line,"ADC%d %s %d %x\n",id,sAdcLabel->GetText()->Data(),sAdcPlot->IsOn(),fColorSel->GetColor());
|
||||||
|
return string(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAdc::update() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbAdc::ToggledPlot(Bool_t b){
|
||||||
|
|
||||||
|
Long_t mask=b<<id;
|
||||||
|
ToggledAdcPlot(mask);
|
||||||
|
fColorSel->SetEnabled(b);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAdc::ToggledAdcPlot(Int_t b){
|
||||||
|
|
||||||
|
|
||||||
|
Emit("ToggledAdcPlot(Int_t)", id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbAdcs::jctbAdcs(TGVerticalFrame *page, multiSlsDetector *det)
|
||||||
|
: TGGroupFrame(page,"Adcs",kVerticalFrame), myDet(det) {
|
||||||
|
|
||||||
|
|
||||||
|
SetTitlePos(TGGroupFrame::kLeft);
|
||||||
|
page->AddFrame(this,new TGLayoutHints( kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame* hframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int idac=0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame* hhframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hhframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hhframe->MapWindow();
|
||||||
|
|
||||||
|
TGVerticalFrame *vframe;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (idac=0; idac<NADCS; idac++) {
|
||||||
|
if (idac%16==0) {
|
||||||
|
|
||||||
|
|
||||||
|
vframe=new TGVerticalFrame(hhframe, 400,800);
|
||||||
|
hhframe->AddFrame(vframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
vframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sAdc[idac]=new jctbAdc(vframe,idac,myDet);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbAdcs::update() {
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbAdcs::setAdcAlias(string line) {
|
||||||
|
|
||||||
|
int is=-1, plot=0, color=-1;
|
||||||
|
char tit[100];
|
||||||
|
int narg=sscanf(line.c_str(),"ADC%d %s %d %x",&is,tit,&plot, &color);
|
||||||
|
if (narg<2)
|
||||||
|
return -1;
|
||||||
|
if (narg!=3)
|
||||||
|
color=-1;
|
||||||
|
if (is>=0 && is<NADCS) {
|
||||||
|
sAdc[is]->setAdcAlias(tit,plot,color);
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string jctbAdcs::getAdcAlias() {
|
||||||
|
|
||||||
|
ostringstream line;
|
||||||
|
|
||||||
|
for (int is=0; is<NADCS; is++)
|
||||||
|
line << sAdc[is]->getAdcAlias();
|
||||||
|
|
||||||
|
return line.str();
|
||||||
|
}
|
83
JCTBGui/jctbAdcs.h
Executable file
83
JCTBGui/jctbAdcs.h
Executable file
@ -0,0 +1,83 @@
|
|||||||
|
#ifndef JCTBADCS_H
|
||||||
|
#define JCTBADCS_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NADCS 32
|
||||||
|
|
||||||
|
class TRootEmbeddedCanvas;
|
||||||
|
class TGButtonGroup;
|
||||||
|
class TGVerticalFrame;
|
||||||
|
class TGHorizontalFrame;
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TH2F;
|
||||||
|
class TGComboBox;
|
||||||
|
class TGCheckButton;
|
||||||
|
class TGColorSelect;
|
||||||
|
|
||||||
|
class THStack;
|
||||||
|
class TGraphErrors;
|
||||||
|
class TGTextButton;
|
||||||
|
class TGTab;
|
||||||
|
|
||||||
|
class TGraph;
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbAdc : public TGHorizontalFrame {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
TGLabel *sAdcLabel;
|
||||||
|
TGCheckButton *sAdcEnable;
|
||||||
|
TGCheckButton *sAdcPlot;
|
||||||
|
|
||||||
|
TGColorSelect *fColorSel;
|
||||||
|
|
||||||
|
TGraph *gADC;
|
||||||
|
|
||||||
|
int id;
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbAdc(TGVerticalFrame *page, int i, multiSlsDetector *det);
|
||||||
|
|
||||||
|
|
||||||
|
void setAdcAlias(char *tit, int plot, int color);
|
||||||
|
string getAdcAlias();
|
||||||
|
void ToggledAdcPlot(Int_t b);
|
||||||
|
void ToggledPlot(Bool_t b);
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
ClassDef(jctbAdc,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class jctbAdcs : public TGGroupFrame {
|
||||||
|
private:
|
||||||
|
|
||||||
|
jctbAdc *sAdc[NADCS];
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
jctbAdcs(TGVerticalFrame *page, multiSlsDetector *det);
|
||||||
|
int setAdcAlias(string line);
|
||||||
|
string getAdcAlias();
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
ClassDef(jctbAdcs,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
122
JCTBGui/jctbDac.cpp
Executable file
122
JCTBGui/jctbDac.cpp
Executable file
@ -0,0 +1,122 @@
|
|||||||
|
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbDac.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbDac::jctbDac(TGGroupFrame *page, int idac, multiSlsDetector *det) : TGHorizontalFrame(page, 800,50) , id(idac), myDet(det) {
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe=this;
|
||||||
|
|
||||||
|
page->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "DAC %d:",idac);
|
||||||
|
|
||||||
|
dacsLabel= new TGLabel(hframe, tit);
|
||||||
|
|
||||||
|
hframe->AddFrame(dacsLabel,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
dacsLabel->MapWindow();
|
||||||
|
dacsLabel->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
dacsEntry = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 65535);
|
||||||
|
|
||||||
|
hframe->AddFrame(dacsEntry,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
dacsEntry->MapWindow();
|
||||||
|
dacsEntry->Resize(150,30);
|
||||||
|
|
||||||
|
|
||||||
|
dacsUnit= new TGCheckButton(hframe, "mV");
|
||||||
|
hframe->AddFrame( dacsUnit,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
dacsUnit->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "xxx");
|
||||||
|
dacsValue= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame( dacsValue,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 5, 5, 5, 5));
|
||||||
|
dacsValue->MapWindow();
|
||||||
|
dacsValue->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
TGTextEntry *e=dacsEntry->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbDac",this,"setValue()");
|
||||||
|
// cout << "(((((((((((((((((((((((((((((((" << dacsEntry->GetListOfSignals()->At(0)->IsA() << endl;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbDac::setLabel(char *tit, int mv) {
|
||||||
|
if(tit)
|
||||||
|
dacsLabel->SetText(tit);
|
||||||
|
if (mv>0)
|
||||||
|
dacsUnit->SetOn(kTRUE,kTRUE);
|
||||||
|
else if (mv==0)
|
||||||
|
dacsUnit->SetOn(kFALSE,kTRUE);
|
||||||
|
|
||||||
|
|
||||||
|
return id;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string jctbDac::getLabel() {
|
||||||
|
|
||||||
|
ostringstream line;
|
||||||
|
|
||||||
|
line << "DAC" << dec << id << " " << dacsUnit->IsOn() << endl;
|
||||||
|
|
||||||
|
return line.str();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbDac::setValue() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// cout << "setting dac! "<< id << endl;
|
||||||
|
|
||||||
|
myDet->setDAC(dacsEntry->GetIntNumber(), (slsDetectorDefs::dacIndex)id, dacsUnit->IsOn());
|
||||||
|
|
||||||
|
getValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbDac::getValue() {
|
||||||
|
|
||||||
|
int val=myDet->setDAC(-1, (slsDetectorDefs::dacIndex)id, dacsUnit->IsOn());
|
||||||
|
char s[100];
|
||||||
|
cout << "dac " << id << " " << val << endl;
|
||||||
|
sprintf(s,"%d",val);
|
||||||
|
|
||||||
|
dacsValue->SetText(s);
|
||||||
|
|
||||||
|
|
||||||
|
return val;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
44
JCTBGui/jctbDac.h
Executable file
44
JCTBGui/jctbDac.h
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#ifndef JCTBDAC_H
|
||||||
|
#define JCTBDAC_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TGCheckButton;
|
||||||
|
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbDac : public TGHorizontalFrame {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
TGLabel *dacsLabel;
|
||||||
|
TGNumberEntry *dacsEntry;
|
||||||
|
TGCheckButton *dacsUnit;
|
||||||
|
TGLabel *dacsValue;
|
||||||
|
int id;
|
||||||
|
|
||||||
|
multiSlsDetector* myDet;
|
||||||
|
public:
|
||||||
|
jctbDac(TGGroupFrame*, int , multiSlsDetector*);
|
||||||
|
void setValue();
|
||||||
|
int getValue();
|
||||||
|
|
||||||
|
|
||||||
|
int setLabel(char *tit, int mv);
|
||||||
|
string getLabel();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ClassDef(jctbDac,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
88
JCTBGui/jctbDacs.cpp
Executable file
88
JCTBGui/jctbDacs.cpp
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbDac.h"
|
||||||
|
#include "jctbDacs.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbDacs::jctbDacs(TGVerticalFrame *page, multiSlsDetector *det) : TGGroupFrame(page,"DACs",kVerticalFrame) , myDet(det){
|
||||||
|
|
||||||
|
|
||||||
|
SetTitlePos(TGGroupFrame::kLeft);
|
||||||
|
page->AddFrame(this,new TGLayoutHints( kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
// cout << "window mapped " << endl;
|
||||||
|
|
||||||
|
for (int idac=0; idac<NDACS; idac++) {
|
||||||
|
|
||||||
|
dacs[idac]=new jctbDac(this, idac, myDet);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int jctbDacs::setDacAlias(string line) {
|
||||||
|
|
||||||
|
int is=-1, mv=0;
|
||||||
|
char tit[100];
|
||||||
|
int narg=sscanf(line.c_str(),"DAC%d %s %d",&is,tit,&mv);
|
||||||
|
if (narg<2)
|
||||||
|
return -1;
|
||||||
|
if (is>=0 && is<NDACS)
|
||||||
|
dacs[is]->setLabel(tit,mv);
|
||||||
|
return is;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string jctbDacs::getDacAlias() {
|
||||||
|
|
||||||
|
ostringstream line;
|
||||||
|
|
||||||
|
for (int i=0; i<NDACS; i++)
|
||||||
|
line << dacs[i]->getLabel() << endl;
|
||||||
|
return line.str();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
string jctbDacs::getDacParameters() {
|
||||||
|
|
||||||
|
|
||||||
|
ostringstream line;
|
||||||
|
|
||||||
|
for (int i=0; i<NDACS; i++) {
|
||||||
|
//line << "dacs:" << i << " " << dacs[i]->getValue << endl;
|
||||||
|
line << "dac:" << i << " " << dacs[i]->getValue() << endl;
|
||||||
|
}
|
||||||
|
return line.str();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbDacs::update() {
|
||||||
|
|
||||||
|
for (int idac=0; idac<NDACS; idac++) {
|
||||||
|
|
||||||
|
dacs[idac]->getValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
40
JCTBGui/jctbDacs.h
Executable file
40
JCTBGui/jctbDacs.h
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#ifndef JCTBDACS_H
|
||||||
|
#define JCTBDACS_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NDACS 16
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
class jctbDac;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
class jctbDacs : public TGGroupFrame {
|
||||||
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbDac *dacs[NDACS];
|
||||||
|
|
||||||
|
multiSlsDetector* myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbDacs(TGVerticalFrame *page, multiSlsDetector*);
|
||||||
|
|
||||||
|
int setDacAlias(string line);
|
||||||
|
string getDacAlias();
|
||||||
|
string getDacParameters();
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
ClassDef(jctbDacs,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
4274
JCTBGui/jctbDict.cpp
Executable file
4274
JCTBGui/jctbDict.cpp
Executable file
File diff suppressed because it is too large
Load Diff
98
JCTBGui/jctbDict.h
Executable file
98
JCTBGui/jctbDict.h
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
/********************************************************************
|
||||||
|
* jctbDict.h
|
||||||
|
* CAUTION: DON'T CHANGE THIS FILE. THIS FILE IS AUTOMATICALLY GENERATED
|
||||||
|
* FROM HEADER FILES LISTED IN G__setup_cpp_environmentXXX().
|
||||||
|
* CHANGE THOSE HEADER FILES AND REGENERATE THIS FILE.
|
||||||
|
********************************************************************/
|
||||||
|
#ifdef __CINT__
|
||||||
|
#error jctbDict.h/C is only for compilation. Abort cint.
|
||||||
|
#endif
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <string.h>
|
||||||
|
#define G__ANSIHEADER
|
||||||
|
#define G__DICTIONARY
|
||||||
|
#define G__PRIVATE_GVALUE
|
||||||
|
#include "G__ci.h"
|
||||||
|
#include "FastAllocString.h"
|
||||||
|
extern "C" {
|
||||||
|
extern void G__cpp_setup_tagtablejctbDict();
|
||||||
|
extern void G__cpp_setup_inheritancejctbDict();
|
||||||
|
extern void G__cpp_setup_typetablejctbDict();
|
||||||
|
extern void G__cpp_setup_memvarjctbDict();
|
||||||
|
extern void G__cpp_setup_globaljctbDict();
|
||||||
|
extern void G__cpp_setup_memfuncjctbDict();
|
||||||
|
extern void G__cpp_setup_funcjctbDict();
|
||||||
|
extern void G__set_cpp_environmentjctbDict();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#include "TObject.h"
|
||||||
|
#include "TMemberInspector.h"
|
||||||
|
#include "jctbSignals.h"
|
||||||
|
#include "jctbSignal.h"
|
||||||
|
#include "jctbPattern.h"
|
||||||
|
#include "jctbDacs.h"
|
||||||
|
#include "jctbDac.h"
|
||||||
|
#include "jctbMain.h"
|
||||||
|
#include "jctbAdcs.h"
|
||||||
|
#include "jctbAcquisition.h"
|
||||||
|
#include <algorithm>
|
||||||
|
namespace std { }
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#ifndef G__MEMFUNCBODY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TClass;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TBuffer;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TMemberInspector;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TObject;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_string;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_vectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgR;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_reverse_iteratorlEvectorlEROOTcLcLTSchemaHelpercOallocatorlEROOTcLcLTSchemaHelpergRsPgRcLcLiteratorgR;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_vectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgR;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_reverse_iteratorlEvectorlETVirtualArraymUcOallocatorlETVirtualArraymUgRsPgRcLcLiteratorgR;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGObject;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TQObject;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGWindow;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGCompositeFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGLayoutHints;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_iteratorlEbidirectional_iterator_tagcOTObjectmUcOlongcOconstsPTObjectmUmUcOconstsPTObjectmUaNgR;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGTextButton;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGVerticalFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGHorizontalFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGMainFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGGroupFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGNumberEntry;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_multiSlsDetector;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbSignal;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbSignals;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGTextEntry;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGLabel;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGCheckButton;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TH1I;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGColorSelect;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TRootEmbeddedCanvas;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGButtonGroup;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGTab;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbLoop;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbWait;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbPattern;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbDac;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbDacs;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGMenuBar;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGPopupMenu;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGDockableFrame;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbAdcs;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbAcquisition;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbMain;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TGraph;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_jctbAdc;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_TThread;
|
||||||
|
extern G__linked_taginfo G__jctbDictLN_detectorData;
|
||||||
|
|
||||||
|
/* STUB derived class for protected member access */
|
11
JCTBGui/jctbLinkDef.h
Executable file
11
JCTBGui/jctbLinkDef.h
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#pragma link C++ class jctbMain;
|
||||||
|
#pragma link C++ class jctbDacs;
|
||||||
|
#pragma link C++ class jctbDac;
|
||||||
|
#pragma link C++ class jctbSignals;
|
||||||
|
#pragma link C++ class jctbSignal;
|
||||||
|
#pragma link C++ class jctbAdc;
|
||||||
|
#pragma link C++ class jctbAdcs;
|
||||||
|
#pragma link C++ class jctbLoop;
|
||||||
|
#pragma link C++ class jctbWait;
|
||||||
|
#pragma link C++ class jctbPattern;
|
||||||
|
#pragma link C++ class jctbAcquisition;
|
665
JCTBGui/jctbMain.cpp
Executable file
665
JCTBGui/jctbMain.cpp
Executable file
@ -0,0 +1,665 @@
|
|||||||
|
#include <TApplication.h>
|
||||||
|
#include <TGClient.h>
|
||||||
|
#include <TCanvas.h>
|
||||||
|
#include <TF1.h>
|
||||||
|
#include <TRandom.h>
|
||||||
|
#include <TGButton.h>
|
||||||
|
#include <TRootEmbeddedCanvas.h>
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
#include <TGFileDialog.h>
|
||||||
|
#include <TGComboBox.h>
|
||||||
|
#include <TH2F.h>
|
||||||
|
#include <TColor.h>
|
||||||
|
#include <TH1F.h>
|
||||||
|
#include <TGraphErrors.h>
|
||||||
|
#include <THStack.h>
|
||||||
|
#include <TGTab.h>
|
||||||
|
#include <TApplication.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <TGMenu.h>
|
||||||
|
#include <TGDockableFrame.h>
|
||||||
|
//#include <TGMenuBar.h>
|
||||||
|
//#include <TGPopupMenu.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
#include "jctbMain.h"
|
||||||
|
#include "jctbDacs.h"
|
||||||
|
#include "jctbSignals.h"
|
||||||
|
#include "jctbPattern.h"
|
||||||
|
#include "jctbAdcs.h"
|
||||||
|
#include "jctbAcquisition.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbMain::jctbMain(const TGWindow *p, multiSlsDetector *det)
|
||||||
|
: TGMainFrame(p,800,800) {
|
||||||
|
|
||||||
|
myDet=det;
|
||||||
|
|
||||||
|
Connect("CloseWindow()", "jctbMain", this, "CloseWindow()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// fMenuDock = new TGDockableFrame(this);
|
||||||
|
// AddFrame(fMenuDock, new TGLayoutHints(kLHintsExpandX, 0, 0, 1, 0));
|
||||||
|
// fMenuDock->SetWindowName("GuiTest Menu");
|
||||||
|
|
||||||
|
fMenuBarLayout = new TGLayoutHints(kLHintsTop | kLHintsExpandX);
|
||||||
|
fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0);
|
||||||
|
fMenuBarHelpLayout = new TGLayoutHints(kLHintsTop | kLHintsRight);
|
||||||
|
|
||||||
|
fMenuFile = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
int im=0;
|
||||||
|
|
||||||
|
fMenuFile->AddEntry("Open Alias", im++);
|
||||||
|
fMenuFile->AddEntry("Save Alias", im++);
|
||||||
|
fMenuFile->AddSeparator();
|
||||||
|
fMenuFile->AddEntry("Open Parameters", im++);
|
||||||
|
fMenuFile->AddEntry("Save Parameters", im++);
|
||||||
|
fMenuFile->AddSeparator();
|
||||||
|
fMenuFile->AddEntry("Open Configuration", im++);
|
||||||
|
fMenuFile->AddEntry("Save Configuration", im++);
|
||||||
|
fMenuFile->AddSeparator();
|
||||||
|
fMenuFile->AddEntry("Open Pattern", im++);
|
||||||
|
fMenuFile->AddEntry("Save Pattern", im++);
|
||||||
|
fMenuFile->AddSeparator();
|
||||||
|
fMenuFile->AddEntry("Exit", im++);
|
||||||
|
|
||||||
|
fMenuFile->Connect("Activated(Int_t)", "jctbMain", this,
|
||||||
|
"HandleMenu(Int_t)");
|
||||||
|
// fMenuFile->Connect("PoppedUp()", "TestMainFrame", this, "HandlePopup()");
|
||||||
|
// fMenuFile->Connect("PoppedDown()", "TestMainFrame", this, "HandlePopdown()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// fCascade2Menu = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fCascade2Menu->AddEntry("ID = 2&3", im++);
|
||||||
|
// fCascade2Menu->AddEntry("ID = 2&4", im++);
|
||||||
|
// fCascade2Menu->AddEntry("ID = 2&5", im++);
|
||||||
|
|
||||||
|
// fCascade1Menu = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fCascade1Menu->AddEntry("ID = 4&1", 41);
|
||||||
|
// fCascade1Menu->AddEntry("ID = 4&2", 42);
|
||||||
|
// fCascade1Menu->AddEntry("ID = 4&3", 43);
|
||||||
|
// fCascade1Menu->AddSeparator();
|
||||||
|
// fCascade1Menu->AddPopup("Cascade&d 2", fCascade2Menu);
|
||||||
|
|
||||||
|
// fCascadeMenu = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fCascadeMenu->AddEntry("ID = 5&1", 51);
|
||||||
|
// fCascadeMenu->AddEntry("ID = 5&2", 52);
|
||||||
|
// fCascadeMenu->AddEntry("ID = 5&3", 53);
|
||||||
|
// fCascadeMenu->AddSeparator();
|
||||||
|
// fCascadeMenu->AddPopup("&Cascaded 1", fCascade1Menu);
|
||||||
|
|
||||||
|
// fMenuTest = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fMenuTest->AddLabel("Test different features...");
|
||||||
|
// fMenuTest->AddSeparator();
|
||||||
|
// fMenuTest->AddEntry("&Dialog...", im++);
|
||||||
|
// fMenuTest->AddEntry("&Message Box...", im++);
|
||||||
|
// fMenuTest->AddEntry("&Sliders...", im++);
|
||||||
|
// fMenuTest->AddEntry("Sh&utter...", im++);
|
||||||
|
// fMenuTest->AddEntry("&List Directory...", im++);
|
||||||
|
// fMenuTest->AddEntry("&File List...", im++);
|
||||||
|
// fMenuTest->AddEntry("&Progress...", im++);
|
||||||
|
// fMenuTest->AddEntry("&Number Entry...", im++);
|
||||||
|
// fMenuTest->AddEntry("F&ont Dialog...", im++);
|
||||||
|
// fMenuTest->AddSeparator();
|
||||||
|
// fMenuTest->AddEntry("Add New Menus", im++);
|
||||||
|
// fMenuTest->AddSeparator();
|
||||||
|
// fMenuTest->AddPopup("&Cascaded menus", fCascadeMenu);
|
||||||
|
|
||||||
|
// fMenuView = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fMenuView->AddEntry("&Dock", im++);
|
||||||
|
// fMenuView->AddEntry("&Undock", im++);
|
||||||
|
// fMenuView->AddSeparator();
|
||||||
|
// fMenuView->AddEntry("Enable U&ndock", im++);
|
||||||
|
// fMenuView->AddEntry("Enable &Hide", im++);
|
||||||
|
// fMenuView->DisableEntry(im);
|
||||||
|
|
||||||
|
// fMenuDock->EnableUndock(kTRUE);
|
||||||
|
// fMenuDock->EnableHide(kTRUE);
|
||||||
|
// fMenuView->CheckEntry(im);
|
||||||
|
// fMenuView->CheckEntry(im);
|
||||||
|
|
||||||
|
// // When using the DockButton of the MenuDock,
|
||||||
|
// // the states 'enable' and 'disable' of menus have to be updated.
|
||||||
|
// fMenuDock->Connect("Undocked()", "TestMainFrame", this, "HandleMenu(=M_VIEW_UNDOCK)");
|
||||||
|
|
||||||
|
// fMenuHelp = new TGPopupMenu(gClient->GetRoot());
|
||||||
|
// fMenuHelp->AddEntry("&Contents", im++);
|
||||||
|
// fMenuHelp->AddEntry("&Search...", im++);
|
||||||
|
// fMenuHelp->AddSeparator();
|
||||||
|
// fMenuHelp->AddEntry("&About", im++);
|
||||||
|
|
||||||
|
// fMenuNew1 = new TGPopupMenu();
|
||||||
|
// fMenuNew1->AddEntry("Remove New Menus", im++);
|
||||||
|
|
||||||
|
// fMenuNew2 = new TGPopupMenu();
|
||||||
|
// fMenuNew2->AddEntry("Remove New Menus", im++);
|
||||||
|
|
||||||
|
// Menu button messages are handled by the main frame (i.e. "this")
|
||||||
|
// HandleMenu() method.
|
||||||
|
// fMenuFile->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fMenuFile->Connect("PoppedUp()", "TestMainFrame", this, "HandlePopup()");
|
||||||
|
// fMenuFile->Connect("PoppedDown()", "TestMainFrame", this, "HandlePopdown()");
|
||||||
|
// fMenuTest->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fMenuView->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fMenuHelp->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fCascadeMenu->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fCascade1Menu->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fCascade2Menu->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fMenuNew1->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
// fMenuNew2->Connect("Activated(Int_t)", "TestMainFrame", this,
|
||||||
|
// "HandleMenu(Int_t)");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TGVerticalFrame *vframe=new TGVerticalFrame(this, 800,1200); //main frame
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fMenuBar = new TGMenuBar(vframe, 1, 1, kHorizontalFrame);
|
||||||
|
fMenuBar->AddPopup("&File", fMenuFile, fMenuBarItemLayout);
|
||||||
|
// fMenuBar->AddPopup("&Test", fMenuTest, fMenuBarItemLayout);
|
||||||
|
// fMenuBar->AddPopup("&View", fMenuView, fMenuBarItemLayout);
|
||||||
|
// fMenuBar->AddPopup("&Help", fMenuHelp, fMenuBarHelpLayout);
|
||||||
|
|
||||||
|
vframe->AddFrame(fMenuBar, fMenuBarLayout);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame* hpage=new TGHorizontalFrame(vframe, 800,1200); //horizontal frame. Inside there should be the tab and the canvas
|
||||||
|
mtab=new TGTab(hpage, 1500, 1200); //tab!
|
||||||
|
// page=new TGVerticalFrame(mtab, 1500,1200);
|
||||||
|
|
||||||
|
TGCompositeFrame *tf = mtab->AddTab("DACs");
|
||||||
|
TGVerticalFrame *page=new TGVerticalFrame(tf, 1500,1200);
|
||||||
|
tf->AddFrame(page, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
dacs=new jctbDacs(page, myDet);
|
||||||
|
|
||||||
|
|
||||||
|
tf = mtab->AddTab("Signals");
|
||||||
|
page=new TGVerticalFrame(tf, 1500,1200);
|
||||||
|
tf->AddFrame(page, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
sig=new jctbSignals(page, myDet);
|
||||||
|
|
||||||
|
|
||||||
|
tf = mtab->AddTab("ADCs");
|
||||||
|
page=new TGVerticalFrame(tf, 1500,1200);
|
||||||
|
tf->AddFrame(page, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
adcs=new jctbAdcs(page, myDet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tf = mtab->AddTab("Pattern");
|
||||||
|
page=new TGVerticalFrame(tf, 1500,1200);
|
||||||
|
tf->AddFrame(page, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
pat=new jctbPattern(page, myDet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tf = mtab->AddTab("Acquisition");
|
||||||
|
page=new TGVerticalFrame(tf, 1500,1200);
|
||||||
|
tf->AddFrame(page, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
acq=new jctbAcquisition(page, myDet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hpage->AddFrame(mtab,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
|
||||||
|
vframe->AddFrame(hpage,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
|
||||||
|
AddFrame(vframe,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1));
|
||||||
|
vframe->MapWindow();
|
||||||
|
hpage->MapWindow();
|
||||||
|
mtab->MapWindow();
|
||||||
|
page->MapWindow();
|
||||||
|
|
||||||
|
// Sets window name and shows the main frame
|
||||||
|
SetWindowName("JCTB Gui");
|
||||||
|
MapSubwindows();
|
||||||
|
MapWindow();
|
||||||
|
Resize(1500,1200);
|
||||||
|
|
||||||
|
|
||||||
|
// // Creates widgets of the example
|
||||||
|
fEcanvas = new TRootEmbeddedCanvas ("Ecanvas",hpage,800,800);
|
||||||
|
fEcanvas->Resize();
|
||||||
|
fEcanvas->GetCanvas()->Update();
|
||||||
|
|
||||||
|
hpage->AddFrame(fEcanvas, new TGLayoutHints(kLHintsBottom | kLHintsCenterX | kLHintsExpandX | kLHintsExpandY, 10,10,10,10));
|
||||||
|
|
||||||
|
|
||||||
|
fEcanvas->MapWindow();
|
||||||
|
hpage->MapSubwindows();
|
||||||
|
mtab->Connect("Selected(Int_t)","jctbMain",this,"tabSelected(Int_t)");
|
||||||
|
|
||||||
|
|
||||||
|
tabSelected(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbMain::CloseWindow() {
|
||||||
|
gApplication->Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbMain::HandleMenu(Int_t id)
|
||||||
|
{
|
||||||
|
// Handle menu items.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
switch (id) {
|
||||||
|
|
||||||
|
case 0: // fMenuFile->AddEntry("Open Alias", im++);
|
||||||
|
cout << "Open Alias" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
loadAlias(fi.fFilename);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // fMenuFile->AddEntry("Save Alias", im++);
|
||||||
|
cout << "Save Alias" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDSave, &fi);
|
||||||
|
printf("Save file: %s (dir: %s)\n", fi.fFilename);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
saveAlias(fi.fFilename);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: //fMenuFile->AddEntry("Open Parameters", im++);
|
||||||
|
cout << "Open Parameters" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
loadParameters(fi.fFilename);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: //fMenuFile->AddEntry("Save Parameters", im++);
|
||||||
|
cout << "Save Parameters" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDSave, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
saveParameters(fi.fFilename);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: // fMenuFile->AddEntry("Open Configuration", im++);
|
||||||
|
cout << "Open configuration" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5: // fMenuFile->AddEntry("Save Configuration", im++);
|
||||||
|
cout << "Save configuration" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDSave, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6: //fMenuFile->AddEntry("Open Pattern", im++);
|
||||||
|
cout << "Open pattern" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDOpen, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7: //fMenuFile->AddEntry("Save Pattern", im++);
|
||||||
|
cout << "Save pattern" << endl;
|
||||||
|
{
|
||||||
|
static TString dir(".");
|
||||||
|
TGFileInfo fi;
|
||||||
|
//fi.fFileTypes = filetypes;
|
||||||
|
fi.fIniDir = StrDup(dir);
|
||||||
|
printf("fIniDir = %s\n", fi.fIniDir);
|
||||||
|
new TGFileDialog(gClient->GetRoot(), this, kFDSave, &fi);
|
||||||
|
printf("Open file: %s (dir: %s)\n", fi.fFilename, fi.fIniDir);
|
||||||
|
// dir = fi.fIniDir;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8: // fMenuFile->AddEntry("Exit", im++);
|
||||||
|
CloseWindow();
|
||||||
|
|
||||||
|
default:
|
||||||
|
printf("Menu item %d selected\n", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::loadConfiguration(string fname) {
|
||||||
|
|
||||||
|
myDet->readConfigurationFile(fname);
|
||||||
|
|
||||||
|
// string line;
|
||||||
|
// int i;
|
||||||
|
// ifstream myfile (fname.c_str());
|
||||||
|
// if (myfile.is_open())
|
||||||
|
// {
|
||||||
|
// while ( getline (myfile,line) )
|
||||||
|
// {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// myfile.close();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::saveConfiguration(string fname) {
|
||||||
|
|
||||||
|
|
||||||
|
string line;
|
||||||
|
int i;
|
||||||
|
ofstream myfile (fname.c_str());
|
||||||
|
if (myfile.is_open())
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
myfile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::loadParameters(string fname) {
|
||||||
|
|
||||||
|
myDet->retrieveDetectorSetup(fname);
|
||||||
|
|
||||||
|
// string line;
|
||||||
|
// int i;
|
||||||
|
// ifstream myfile (fname.c_str());
|
||||||
|
// if (myfile.is_open())
|
||||||
|
// {
|
||||||
|
// while ( getline (myfile,line) )
|
||||||
|
// {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// myfile.close();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::saveParameters(string fname) {
|
||||||
|
|
||||||
|
|
||||||
|
string line;
|
||||||
|
int i;
|
||||||
|
ofstream myfile (fname.c_str());
|
||||||
|
if (myfile.is_open())
|
||||||
|
{
|
||||||
|
|
||||||
|
myfile << dacs->getDacParameters();
|
||||||
|
myfile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::loadAlias(string fname) {
|
||||||
|
|
||||||
|
|
||||||
|
string line;
|
||||||
|
int i;
|
||||||
|
ifstream myfile (fname.c_str());
|
||||||
|
if (myfile.is_open())
|
||||||
|
{
|
||||||
|
while ( getline (myfile,line) )
|
||||||
|
{
|
||||||
|
// cout << line ;
|
||||||
|
if (sscanf(line.c_str(),"BIT%d",&i)>0) {
|
||||||
|
//cout << "*******" << line<< endl;
|
||||||
|
sig->setSignalAlias(line);
|
||||||
|
// cout << line ;
|
||||||
|
} else if (sscanf(line.c_str(),"DAC%d",&i)>0) {
|
||||||
|
dacs->setDacAlias(line);
|
||||||
|
// cout << "+++++++++" << line<< endl;
|
||||||
|
} else if (sscanf(line.c_str(),"ADC%d",&i)>0) {
|
||||||
|
adcs->setAdcAlias(line);
|
||||||
|
// cout << "---------" << line<< endl;
|
||||||
|
} // else
|
||||||
|
// cout << "<<<<<<<" << line << endl;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
myfile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbMain::saveAlias(string fname) {
|
||||||
|
|
||||||
|
|
||||||
|
string line;
|
||||||
|
int i;
|
||||||
|
ofstream myfile (fname.c_str());
|
||||||
|
if (myfile.is_open())
|
||||||
|
{
|
||||||
|
//while ( getline (myfile,line) )
|
||||||
|
// {
|
||||||
|
// cout << line ;
|
||||||
|
//if (sscanf(line.c_str(),"BIT%d",&i)>0) {
|
||||||
|
//cout << "*******" << line<< endl;
|
||||||
|
myfile << sig->getSignalAlias();
|
||||||
|
// cout << line ;
|
||||||
|
// } else if (sscanf(line.c_str(),"DAC%d",&i)>0) {
|
||||||
|
myfile << dacs->getDacAlias();
|
||||||
|
// cout << "+++++++++" << line<< endl;
|
||||||
|
// } else if (sscanf(line.c_str(),"ADC%d",&i)>0) {
|
||||||
|
myfile << adcs->getAdcAlias();
|
||||||
|
// cout << "---------" << line<< endl;
|
||||||
|
// } // else
|
||||||
|
// cout << "<<<<<<<" << line << endl;
|
||||||
|
|
||||||
|
|
||||||
|
//}
|
||||||
|
myfile.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
else cout << "Unable to open file";
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbMain::tabSelected(Int_t i) {
|
||||||
|
|
||||||
|
// cout << "Selected tab " << i << endl;
|
||||||
|
// cout << "Current tab is " << mtab->GetCurrent() << endl;
|
||||||
|
|
||||||
|
switch (i) {
|
||||||
|
|
||||||
|
case 0: //dacs
|
||||||
|
dacs->update();
|
||||||
|
break;
|
||||||
|
case 1: //signals
|
||||||
|
sig->update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: //adcs
|
||||||
|
adcs->update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: //pattern
|
||||||
|
pat->update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: //acq
|
||||||
|
acq->update();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
94
JCTBGui/jctbMain.h
Executable file
94
JCTBGui/jctbMain.h
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
#ifndef JCTBMAIN_H
|
||||||
|
#define JCTBMAIN_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
class TRootEmbeddedCanvas;
|
||||||
|
class TGButtonGroup;
|
||||||
|
class TGVerticalFrame;
|
||||||
|
class TGHorizontalFrame;
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TH2F;
|
||||||
|
class TGComboBox;
|
||||||
|
class TGCheckButton;
|
||||||
|
|
||||||
|
class THStack;
|
||||||
|
class TGraphErrors;
|
||||||
|
class TGTextButton;
|
||||||
|
class TGTab;
|
||||||
|
|
||||||
|
class TGMenuBar;
|
||||||
|
class TGPopupMenu;
|
||||||
|
class TGDockableFrame;
|
||||||
|
class TGLayoutHints;
|
||||||
|
|
||||||
|
class jctbDacs;
|
||||||
|
|
||||||
|
|
||||||
|
class jctbSignals;
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
|
||||||
|
class jctbPattern;
|
||||||
|
class jctbAdcs;
|
||||||
|
class jctbAcquisition;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbMain : public TGMainFrame {
|
||||||
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TRootEmbeddedCanvas *fEcanvas;
|
||||||
|
TRootEmbeddedCanvas *fModulecanvas;
|
||||||
|
TGButtonGroup *br;
|
||||||
|
|
||||||
|
TGTab *mtab;
|
||||||
|
|
||||||
|
|
||||||
|
jctbDacs *dacs;
|
||||||
|
|
||||||
|
|
||||||
|
jctbSignals *sig;
|
||||||
|
jctbAdcs *adcs;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbPattern *pat;
|
||||||
|
jctbAcquisition *acq;
|
||||||
|
|
||||||
|
TGDockableFrame *fMenuDock;
|
||||||
|
|
||||||
|
TGMenuBar *fMenuBar;
|
||||||
|
TGPopupMenu *fMenuFile, *fMenuTest, *fMenuView, *fMenuHelp;
|
||||||
|
TGPopupMenu *fCascadeMenu, *fCascade1Menu, *fCascade2Menu;
|
||||||
|
TGPopupMenu *fMenuNew1, *fMenuNew2;
|
||||||
|
TGLayoutHints *fMenuBarLayout, *fMenuBarItemLayout, *fMenuBarHelpLayout;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbMain(const TGWindow *p, multiSlsDetector *det);
|
||||||
|
|
||||||
|
|
||||||
|
int loadAlias(string fname);
|
||||||
|
int saveAlias(string fname);
|
||||||
|
int loadParameters(string fname);
|
||||||
|
int saveParameters(string fname);
|
||||||
|
int loadConfiguration(string fname);
|
||||||
|
int saveConfiguration(string fname);
|
||||||
|
void tabSelected(Int_t);
|
||||||
|
|
||||||
|
void CloseWindow();
|
||||||
|
|
||||||
|
void HandleMenu(Int_t);
|
||||||
|
|
||||||
|
ClassDef(jctbMain,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
532
JCTBGui/jctbPattern.cpp
Executable file
532
JCTBGui/jctbPattern.cpp
Executable file
@ -0,0 +1,532 @@
|
|||||||
|
#include <TApplication.h>
|
||||||
|
#include <TGClient.h>
|
||||||
|
#include <TCanvas.h>
|
||||||
|
#include <TF1.h>
|
||||||
|
#include <TRandom.h>
|
||||||
|
#include <TGButton.h>
|
||||||
|
#include <TRootEmbeddedCanvas.h>
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
#include <TGFileDialog.h>
|
||||||
|
#include <TGComboBox.h>
|
||||||
|
#include <TH2F.h>
|
||||||
|
#include <TColor.h>
|
||||||
|
#include <TH1F.h>
|
||||||
|
#include <TGraphErrors.h>
|
||||||
|
#include <THStack.h>
|
||||||
|
#include <TGTab.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbPattern.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbLoop::jctbLoop(TGGroupFrame *page, int i, multiSlsDetector *det) : TGHorizontalFrame(page, 800,800), id(i), myDet(det) {
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe=this;
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
page->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Loop %d Repetitions: ", id);
|
||||||
|
|
||||||
|
TGLabel *label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eLoopNumber = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
hframe->AddFrame( eLoopNumber,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eLoopNumber->MapWindow();
|
||||||
|
eLoopNumber->Resize(150,30);
|
||||||
|
TGTextEntry *e= eLoopNumber->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbLoop",this,"setNLoops()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Start Address: ");
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eLoopStartAddr = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 1024);
|
||||||
|
hframe->AddFrame( eLoopStartAddr,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eLoopStartAddr->MapWindow();
|
||||||
|
eLoopStartAddr->Resize(150,30);
|
||||||
|
|
||||||
|
eLoopStartAddr->SetState(kFALSE);
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, "Stop Address: ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eLoopStopAddr = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 1024);
|
||||||
|
hframe->AddFrame( eLoopStopAddr,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eLoopStopAddr->MapWindow();
|
||||||
|
eLoopStopAddr->Resize(150,30);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eLoopStopAddr->SetState(kFALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbLoop::setNLoops() {
|
||||||
|
|
||||||
|
int start, stop, n;
|
||||||
|
|
||||||
|
|
||||||
|
start=-1;
|
||||||
|
stop=-1;
|
||||||
|
n=eLoopNumber->GetNumber();
|
||||||
|
myDet->setCTBPatLoops(id,start, stop,n);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbLoop::update() {
|
||||||
|
|
||||||
|
int start, stop, n;
|
||||||
|
|
||||||
|
|
||||||
|
start=-1;
|
||||||
|
stop=-1;
|
||||||
|
n=-1;
|
||||||
|
myDet->setCTBPatLoops(id,start, stop,n);
|
||||||
|
eLoopStartAddr->SetHexNumber(start);
|
||||||
|
eLoopStopAddr->SetHexNumber(stop);
|
||||||
|
eLoopNumber->SetNumber(n);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbWait::jctbWait(TGGroupFrame *page, int i, multiSlsDetector *det) : TGHorizontalFrame(page, 800,800), id(i), myDet(det) {
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
TGHorizontalFrame *hframe=this;
|
||||||
|
page->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Wait %d (run clk): ", id);
|
||||||
|
|
||||||
|
TGLabel *label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eWaitTime = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
hframe->AddFrame( eWaitTime,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eWaitTime->MapWindow();
|
||||||
|
eWaitTime->Resize(150,30);
|
||||||
|
TGTextEntry *e= eWaitTime->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbWait",this,"setWaitTime()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Wait Address: ");
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eWaitAddr = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 1024);
|
||||||
|
hframe->AddFrame( eWaitAddr,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eWaitAddr->MapWindow();
|
||||||
|
eWaitAddr->Resize(150,30);
|
||||||
|
|
||||||
|
eWaitAddr->SetState(kFALSE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbWait::setWaitTime() {
|
||||||
|
|
||||||
|
|
||||||
|
Long64_t t=eWaitTime->GetNumber();
|
||||||
|
|
||||||
|
t=myDet->setCTBPatWaitTime(id,t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbWait::update() {
|
||||||
|
|
||||||
|
int start, stop, n, addr;
|
||||||
|
|
||||||
|
Long64_t t=-1;
|
||||||
|
|
||||||
|
|
||||||
|
t=myDet->setCTBPatWaitTime(id,t);
|
||||||
|
addr=myDet->setCTBPatWaitAddr(id,-1);
|
||||||
|
eWaitAddr->SetHexNumber(addr);
|
||||||
|
eWaitTime->SetNumber(t);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbPattern::jctbPattern(TGVerticalFrame *page, multiSlsDetector *det)
|
||||||
|
: TGGroupFrame(page,"Pattern",kVerticalFrame), myDet(det) {
|
||||||
|
|
||||||
|
|
||||||
|
SetTitlePos(TGGroupFrame::kLeft);
|
||||||
|
page->AddFrame(this,new TGLayoutHints( kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame* hframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "ADC Clock Frequency (MHz): ");
|
||||||
|
|
||||||
|
TGLabel *label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eAdcClkFreq = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 40);
|
||||||
|
hframe->AddFrame( eAdcClkFreq,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eAdcClkFreq->MapWindow();
|
||||||
|
eAdcClkFreq->Resize(150,30);
|
||||||
|
TGTextEntry *e= eAdcClkFreq->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setAdcFreq()");
|
||||||
|
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, " Phase (0.15ns step): ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eAdcClkPhase = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 200);
|
||||||
|
hframe->AddFrame( eAdcClkPhase,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eAdcClkPhase->MapWindow();
|
||||||
|
eAdcClkPhase->Resize(150,30);
|
||||||
|
e= eAdcClkPhase->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setAdcPhase()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Run Clock Frequency (MHz): ");
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eRunClkFreq = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 160);
|
||||||
|
hframe->AddFrame( eRunClkFreq,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eRunClkFreq->MapWindow();
|
||||||
|
eRunClkFreq->Resize(150,30);
|
||||||
|
e= eRunClkFreq->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setRunFreq()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, " Phase (0.15ns step): ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eRunClkPhase = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 200);
|
||||||
|
hframe->AddFrame( eRunClkPhase,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eRunClkPhase->MapWindow();
|
||||||
|
eRunClkPhase->Resize(150,30);
|
||||||
|
e= eRunClkPhase->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setRunPhase()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Number of frames: ");
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eFrames = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
hframe->AddFrame( eFrames,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eFrames->MapWindow();
|
||||||
|
eFrames->Resize(150,30);
|
||||||
|
e= eFrames->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setFrames()");
|
||||||
|
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, " Period (s): ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ePeriod = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESInteger,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
hframe->AddFrame( ePeriod,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
ePeriod->MapWindow();
|
||||||
|
ePeriod->Resize(150,30);
|
||||||
|
e= ePeriod->TGNumberEntry::GetNumberEntry();
|
||||||
|
e->Connect("ReturnPressed()","jctbPattern",this,"setPeriod()");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "Start Address: ");
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eStartAddr = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 1024);
|
||||||
|
hframe->AddFrame( eStartAddr,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eStartAddr->MapWindow();
|
||||||
|
eStartAddr->Resize(150,30);
|
||||||
|
|
||||||
|
eStartAddr->SetState(kFALSE);
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, "Stop Address: ");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eStopAddr = new TGNumberEntry(hframe, 0, 9,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELLimitMinMax,
|
||||||
|
0, 1024);
|
||||||
|
hframe->AddFrame( eStopAddr,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eStopAddr->MapWindow();
|
||||||
|
eStopAddr->Resize(150,30);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eStopAddr->SetState(kFALSE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int idac=0;
|
||||||
|
for (idac=0; idac<NLOOPS; idac++) {
|
||||||
|
|
||||||
|
eLoop[idac]=new jctbLoop(this,idac,myDet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (idac=0; idac<NWAITS; idac++) {
|
||||||
|
|
||||||
|
|
||||||
|
eWait[idac]=new jctbWait(this,idac,myDet);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbPattern::update() {
|
||||||
|
|
||||||
|
int start, stop, n, addr;
|
||||||
|
|
||||||
|
Long_t t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
eAdcClkFreq->SetNumber(myDet->setSpeed(slsDetectorDefs::ADC_CLOCK,-1));
|
||||||
|
eRunClkFreq->SetNumber(myDet->setSpeed(slsDetectorDefs::CLOCK_DIVIDER,-1));
|
||||||
|
//ADC_PHASE
|
||||||
|
//PHASE_SHIFT
|
||||||
|
eFrames->SetNumber(myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,-1));
|
||||||
|
ePeriod->SetNumber(((Double_t)myDet->setTimer(slsDetectorDefs::FRAME_PERIOD,-1))*1E-9);
|
||||||
|
|
||||||
|
start=-1;
|
||||||
|
stop=-1;
|
||||||
|
n=-1;
|
||||||
|
myDet->setCTBPatLoops(-1,start, stop,n);
|
||||||
|
eStartAddr->SetHexNumber(start);
|
||||||
|
eStopAddr->SetHexNumber(stop);
|
||||||
|
|
||||||
|
for (int iloop=0; iloop<NLOOPS; iloop++) {
|
||||||
|
eLoop[iloop]->update();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int iwait=0; iwait<NWAITS; iwait++) {
|
||||||
|
eWait[iwait]->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbPattern::setFrames() {
|
||||||
|
myDet->setTimer(slsDetectorDefs::FRAME_NUMBER,eFrames->GetNumber());
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbPattern::setPeriod() {
|
||||||
|
myDet->setTimer(slsDetectorDefs::FRAME_PERIOD,eFrames->GetNumber()*1E9);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbPattern::setAdcFreq() {
|
||||||
|
myDet->setSpeed(slsDetectorDefs::ADC_CLOCK,eAdcClkFreq->GetNumber());
|
||||||
|
}
|
||||||
|
void jctbPattern::setRunFreq() {
|
||||||
|
myDet->setSpeed(slsDetectorDefs::CLOCK_DIVIDER,eRunClkFreq->GetNumber());
|
||||||
|
|
||||||
|
}
|
||||||
|
void jctbPattern::setAdcPhase() {
|
||||||
|
myDet->setSpeed(slsDetectorDefs::ADC_PHASE,eAdcClkPhase->GetNumber());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbPattern::setRunPhase() {
|
||||||
|
myDet->setSpeed(slsDetectorDefs::PHASE_SHIFT,eRunClkPhase->GetNumber());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
124
JCTBGui/jctbPattern.h
Executable file
124
JCTBGui/jctbPattern.h
Executable file
@ -0,0 +1,124 @@
|
|||||||
|
#ifndef JCTBPATTERN_H
|
||||||
|
#define JCTBPATTERN_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NLOOPS 3
|
||||||
|
#define NWAITS 3
|
||||||
|
#define NADCS 32
|
||||||
|
#define PATLEN 1024
|
||||||
|
|
||||||
|
class TRootEmbeddedCanvas;
|
||||||
|
class TGButtonGroup;
|
||||||
|
class TGVerticalFrame;
|
||||||
|
class TGHorizontalFrame;
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TH2F;
|
||||||
|
class TGComboBox;
|
||||||
|
class TGCheckButton;
|
||||||
|
|
||||||
|
class THStack;
|
||||||
|
class TGraphErrors;
|
||||||
|
class energyCalibration;
|
||||||
|
class TGTextButton;
|
||||||
|
class TGTab;
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class jctbLoop : public TGHorizontalFrame {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
TGNumberEntry *eLoopStartAddr;
|
||||||
|
TGNumberEntry *eLoopStopAddr;
|
||||||
|
TGNumberEntry *eLoopNumber;
|
||||||
|
|
||||||
|
int id;
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbLoop(TGGroupFrame *page, int i,multiSlsDetector *det);
|
||||||
|
|
||||||
|
void setNLoops();
|
||||||
|
void update();
|
||||||
|
|
||||||
|
ClassDef(jctbLoop,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
class jctbWait : public TGHorizontalFrame {
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
TGNumberEntry *eWaitAddr;
|
||||||
|
TGNumberEntry *eWaitTime;
|
||||||
|
|
||||||
|
int id;
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbWait(TGGroupFrame *page, int i,multiSlsDetector *det);
|
||||||
|
|
||||||
|
void setWaitTime();
|
||||||
|
void update();
|
||||||
|
|
||||||
|
ClassDef(jctbWait,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class jctbPattern : public TGGroupFrame {
|
||||||
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
TGNumberEntry *eAdcClkFreq;
|
||||||
|
TGNumberEntry *eRunClkFreq;
|
||||||
|
TGNumberEntry *eAdcClkPhase;
|
||||||
|
TGNumberEntry *eRunClkPhase;
|
||||||
|
|
||||||
|
TGNumberEntry *eStartAddr;
|
||||||
|
TGNumberEntry *eStopAddr;
|
||||||
|
TGNumberEntry *eFrames;
|
||||||
|
TGNumberEntry *ePeriod;
|
||||||
|
|
||||||
|
jctbLoop *eLoop[NLOOPS];
|
||||||
|
jctbWait *eWait[NWAITS];
|
||||||
|
|
||||||
|
|
||||||
|
char pat[PATLEN*8];
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
jctbPattern(TGVerticalFrame *page, multiSlsDetector *det);
|
||||||
|
|
||||||
|
void update();
|
||||||
|
void setAdcFreq();
|
||||||
|
void setRunFreq();
|
||||||
|
void setAdcPhase();
|
||||||
|
void setRunPhase();
|
||||||
|
void setFrames();
|
||||||
|
void setPeriod();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ClassDef(jctbPattern,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
186
JCTBGui/jctbSignal.cpp
Executable file
186
JCTBGui/jctbSignal.cpp
Executable file
@ -0,0 +1,186 @@
|
|||||||
|
#include <TGButton.h>
|
||||||
|
#include <TRootEmbeddedCanvas.h>
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <TColor.h>
|
||||||
|
#include <TGColorSelect.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "jctbSignal.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jctbSignal::jctbSignal(TGFrame *page, int i, multiSlsDetector *det)
|
||||||
|
: TGHorizontalFrame(page, 800,50), myDet(det), id(i), hsig(NULL) {
|
||||||
|
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe=this;
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tit, "BIT%d ",id);
|
||||||
|
|
||||||
|
sLabel= new TGLabel(hframe, tit);
|
||||||
|
hframe->AddFrame( sLabel,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sLabel->MapWindow();
|
||||||
|
sLabel->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sOutput= new TGCheckButton(hframe, "Out");
|
||||||
|
hframe->AddFrame( sOutput,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sOutput->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
sOutput->Connect("Toggled(Bool_t)","jctbSignal",this,"ToggledOutput(Bool_t)");
|
||||||
|
|
||||||
|
sClock= new TGCheckButton(hframe, "Clk");
|
||||||
|
hframe->AddFrame( sClock,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sClock->MapWindow();
|
||||||
|
|
||||||
|
sClock->Connect("Toggled(Bool_t)","jctbSignal",this,"ToggledClock(Bool_t)");
|
||||||
|
|
||||||
|
|
||||||
|
sPlot= new TGCheckButton(hframe, "Plot");
|
||||||
|
hframe->AddFrame( sPlot,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
sPlot->MapWindow();
|
||||||
|
|
||||||
|
sPlot->Connect("Toggled(Bool_t)","jctbSignal",this,"ToggledPlot(Bool_t)");
|
||||||
|
|
||||||
|
fColorSel = new TGColorSelect(hframe, id+1, 0);
|
||||||
|
hframe->AddFrame(fColorSel, new TGLayoutHints(kLHintsTop |
|
||||||
|
kLHintsLeft, 2, 0, 2, 2));
|
||||||
|
|
||||||
|
|
||||||
|
fColorSel->SetColor(TColor::Number2Pixel(id+1));
|
||||||
|
|
||||||
|
|
||||||
|
ToggledOutput(kFALSE);
|
||||||
|
|
||||||
|
if (id==63) {
|
||||||
|
sOutput->SetOn(kTRUE);
|
||||||
|
sClock->SetOn(kFALSE);
|
||||||
|
sOutput->SetEnabled(kFALSE);
|
||||||
|
sClock->SetEnabled(kFALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
int jctbSignal::setSignalAlias(char *tit, int plot, int col) {
|
||||||
|
|
||||||
|
if (tit)
|
||||||
|
sLabel->SetText(tit);
|
||||||
|
|
||||||
|
if (plot>0) {
|
||||||
|
sPlot->SetOn(kTRUE,kTRUE);
|
||||||
|
} else if (plot==0)
|
||||||
|
sPlot->SetOn(kFALSE,kTRUE);
|
||||||
|
|
||||||
|
if (col>=0)
|
||||||
|
fColorSel->SetColor(col);//TColor::Number2Pixel(col+1));
|
||||||
|
|
||||||
|
fColorSel->SetEnabled(sPlot->IsOn());
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string jctbSignal::getSignalAlias() {
|
||||||
|
|
||||||
|
|
||||||
|
ostringstream oss;
|
||||||
|
oss << "BIT" << dec << id << " " << sLabel->GetText()->Data() << " " << sPlot->IsOn() << hex << " " << fColorSel->GetColor() << endl;
|
||||||
|
return oss.str();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
int jctbSignal::setOutput(Long64_t r) {
|
||||||
|
|
||||||
|
|
||||||
|
// cout << hex << r << dec <<endl;
|
||||||
|
|
||||||
|
Long64_t mask=((Long64_t)1<<id);
|
||||||
|
|
||||||
|
if (r&mask)
|
||||||
|
sOutput->SetOn(kTRUE,kTRUE);
|
||||||
|
else
|
||||||
|
sOutput->SetOn(kFALSE,kTRUE);
|
||||||
|
|
||||||
|
return sOutput->IsOn();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbSignal::setClock(Long64_t r) {
|
||||||
|
|
||||||
|
Long64_t mask=((Long64_t)1<<id);
|
||||||
|
|
||||||
|
// cout << hex << r << dec <<endl;
|
||||||
|
|
||||||
|
if (r&mask)
|
||||||
|
sClock->SetOn(kTRUE,kTRUE);
|
||||||
|
else
|
||||||
|
sClock->SetOn(kFALSE,kTRUE);
|
||||||
|
|
||||||
|
return sClock->IsOn();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int jctbSignal::isClock() { sClock->IsOn();}
|
||||||
|
int jctbSignal::isOutput() { sOutput->IsOn();}
|
||||||
|
int jctbSignal::isPlot() { sPlot->IsOn();}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbSignal::ToggledOutput(Bool_t b) {
|
||||||
|
Long_t mask=b<<id;
|
||||||
|
ToggledSignalOutput(b<<id);
|
||||||
|
if (b) {
|
||||||
|
sClock->SetEnabled(kTRUE);
|
||||||
|
sPlot->SetEnabled(kTRUE);
|
||||||
|
if ( sPlot->IsOn())
|
||||||
|
fColorSel->SetEnabled(kTRUE);
|
||||||
|
else
|
||||||
|
fColorSel->SetEnabled(kFALSE);
|
||||||
|
} else {
|
||||||
|
sClock->SetEnabled(kFALSE);
|
||||||
|
sPlot->SetEnabled(kFALSE);
|
||||||
|
fColorSel->SetEnabled(kFALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
void jctbSignal::ToggledClock(Bool_t b){
|
||||||
|
Long_t mask=b<<id;
|
||||||
|
ToggledSignalClock(mask);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
void jctbSignal::ToggledPlot(Bool_t b){
|
||||||
|
Long_t mask=b<<id;
|
||||||
|
ToggledSignalPlot(mask);
|
||||||
|
fColorSel->SetEnabled(b);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbSignal::ToggledSignalOutput(Int_t b) {
|
||||||
|
Emit("ToggledSignalOutput(Int_t)", id);
|
||||||
|
|
||||||
|
}
|
||||||
|
void jctbSignal::ToggledSignalClock(Int_t b){
|
||||||
|
Emit("ToggledSignalClock(Int_t)", id);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
void jctbSignal::ToggledSignalPlot(Int_t b){
|
||||||
|
Emit("ToggledSignalPlot(Int_t)", id);
|
||||||
|
|
||||||
|
}
|
71
JCTBGui/jctbSignal.h
Executable file
71
JCTBGui/jctbSignal.h
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#ifndef JCTBSIGNAL_H
|
||||||
|
#define JCTBSIGNAL_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TGTextEntry;
|
||||||
|
class TGLabel;
|
||||||
|
class TGNumberEntry;
|
||||||
|
class TGCheckButton;
|
||||||
|
class TH1I;
|
||||||
|
class TGTextButton;
|
||||||
|
class TGColorSelect;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class multiSlsDetector;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbSignal : public TGHorizontalFrame {
|
||||||
|
|
||||||
|
// RQ_OBJECT("jctbSignal")
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
TGLabel *sLabel;
|
||||||
|
TGCheckButton *sOutput;
|
||||||
|
TGCheckButton *sClock;
|
||||||
|
TGCheckButton *sPlot;
|
||||||
|
TGLabel *sValue;
|
||||||
|
TGNumberEntry *sEntry;
|
||||||
|
TGColorSelect *fColorSel;
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
Int_t id;
|
||||||
|
|
||||||
|
TH1I *hsig;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
jctbSignal(TGFrame *page, int i, multiSlsDetector *det);
|
||||||
|
int setSignalAlias(char *tit, int plot, int col);
|
||||||
|
string getSignalAlias();
|
||||||
|
|
||||||
|
TH1I *getPlot() {return hsig;};
|
||||||
|
int setOutput(Long64_t);
|
||||||
|
int setClock(Long64_t);
|
||||||
|
|
||||||
|
void ToggledOutput(Bool_t);
|
||||||
|
void ToggledClock(Bool_t);
|
||||||
|
void ToggledPlot(Bool_t);
|
||||||
|
|
||||||
|
int isClock();
|
||||||
|
int isOutput();
|
||||||
|
int isPlot();
|
||||||
|
|
||||||
|
|
||||||
|
void ToggledSignalOutput(Int_t); //*SIGNAL*
|
||||||
|
void ToggledSignalClock(Int_t); //*SIGNAL*
|
||||||
|
void ToggledSignalPlot(Int_t); //*SIGNAL*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ClassDef(jctbSignal,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
257
JCTBGui/jctbSignals.cpp
Executable file
257
JCTBGui/jctbSignals.cpp
Executable file
@ -0,0 +1,257 @@
|
|||||||
|
#include <TApplication.h>
|
||||||
|
#include <TGClient.h>
|
||||||
|
#include <TCanvas.h>
|
||||||
|
#include <TF1.h>
|
||||||
|
#include <TRandom.h>
|
||||||
|
#include <TGButton.h>
|
||||||
|
#include <TRootEmbeddedCanvas.h>
|
||||||
|
#include <TGButtonGroup.h>
|
||||||
|
#include <TGNumberEntry.h>
|
||||||
|
#include <TGLabel.h>
|
||||||
|
#include <TList.h>
|
||||||
|
#include <TGFileDialog.h>
|
||||||
|
#include <TGComboBox.h>
|
||||||
|
#include <TH2F.h>
|
||||||
|
#include <TColor.h>
|
||||||
|
#include <TH1F.h>
|
||||||
|
#include <TGraphErrors.h>
|
||||||
|
#include <THStack.h>
|
||||||
|
#include <TGTab.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "jctbSignals.h"
|
||||||
|
#include "jctbSignal.h"
|
||||||
|
#include "multiSlsDetector.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define DEFAULTFN "run_0.encal"
|
||||||
|
|
||||||
|
|
||||||
|
jctbSignals::jctbSignals(TGVerticalFrame *page, multiSlsDetector *det)
|
||||||
|
: TGGroupFrame(page,"IO Signals",kVerticalFrame), myDet(det) {
|
||||||
|
|
||||||
|
|
||||||
|
SetTitlePos(TGGroupFrame::kLeft);
|
||||||
|
page->AddFrame(this,new TGLayoutHints( kLHintsTop | kLHintsExpandX , 10,10,10,10));
|
||||||
|
MapWindow();
|
||||||
|
|
||||||
|
cout << "window mapped " << endl;
|
||||||
|
|
||||||
|
TGHorizontalFrame *hframe;
|
||||||
|
char tit[100];
|
||||||
|
|
||||||
|
TGHorizontalFrame* hhframe=new TGHorizontalFrame(this, 800,800);
|
||||||
|
AddFrame(hhframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hhframe->MapWindow();
|
||||||
|
|
||||||
|
TGVerticalFrame *vframe;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int idac=0;
|
||||||
|
for (idac=0; idac<NIOSIGNALS; idac++) {
|
||||||
|
if (idac%27==0) {
|
||||||
|
|
||||||
|
|
||||||
|
vframe=new TGVerticalFrame(hhframe, 400,800);
|
||||||
|
hhframe->AddFrame(vframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
vframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
signals[idac]=new jctbSignal(vframe,idac,myDet);
|
||||||
|
signals[idac]->Connect(" ToggledSignalOutput(Int_t)","jctbSignals",this,"ToggledOutReg(Int_t)");
|
||||||
|
signals[idac]->Connect(" ToggledSignalClock(Int_t)","jctbSignals",this,"ToggledClockReg(Int_t)");
|
||||||
|
signals[idac]->Connect(" ToggledSignalPlot(Int_t)","jctbSignals",this,"ToggledPlot(Int_t)");
|
||||||
|
|
||||||
|
vframe->AddFrame(signals[idac],new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
signals[idac]->MapWindow();
|
||||||
|
|
||||||
|
}
|
||||||
|
idac=63;
|
||||||
|
signals[idac]=new jctbSignal(vframe,idac,myDet);
|
||||||
|
vframe->AddFrame(signals[idac],new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
signals[idac]->MapWindow();
|
||||||
|
sprintf(tit,"ADC Latch");
|
||||||
|
|
||||||
|
signals[idac]->setSignalAlias(tit,-1,-1);
|
||||||
|
|
||||||
|
signals[idac]->Connect(" ToggledSignalOutput(Int_t)","jctbSignals",this,"ToggledOutReg(Int_t)");
|
||||||
|
signals[idac]->Connect(" ToggledSignalClock(Int_t)","jctbSignals",this,"ToggledClockReg(Int_t)");
|
||||||
|
signals[idac]->Connect(" ToggledSignalPlot(Int_t)","jctbSignals",this,"ToggledPlot(Int_t)");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(vframe, 800,50);
|
||||||
|
vframe->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
TGLabel *label= new TGLabel(hframe, "IO Control Register");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
eIOCntrlRegister = new TGNumberEntry(hframe, 0, 16,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
|
||||||
|
hframe->AddFrame(eIOCntrlRegister,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eIOCntrlRegister->MapWindow();
|
||||||
|
eIOCntrlRegister->Resize(150,30);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hframe=new TGHorizontalFrame(vframe, 800,50);
|
||||||
|
vframe->AddFrame(hframe,new TGLayoutHints(kLHintsTop | kLHintsExpandX , 1,1,1,1));
|
||||||
|
hframe->MapWindow();
|
||||||
|
|
||||||
|
|
||||||
|
label= new TGLabel(hframe, "Clock Control Register");
|
||||||
|
hframe->AddFrame(label,new TGLayoutHints(kLHintsTop | kLHintsLeft| kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
label->MapWindow();
|
||||||
|
label->SetTextJustify(kTextLeft);
|
||||||
|
|
||||||
|
|
||||||
|
eClkCntrlRegister = new TGNumberEntry(hframe, 0, 16,999, TGNumberFormat::kNESHex,
|
||||||
|
TGNumberFormat::kNEANonNegative,
|
||||||
|
TGNumberFormat::kNELNoLimits);
|
||||||
|
|
||||||
|
hframe->AddFrame(eClkCntrlRegister,new TGLayoutHints(kLHintsTop | kLHintsExpandX, 1, 1, 1, 1));
|
||||||
|
eClkCntrlRegister->MapWindow();
|
||||||
|
eClkCntrlRegister->Resize(150,30);
|
||||||
|
|
||||||
|
eIOCntrlRegister->SetState(kFALSE);
|
||||||
|
eClkCntrlRegister->SetState(kFALSE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int jctbSignals::setSignalAlias(string line) {
|
||||||
|
|
||||||
|
int is=-1, plot=0, col=-1;
|
||||||
|
char tit[100];
|
||||||
|
int narg=sscanf(line.c_str(),"BIT%d %s %d %d",&is,tit,&plot,&col);
|
||||||
|
if (narg<2)
|
||||||
|
return -1;
|
||||||
|
if (is>=0 && is<NIOSIGNALS) {
|
||||||
|
signals[is]->setSignalAlias(tit,plot,col);
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
string jctbSignals::getSignalAlias() {
|
||||||
|
|
||||||
|
ostringstream oss;
|
||||||
|
for (int is=0; is<NIOSIGNALS; is++)
|
||||||
|
oss << signals[is]->getSignalAlias() << endl;
|
||||||
|
|
||||||
|
|
||||||
|
return oss.str();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void jctbSignals::update() {
|
||||||
|
Long64_t oreg=myDet->setCTBWord(-1,-1);
|
||||||
|
Long64_t creg=myDet->setCTBWord(-2,-1);
|
||||||
|
|
||||||
|
|
||||||
|
char val[1000];
|
||||||
|
cout << hex << oreg << dec << endl;
|
||||||
|
cout << hex << creg << dec << endl;
|
||||||
|
|
||||||
|
sprintf(val,"%llX",oreg);
|
||||||
|
// eIOCntrlRegister->SetHexNumber(oreg);
|
||||||
|
eIOCntrlRegister->SetText(val);
|
||||||
|
sprintf(val,"%llX",creg);
|
||||||
|
// eClkCntrlRegister->SetHexNumber(creg);
|
||||||
|
eClkCntrlRegister->SetText(val);
|
||||||
|
|
||||||
|
for (int idac=0; idac<NIOSIGNALS; idac++) {
|
||||||
|
signals[idac]->setOutput(oreg);
|
||||||
|
signals[idac]->setClock(creg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void jctbSignals::ToggledOutReg(Int_t mask) {
|
||||||
|
|
||||||
|
char val[1000];
|
||||||
|
Long64_t oreg=myDet->setCTBWord(-1,-1);
|
||||||
|
Long64_t m=((Long64_t)1)<<mask;
|
||||||
|
|
||||||
|
|
||||||
|
if (signals[mask]->isOutput())
|
||||||
|
oreg|=m;
|
||||||
|
else
|
||||||
|
oreg&=~m;
|
||||||
|
|
||||||
|
cout << dec << sizeof(Long64_t) << " " << mask << " " << hex << m << " ioreg " << oreg << endl;
|
||||||
|
|
||||||
|
myDet->setCTBWord(-1,oreg);
|
||||||
|
oreg=myDet->setCTBWord(-1,-1);
|
||||||
|
|
||||||
|
cout << dec << sizeof(Long64_t) << " " << mask << " " << hex << m << " ioreg " << oreg << endl;
|
||||||
|
|
||||||
|
sprintf(val,"%llX",oreg);
|
||||||
|
// eIOCntrlRegister->SetHexNumber(oreg);
|
||||||
|
eIOCntrlRegister->SetText(val);
|
||||||
|
// eIOCntrlRegister->SetNumber(oreg);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbSignals::ToggledClockReg(Int_t mask){
|
||||||
|
|
||||||
|
char val[1000];
|
||||||
|
Long64_t oreg=myDet->setCTBWord(-2,-1);
|
||||||
|
Long64_t m=((Long64_t)1)<<mask;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (signals[mask]->isClock())
|
||||||
|
oreg|=m;
|
||||||
|
else
|
||||||
|
oreg&=~m;
|
||||||
|
|
||||||
|
cout << hex << "clkreg " << oreg << endl;
|
||||||
|
|
||||||
|
myDet->setCTBWord(-2,oreg);
|
||||||
|
oreg=myDet->setCTBWord(-2,-1);
|
||||||
|
sprintf(val,"%llX",oreg);
|
||||||
|
// eIOCntrlRegister->SetHexNumber(oreg);
|
||||||
|
|
||||||
|
eClkCntrlRegister->SetText(val);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void jctbSignals::ToggledPlot(Int_t mask) {
|
||||||
|
|
||||||
|
if (signals[mask]->isPlot())
|
||||||
|
cout << "plot signal " << mask << endl;
|
||||||
|
else
|
||||||
|
cout << "unplot signal " << mask << endl;
|
||||||
|
|
||||||
|
}
|
44
JCTBGui/jctbSignals.h
Executable file
44
JCTBGui/jctbSignals.h
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#ifndef JCTBSIGNALS_H
|
||||||
|
#define JCTBSIGNALS_H
|
||||||
|
#include <TGFrame.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NSIGNALS 64
|
||||||
|
#define NIOSIGNALS 52
|
||||||
|
#define ADCLATCH 63
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TGNumberEntry;
|
||||||
|
class multiSlsDetector;
|
||||||
|
class jctbSignal;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class jctbSignals : public TGGroupFrame {
|
||||||
|
private:
|
||||||
|
|
||||||
|
jctbSignal *signals[NSIGNALS];
|
||||||
|
|
||||||
|
TGNumberEntry *eIOCntrlRegister;
|
||||||
|
TGNumberEntry *eClkCntrlRegister;
|
||||||
|
|
||||||
|
multiSlsDetector *myDet;
|
||||||
|
|
||||||
|
public:
|
||||||
|
jctbSignals(TGVerticalFrame *page, multiSlsDetector *det);
|
||||||
|
int setSignalAlias(string line);
|
||||||
|
string getSignalAlias();
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
|
||||||
|
void ToggledOutReg(Int_t);
|
||||||
|
void ToggledClockReg(Int_t);
|
||||||
|
void ToggledPlot(Int_t);
|
||||||
|
ClassDef(jctbSignals,0)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
88
Makefile
88
Makefile
@ -5,10 +5,9 @@ include Makefile.include
|
|||||||
|
|
||||||
INSTALLROOT ?= $(PWD)
|
INSTALLROOT ?= $(PWD)
|
||||||
BINDIR ?= $(INSTALLROOT)/bin
|
BINDIR ?= $(INSTALLROOT)/bin
|
||||||
DOCDIR ?= $(INSTALLROOT)/manual/docs
|
DOCDIR ?= $(INSTALLROOT)/docs
|
||||||
LIBDIR ?= $(INSTALLROOT)/bin
|
LIBDIR ?= $(INSTALLROOT)/bin
|
||||||
INCDIR ?= $(INSTALLROOT)/include
|
INCDIR ?= $(INSTALLROOT)/include
|
||||||
DETAILDOC ?= $(INSTALLROOT)/docs
|
|
||||||
|
|
||||||
WD = $(shell pwd)
|
WD = $(shell pwd)
|
||||||
LIBRARYDIR = $(WD)/slsDetectorSoftware
|
LIBRARYDIR = $(WD)/slsDetectorSoftware
|
||||||
@ -20,8 +19,6 @@ CALWIZDIR = $(WD)/calibrationWizards
|
|||||||
MANDIR = $(WD)/manual
|
MANDIR = $(WD)/manual
|
||||||
CALIBDIR = $(WD)/slsDetectorCalibration
|
CALIBDIR = $(WD)/slsDetectorCalibration
|
||||||
|
|
||||||
TABSPACE := "\t"
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDES=-I. -I$(LIBRARYDIR)/commonFiles -I$(LIBRARYDIR)/slsDetector -I$(LIBRARYDIR)/usersFunctions -I$(LIBRARYDIR)/multiSlsDetector -I$(LIBRARYDIR)/slsDetectorUtils -I$(LIBRARYDIR)/slsDetectorCommand -I$(LIBRARYDIR)/slsDetectorAnalysis -I$(LIBRARYDIR)/slsReceiverInterface -I$(LIBRARYRXRDIR)/include -I$(LIBRARYDIR)/threadFiles -I$(ASM)
|
INCLUDES=-I. -I$(LIBRARYDIR)/commonFiles -I$(LIBRARYDIR)/slsDetector -I$(LIBRARYDIR)/usersFunctions -I$(LIBRARYDIR)/multiSlsDetector -I$(LIBRARYDIR)/slsDetectorUtils -I$(LIBRARYDIR)/slsDetectorCommand -I$(LIBRARYDIR)/slsDetectorAnalysis -I$(LIBRARYDIR)/slsReceiverInterface -I$(LIBRARYRXRDIR)/include -I$(LIBRARYDIR)/threadFiles -I$(ASM)
|
||||||
|
|
||||||
@ -30,15 +27,14 @@ INCLUDESRXR += -I. -I$(LIBRARYRXRDIR)/include -I$(CALIBDIR) -I$(ASM)
|
|||||||
|
|
||||||
$(info )
|
$(info )
|
||||||
$(info #######################################)
|
$(info #######################################)
|
||||||
$(info # In slsDetectorsPackage Makefile #)
|
$(info # Compiling slsDetectorsPackage #)
|
||||||
$(info #######################################)
|
$(info #######################################)
|
||||||
$(info )
|
$(info )
|
||||||
|
|
||||||
|
|
||||||
.PHONY: all nonstatic static lib libreceiver textclient receiver gui stextclient sreceiver
|
.PHONY: all nonstatic static lib libreceiver textclient receiver gui stextclient sreceiver
|
||||||
|
|
||||||
#all: lib textclient receiver gui
|
all: lib textclient receiver gui
|
||||||
all: textclient receiver gui
|
|
||||||
|
|
||||||
nonstatic: lib libreceiver textclient receiver gui
|
nonstatic: lib libreceiver textclient receiver gui
|
||||||
|
|
||||||
@ -46,60 +42,38 @@ static: lib libreceiver stextclient sreceiver gui
|
|||||||
|
|
||||||
|
|
||||||
lib:
|
lib:
|
||||||
cd $(LIBRARYDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
cd $(LIBRARYDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' INCLUDES='$(INCLUDES)'
|
||||||
|
|
||||||
libreceiver:
|
libreceiver:
|
||||||
cd $(LIBRARYRXRDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
cd $(LIBRARYRXRDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' INCLUDES='$(INCLUDESRXR)'
|
||||||
|
|
||||||
|
|
||||||
stextclient: slsDetectorClient_static
|
stextclient: slsDetectorClient_static
|
||||||
|
|
||||||
slsDetectorClient: textclient
|
slsDetectorClient: textclient
|
||||||
|
|
||||||
slsDetectorClient_static: #lib
|
slsDetectorClient_static: lib
|
||||||
cd $(CLIENTDIR) && $(MAKE) static_clients FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
cd $(CLIENTDIR) && $(MAKE) static_clients FLAGS='$(FLAGS)' LIBS='$(LDFLAGDET)' DESTDIR='$(BINDIR)' LIBDIR='$(LIBDIR)' INCLUDES='$(INCLUDES)'
|
||||||
@echo ""
|
|
||||||
@echo "#######################################"
|
textclient: lib
|
||||||
@echo "# Back in slsDetectorPackage Makefile #"
|
cd $(CLIENTDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBDIR='$(LIBDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)'
|
||||||
@echo "#######################################"
|
|
||||||
@echo ""
|
|
||||||
|
|
||||||
textclient: #lib
|
|
||||||
cd $(CLIENTDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
|
||||||
@echo ""
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo "# Back in slsDetectorPackage Makefile #"
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo ""
|
|
||||||
|
|
||||||
slsReceiver: receiver
|
slsReceiver: receiver
|
||||||
|
|
||||||
slsReceiver_static: receiver
|
slsReceiver_static: receiver
|
||||||
|
|
||||||
receiver: #libreceiver
|
receiver: libreceiver
|
||||||
# cd $(RECEIVERDIR) && $(MAKE) receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
cd $(RECEIVERDIR) && $(MAKE) receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBDIR='$(LIBDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)'
|
||||||
cd $(RECEIVERDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
|
||||||
@echo ""
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo "# Back in slsDetectorPackage Makefile #"
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo ""
|
|
||||||
|
|
||||||
sreceiver: #libreceiver
|
sreceiver: libreceiver
|
||||||
cd $(RECEIVERDIR) && $(MAKE) static_receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
cd $(RECEIVERDIR) && $(MAKE) static_receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBDIR='$(LIBDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)'
|
||||||
@echo ""
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo "# Back in slsDetectorPackage Makefile #"
|
|
||||||
@echo "#######################################"
|
slsDetectorGUI: lib
|
||||||
@echo ""
|
cd $(GUIDIR) && $(MAKE) DESTDIR='$(BINDIR)' LIBDIR='$(LIBDIR)' INCLUDES='$(INCLUDES)' LDFLAGDET='-L$(LIBDIR) -lSlsDetector'
|
||||||
|
|
||||||
slsDetectorGUI: #lib
|
|
||||||
cd $(GUIDIR) && $(MAKE) DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' INCLUDES='$(INCLUDES)' LDFLAGDET='$(LDFLAGDETONLY)' LIBDIR='$(LIBDIR)'
|
|
||||||
@echo ""
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo "# Back in slsDetectorPackage Makefile #"
|
|
||||||
@echo "#######################################"
|
|
||||||
@echo ""
|
|
||||||
|
|
||||||
calWiz:
|
calWiz:
|
||||||
cd $(CALWIZDIR) && $(MAKE) DESTDIR=$(BINDIR) #FLAGS=$(FLAGS) LDFLAGDET=$(LDFLAGDET) INCLUDES=$(INCLUDES)
|
cd $(CALWIZDIR) && $(MAKE) DESTDIR=$(BINDIR) #FLAGS=$(FLAGS) LDFLAGDET=$(LDFLAGDET) INCLUDES=$(INCLUDES)
|
||||||
@ -118,26 +92,6 @@ htmldoc:
|
|||||||
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
||||||
cd manual && make html DESTDIR=$(DOCDIR)
|
cd manual && make html DESTDIR=$(DOCDIR)
|
||||||
|
|
||||||
detaildoc: createdocs docspdf docshtml removedocs
|
|
||||||
|
|
||||||
createdocs: $(LIBRARYDIR)/doxy.config
|
|
||||||
doxygen $(LIBRARYDIR)/doxy.config
|
|
||||||
|
|
||||||
docspdf:
|
|
||||||
cd slsDetectorPackageDocs/latex && make
|
|
||||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
|
||||||
$(shell test -d $(DETAILDOC)/pdf || mkdir -p $(DETAILDOC)/pdf)
|
|
||||||
mv slsDetectorPackageDocs/latex/refman.pdf $(DETAILDOC)/pdf/slsDetectorPackageDocs.pdf
|
|
||||||
|
|
||||||
docshtml:
|
|
||||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
|
||||||
$(shell test -d $(DETAILDOC)/html || mkdir -p $(DETAILDOC)/html)
|
|
||||||
$(shell test -d $(DETAILDOC)/html/slsDetectorPackageDocs && rm -r $(DETAILDOC)/html/slsDetectorPackageDocs)
|
|
||||||
mv slsDetectorPackageDocs/html $(DETAILDOC)/html/slsDetectorPackageDocs
|
|
||||||
|
|
||||||
removedocs:
|
|
||||||
rm -rf slsDetectorPackageDocs;
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cd $(BINDIR) && rm -rf sls_detector_* slsDetectorGui slsReceiver angularCalibrationWizard energyCalibrationWizard
|
cd $(BINDIR) && rm -rf sls_detector_* slsDetectorGui slsReceiver angularCalibrationWizard energyCalibrationWizard
|
||||||
@ -149,8 +103,7 @@ clean:
|
|||||||
cd $(CALWIZDIR) && $(MAKE) clean
|
cd $(CALWIZDIR) && $(MAKE) clean
|
||||||
cd manual && $(MAKE) clean
|
cd manual && $(MAKE) clean
|
||||||
cd $(DOCDIR) && rm -rf *
|
cd $(DOCDIR) && rm -rf *
|
||||||
rm -rf slsDetectorPackageDocs;
|
|
||||||
rm -rf $(DETAILDOC)
|
|
||||||
|
|
||||||
|
|
||||||
#install_lib:
|
#install_lib:
|
||||||
@ -221,6 +174,7 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Makefile variables"
|
@echo "Makefile variables"
|
||||||
|
@echo "REST=yes compile REST-aware Receiver (POCO and JsonBox libraries required)"
|
||||||
@echo "DEBUG=1,2 set debug level to 1 (VERBOSE) or 2 (VERYVERBOSE)"
|
@echo "DEBUG=1,2 set debug level to 1 (VERBOSE) or 2 (VERYVERBOSE)"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo ""
|
@echo ""
|
||||||
|
@ -5,10 +5,9 @@
|
|||||||
CC = g++
|
CC = g++
|
||||||
CXX = $(CC)
|
CXX = $(CC)
|
||||||
ASM=$(shell echo "/lib/modules/`uname -r`/build/include")
|
ASM=$(shell echo "/lib/modules/`uname -r`/build/include")
|
||||||
LDFLAGDETONLY = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector
|
LDFLAGDET = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector -L/usr/lib64/ -lpthread
|
||||||
LDFLAGDET = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread
|
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -lpthread
|
||||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread
|
FLAGS= -Wall #-DEIGER_DEBUG2 -DEIGER_DEBUG -DEIGER_DEBUG3 #-DFIFO_DEBUG
|
||||||
FLAGS= -Wall -pthread #-DEIGER_DEBUG2
|
|
||||||
# -DVERBOSE
|
# -DVERBOSE
|
||||||
|
|
||||||
# Setting up the verbose flags
|
# Setting up the verbose flags
|
||||||
@ -20,16 +19,25 @@ ifeq ($(DEBUG),2)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
# HDF5 specific. Set this to yes, if you want to compile
|
# EigerSLS specific. Set this to yes, if you want to compile
|
||||||
# HDF5 code: in this case, you need HDF5 libraries
|
# EigerSLS code: in this case, you need also POCO and JsonBox
|
||||||
|
# libraries
|
||||||
##############################################################
|
##############################################################
|
||||||
|
|
||||||
HDF5 = no
|
REST = no
|
||||||
HDF5_DIR = /opt/hdf5v1.10.0
|
|
||||||
|
|
||||||
ifeq ($(HDF5),yes)
|
#POCODIR = /afs/psi.ch/user/s/sala/public/poco-slp_5.7-32bit
|
||||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L$(HDF5_DIR)/lib -Wl,-rpath=$(HDF5_DIR)/lib -lhdf5 -lhdf5_cpp -lsz -lz -DHDF5C -L/usr/lib64/ -pthread
|
#JSONBOXDIR = /afs/psi.ch/user/s/sala/public/JsonBox-slp_5.7-32bit
|
||||||
INCLUDESRXR = -I$(HDF5_DIR)/include
|
POCODIR = /afs/psi.ch/user/s/sala/public/poco-slp_6.4-64bit
|
||||||
|
JSONBOXDIR = /afs/psi.ch/user/s/sala/public/JsonBox-slp_6.4-64bit
|
||||||
|
#POCODIR = /home/sala/Programs/poco-ubuntu_13.10-64bit
|
||||||
|
#JSONBOXDIR = /home/sala/Programs/JsonBox-ubuntu_13.10-64bit
|
||||||
|
|
||||||
|
RESTFLAGS = -L$(POCODIR)/lib -Wl,-rpath=$(POCODIR)/lib -L$(JSONBOXDIR) -Wl,-rpath=$(JSONBOXDIR)/lib -lPocoNet -lPocoFoundation -lJsonBox
|
||||||
|
|
||||||
|
ifeq ($(REST),yes)
|
||||||
|
LDFLAGRXR = -L$(LIBDIR) -lSlsReceiver $(RESTFLAGS) -DREST
|
||||||
|
INCLUDESRXR = $(EIGERFLAGS) -I$(POCODIR)/include -I$(JSONBOXDIR)/include
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@ -47,11 +55,6 @@ ifeq ($(ROOTSLS),yes)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
define colorecho
|
|
||||||
@tput setaf 6
|
|
||||||
@echo $1
|
|
||||||
@tput sgr0
|
|
||||||
endef
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
90
README.md
90
README.md
@ -1,90 +0,0 @@
|
|||||||
### Documentation
|
|
||||||
Detailed documentation can be found on the [official site.](https://www.psi.ch/detectors/users-support)
|
|
||||||
|
|
||||||
### Binaries
|
|
||||||
Documentation to obtain the binaries via the conda package is available [here.](https://github.com/slsdetectorgroup/sls_detector_software)
|
|
||||||
|
|
||||||
### Source code
|
|
||||||
One can also obtain the source code from this repository and compile while realizing the setup dependencies as required.
|
|
||||||
```
|
|
||||||
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git
|
|
||||||
|
|
||||||
```
|
|
||||||
#### Setup dependencies
|
|
||||||
* Gui Client <br>
|
|
||||||
Requirements: Qt 4.8 and Qwt 6.0
|
|
||||||
```
|
|
||||||
export QTDIR=/usr/local/Trolltech/
|
|
||||||
export QWTDIR=/usr/local/qwt-6.0.1/
|
|
||||||
```
|
|
||||||
If either of them does not exist, the GUI client will not be built.
|
|
||||||
|
|
||||||
* Calibration wizards<br>
|
|
||||||
Requirements: ROOT
|
|
||||||
```
|
|
||||||
export ROOTSYS=/usr/local/root-5.34
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Compilation
|
|
||||||
|
|
||||||
Compiling can be done in two ways.
|
|
||||||
|
|
||||||
**1. Compile using script cmk.sh**<br>
|
|
||||||
|
|
||||||
After compiling, the libraries and executables will be found in `slsDetectorPackage/build/bin` directory<br>
|
|
||||||
|
|
||||||
Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]<br>
|
|
||||||
* -[no option]: only make<br>
|
|
||||||
* -c: Clean<br>
|
|
||||||
* -b: Builds/Rebuilds CMake files normal mode<br>
|
|
||||||
* -h: Builds/Rebuilds Cmake files with HDF5 package<br>
|
|
||||||
* -d: HDF5 Custom Directory<br>
|
|
||||||
* -t: Build/Rebuilds only text client<br>
|
|
||||||
* -r: Build/Rebuilds only receiver<br>
|
|
||||||
* -g: Build/Rebuilds only gui<br>
|
|
||||||
* -j: Number of threads to compile through<br>
|
|
||||||
|
|
||||||
Basic Option:
|
|
||||||
./cmk.sh -b
|
|
||||||
|
|
||||||
For only make:
|
|
||||||
./cmk.sh
|
|
||||||
|
|
||||||
For make clean;make:
|
|
||||||
./cmk.sh -c
|
|
||||||
|
|
||||||
For using hdf5 without custom dir /blabla:
|
|
||||||
./cmk.sh -h -d /blabla
|
|
||||||
|
|
||||||
For rebuilding cmake without hdf5
|
|
||||||
./cmk.sh -b
|
|
||||||
|
|
||||||
For using multiple cores to compile faster:
|
|
||||||
./cmk.sh -j9<br>
|
|
||||||
|
|
||||||
|
|
||||||
For rebuilding only certain sections<br>
|
|
||||||
./cmk.sh -tg #only text client and gui<br>
|
|
||||||
./cmk.sh -r #only receiver<br>
|
|
||||||
|
|
||||||
|
|
||||||
**2. Compile without script**<br>
|
|
||||||
Use cmake to create out-of-source builds, by creating a build folder parallel to source directory.
|
|
||||||
```
|
|
||||||
$ cd ..
|
|
||||||
$ mkdir slsDetectorPackage-build
|
|
||||||
$ cd slsDetectorPackage-build
|
|
||||||
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=OFF
|
|
||||||
$ make
|
|
||||||
```
|
|
||||||
|
|
||||||
Use the following as an example to compile statically and using specific hdf5 folder
|
|
||||||
```
|
|
||||||
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=ON
|
|
||||||
```
|
|
||||||
After compiling, the libraries and executables will be found at `bin` directory
|
|
||||||
```
|
|
||||||
$ ls bin/
|
|
||||||
gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a libSlsReceiver.so
|
|
||||||
sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver
|
|
||||||
```
|
|
113
RELEASE.txt
113
RELEASE.txt
@ -1,113 +0,0 @@
|
|||||||
SLS Detector Package 3.1.1 released on 2018-03-12
|
|
||||||
=================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTRODUCTION
|
|
||||||
|
|
||||||
This document describes the differences between 3.1.0 and 3.1.0 releases.
|
|
||||||
|
|
||||||
The conda package of the binaries can be downloaded from
|
|
||||||
|
|
||||||
https://github.com/slsdetectorgroup/sls_detector_software.git
|
|
||||||
|
|
||||||
The Python interface to the software package (including the package) is at
|
|
||||||
|
|
||||||
https://github.com/slsdetectorgroup/sls_detector.git
|
|
||||||
|
|
||||||
Manual (both HTML and pdf versions) are provided in
|
|
||||||
manual/docs/
|
|
||||||
|
|
||||||
Documentation from Source Code can be found for the Command Line and for the API in
|
|
||||||
html:
|
|
||||||
manual/docs/html/slsDetectorClientDocs/index.html
|
|
||||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
|
||||||
pdf:
|
|
||||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
|
||||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
|
||||||
|
|
||||||
Example including binaries for detector and receiver user classes can be found in
|
|
||||||
|
|
||||||
manual/manual-api
|
|
||||||
|
|
||||||
User documentation can also be accessed directly at this location:
|
|
||||||
|
|
||||||
https://www.psi.ch/detectors/users-support
|
|
||||||
|
|
||||||
If you have any software related questions or comments, please send them to:
|
|
||||||
|
|
||||||
dhanya.thattil@psi.ch
|
|
||||||
anna.bergamaschi@psi.ch
|
|
||||||
|
|
||||||
If you have any python related questions or comments, please send them to:
|
|
||||||
|
|
||||||
erik.frojdh@psi.ch
|
|
||||||
|
|
||||||
|
|
||||||
CONTENTS
|
|
||||||
|
|
||||||
- Firmware Requirements
|
|
||||||
- Changes in User Interface
|
|
||||||
- New Features
|
|
||||||
- Resolved Issues
|
|
||||||
- Known Issues
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Firmware Requirements
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Please refer to the link below for more details on the firmware versions.
|
|
||||||
https://www.psi.ch/detectors/firmware.
|
|
||||||
|
|
||||||
Gotthard
|
|
||||||
========
|
|
||||||
Minimum compatible version : 11.01.2013
|
|
||||||
Latest version : 08.02.2018 (50um and 25um Master)
|
|
||||||
09.02.2018 (25 um Slave)
|
|
||||||
|
|
||||||
-Can not be upgraded remotely.
|
|
||||||
|
|
||||||
|
|
||||||
Eiger
|
|
||||||
=====
|
|
||||||
Minimum compatible version : 16
|
|
||||||
Latest version : 20
|
|
||||||
|
|
||||||
-Can be upgraded remotely via bit files.
|
|
||||||
|
|
||||||
|
|
||||||
Jungfrau
|
|
||||||
========
|
|
||||||
Minimum compatible version : 13.11.2017
|
|
||||||
Latest version : 13.11.2017
|
|
||||||
|
|
||||||
-Can be upgraded remotely via sls_detector_put programfpga <pof>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Changes in User Interface
|
|
||||||
=========================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
New Features
|
|
||||||
============
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Resolved Issues
|
|
||||||
===============
|
|
||||||
|
|
||||||
|
|
||||||
Known Issues
|
|
||||||
============
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
15
checkout.sh
Executable file
15
checkout.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#git clone $1@git.psi.ch:sls_det_software/sls_detectors_package.git slsDetectorsPackage
|
||||||
|
|
||||||
|
#cd slsDetectorsPackage
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/sls_detector_software.git slsDetectorSoftware
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/sls_detector_gui.git slsDetectorGui
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/sls_receiver_software.git slsReceiverSoftware
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/sls_detector_calibration.git slsDetectorCalibration
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/sls_image_reconstruction.git slsImageReconstruction
|
||||||
|
|
||||||
|
git clone $1@git.psi.ch:sls_detectors_software/calibration_wizards.git calibrationWizards
|
@ -1,11 +0,0 @@
|
|||||||
FIND_PATH (CBF_INCLUDE_DIR
|
|
||||||
${CBF_DIR}/include
|
|
||||||
${CBF_DIR}/include/cbflib
|
|
||||||
)
|
|
||||||
FIND_LIBRARY (CBF_LIBRARY
|
|
||||||
NAMES cbf
|
|
||||||
HINTS ${CBF_DIR}/lib
|
|
||||||
)
|
|
||||||
INCLUDE ( FindPackageHandleStandardArgs )
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS (CBF DEFAULT_MSG CBF_LIBRARY CBF_INCLUDE_DIR )
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
|||||||
# Qt Widgets for Technical Applications
|
|
||||||
# available at http://www.http://qwt.sourceforge.net/
|
|
||||||
#
|
|
||||||
# The module defines the following variables:
|
|
||||||
# QWT_FOUND - the system has Qwt
|
|
||||||
# QWT_INCLUDE_DIR - where to find qwt_plot.h
|
|
||||||
# QWT_INCLUDE_DIRS - qwt includes
|
|
||||||
# QWT_LIBRARY - where to find the Qwt library
|
|
||||||
# QWT_LIBRARIES - aditional libraries
|
|
||||||
# QWT_MAJOR_VERSION - major version
|
|
||||||
# QWT_MINOR_VERSION - minor version
|
|
||||||
# QWT_PATCH_VERSION - patch version
|
|
||||||
# QWT_VERSION_STRING - version (ex. 5.2.1)
|
|
||||||
# QWT_ROOT_DIR - root dir (ex. /usr/local)
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2010-2013, Julien Schueller
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
# list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
# this list of conditions and the following disclaimer in the documentation
|
|
||||||
# and/or other materials provided with the distribution.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
# The views and conclusions contained in the software and documentation are those
|
|
||||||
# of the authors and should not be interpreted as representing official policies,
|
|
||||||
# either expressed or implied, of the FreeBSD Project.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
|
|
||||||
find_path ( QWT_INCLUDE_DIR
|
|
||||||
NAMES qwt_plot.h
|
|
||||||
HINTS $ENV{QWTDIR} $ENV{QWTDIR}/src ${QT_INCLUDE_DIR}
|
|
||||||
PATH_SUFFIXES qwt qwt-qt3 qwt-qt4 qwt-qt5
|
|
||||||
)
|
|
||||||
|
|
||||||
set ( QWT_INCLUDE_DIRS ${QWT_INCLUDE_DIR} )
|
|
||||||
|
|
||||||
# version
|
|
||||||
set ( _VERSION_FILE ${QWT_INCLUDE_DIR}/qwt_global.h )
|
|
||||||
if ( EXISTS ${_VERSION_FILE} )
|
|
||||||
file ( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+QWT_VERSION_STR" )
|
|
||||||
if ( _VERSION_LINE )
|
|
||||||
string ( REGEX REPLACE ".*define[ ]+QWT_VERSION_STR[ ]+\"(.*)\".*" "\\1" QWT_VERSION_STRING "${_VERSION_LINE}" )
|
|
||||||
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" QWT_MAJOR_VERSION "${QWT_VERSION_STRING}" )
|
|
||||||
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" QWT_MINOR_VERSION "${QWT_VERSION_STRING}" )
|
|
||||||
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" QWT_PATCH_VERSION "${QWT_VERSION_STRING}" )
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
# check version
|
|
||||||
set ( _QWT_VERSION_MATCH TRUE )
|
|
||||||
if ( Qwt_FIND_VERSION AND QWT_VERSION_STRING )
|
|
||||||
if ( Qwt_FIND_VERSION_EXACT )
|
|
||||||
if ( NOT Qwt_FIND_VERSION VERSION_EQUAL QWT_VERSION_STRING )
|
|
||||||
set ( _QWT_VERSION_MATCH FALSE )
|
|
||||||
endif ()
|
|
||||||
else ()
|
|
||||||
if ( QWT_VERSION_STRING VERSION_LESS Qwt_FIND_VERSION )
|
|
||||||
set ( _QWT_VERSION_MATCH FALSE )
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
find_library ( QWT_LIBRARY
|
|
||||||
NAMES qwt qwt-qt3 qwt-qt4 qwt-qt5
|
|
||||||
HINTS $ENV{QWTDIR}/lib ${QT_LIBRARY_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
set ( QWT_LIBRARIES ${QWT_LIBRARY} )
|
|
||||||
|
|
||||||
|
|
||||||
# try to guess root dir from include dir
|
|
||||||
if ( QWT_INCLUDE_DIR )
|
|
||||||
string ( REGEX REPLACE "(.*)/include.*" "\\1" QWT_ROOT_DIR ${QWT_INCLUDE_DIR} )
|
|
||||||
# try to guess root dir from library dir
|
|
||||||
elseif ( QWT_LIBRARY )
|
|
||||||
string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" QWT_ROOT_DIR ${QWT_LIBRARY} )
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments
|
|
||||||
include ( FindPackageHandleStandardArgs )
|
|
||||||
if ( CMAKE_VERSION LESS 2.8.3 )
|
|
||||||
find_package_handle_standard_args( Qwt DEFAULT_MSG QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH )
|
|
||||||
else ()
|
|
||||||
find_package_handle_standard_args( Qwt REQUIRED_VARS QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH VERSION_VAR QWT_VERSION_STRING )
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
|
|
||||||
mark_as_advanced (
|
|
||||||
QWT_LIBRARY
|
|
||||||
QWT_LIBRARIES
|
|
||||||
QWT_INCLUDE_DIR
|
|
||||||
QWT_INCLUDE_DIRS
|
|
||||||
QWT_MAJOR_VERSION
|
|
||||||
QWT_MINOR_VERSION
|
|
||||||
QWT_PATCH_VERSION
|
|
||||||
QWT_VERSION_STRING
|
|
||||||
QWT_ROOT_DIR
|
|
||||||
)
|
|
@ -1,167 +0,0 @@
|
|||||||
# - Finds ROOT instalation
|
|
||||||
# This module sets up ROOT information
|
|
||||||
# It defines:
|
|
||||||
# ROOT_FOUND If the ROOT is found
|
|
||||||
# ROOT_INCLUDE_DIR PATH to the include directory
|
|
||||||
# ROOT_LIBRARIES Most common libraries
|
|
||||||
# ROOT_GUI_LIBRARIES Most common libraries + GUI
|
|
||||||
# ROOT_LIBRARY_DIR PATH to the library directory
|
|
||||||
|
|
||||||
|
|
||||||
find_program(ROOT_CONFIG_EXECUTABLE root-config
|
|
||||||
PATHS $ENV{ROOTSYS}/bin)
|
|
||||||
|
|
||||||
if(NOT ROOT_CONFIG_EXECUTABLE)
|
|
||||||
set(ROOT_FOUND FALSE)
|
|
||||||
else()
|
|
||||||
set(ROOT_FOUND TRUE)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix
|
|
||||||
OUTPUT_VARIABLE ROOTSYS
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --version
|
|
||||||
OUTPUT_VARIABLE ROOT_VERSION
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir
|
|
||||||
OUTPUT_VARIABLE ROOT_INCLUDE_DIR
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs
|
|
||||||
OUTPUT_VARIABLE ROOT_LIBRARIES
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --glibs
|
|
||||||
OUTPUT_VARIABLE ROOT_GUI_LIBRARIES
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lThread -lMinuit -lHtml -lVMC -lEG -lGeom -lTreePlayer -lXMLIO -lProof)
|
|
||||||
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lProofPlayer -lMLP -lSpectrum -lEve -lRGL -lGed -lXMLParser -lPhysics)
|
|
||||||
set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib)
|
|
||||||
|
|
||||||
# Make variables changeble to the advanced user
|
|
||||||
mark_as_advanced(ROOT_CONFIG_EXECUTABLE)
|
|
||||||
|
|
||||||
if(NOT ROOT_FIND_QUIETLY)
|
|
||||||
message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
include(CMakeParseArguments)
|
|
||||||
find_program(ROOTCINT_EXECUTABLE rootcint PATHS $ENV{ROOTSYS}/bin)
|
|
||||||
find_program(GENREFLEX_EXECUTABLE genreflex PATHS $ENV{ROOTSYS}/bin)
|
|
||||||
find_package(GCCXML)
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# function ROOT_GENERATE_DICTIONARY( dictionary
|
|
||||||
# header1 header2 ...
|
|
||||||
# LINKDEF linkdef1 ...
|
|
||||||
# OPTIONS opt1...)
|
|
||||||
function(ROOT_GENERATE_DICTIONARY dictionary)
|
|
||||||
CMAKE_PARSE_ARGUMENTS(ARG "" "" "LINKDEF;OPTIONS" "" ${ARGN})
|
|
||||||
#---Get the list of header files-------------------------
|
|
||||||
set(headerfiles)
|
|
||||||
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
|
|
||||||
file(GLOB files ${fp})
|
|
||||||
if(files)
|
|
||||||
foreach(f ${files})
|
|
||||||
if(NOT f MATCHES LinkDef)
|
|
||||||
set(headerfiles ${headerfiles} ${f})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
else()
|
|
||||||
set(headerfiles ${headerfiles} ${fp})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
#---Get the list of include directories------------------
|
|
||||||
get_directory_property(incdirs INCLUDE_DIRECTORIES)
|
|
||||||
set(includedirs)
|
|
||||||
foreach( d ${incdirs})
|
|
||||||
set(includedirs ${includedirs} -I${d})
|
|
||||||
endforeach()
|
|
||||||
#---Get LinkDef.h file------------------------------------
|
|
||||||
set(linkdefs)
|
|
||||||
foreach( f ${ARG_LINKDEF})
|
|
||||||
if( IS_ABSOLUTE ${f})
|
|
||||||
set(linkdefs ${linkdefs} ${f})
|
|
||||||
else()
|
|
||||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
|
|
||||||
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
|
|
||||||
else()
|
|
||||||
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/${f})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
#---call rootcint------------------------------------------
|
|
||||||
add_custom_command(OUTPUT ${dictionary}.cxx ${dictionary}.h
|
|
||||||
COMMAND ${ROOTCINT_EXECUTABLE} -cint -f ${dictionary}.cxx
|
|
||||||
-c ${ARG_OPTIONS} ${includedirs} ${headerfiles} ${linkdefs}
|
|
||||||
DEPENDS ${headerfiles} ${linkdefs})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
# function REFLEX_GENERATE_DICTIONARY(dictionary
|
|
||||||
# header1 header2 ...
|
|
||||||
# SELECTION selectionfile ...
|
|
||||||
# OPTIONS opt1...)
|
|
||||||
function(REFLEX_GENERATE_DICTIONARY dictionary)
|
|
||||||
CMAKE_PARSE_ARGUMENTS(ARG "" "" "SELECTION;OPTIONS" "" ${ARGN})
|
|
||||||
#---Get the list of header files-------------------------
|
|
||||||
set(headerfiles)
|
|
||||||
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
|
|
||||||
file(GLOB files ${fp})
|
|
||||||
if(files)
|
|
||||||
foreach(f ${files})
|
|
||||||
set(headerfiles ${headerfiles} ${f})
|
|
||||||
endforeach()
|
|
||||||
else()
|
|
||||||
set(headerfiles ${headerfiles} ${fp})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
#---Get Selection file------------------------------------
|
|
||||||
if(IS_ABSOLUTE ${ARG_SELECTION})
|
|
||||||
set(selectionfile ${ARG_SELECTION})
|
|
||||||
else()
|
|
||||||
set(selectionfile ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_SELECTION})
|
|
||||||
endif()
|
|
||||||
#---Get the list of include directories------------------
|
|
||||||
get_directory_property(incdirs INCLUDE_DIRECTORIES)
|
|
||||||
set(includedirs)
|
|
||||||
foreach( d ${incdirs})
|
|
||||||
set(includedirs ${includedirs} -I${d})
|
|
||||||
endforeach()
|
|
||||||
#---Get preprocessor definitions--------------------------
|
|
||||||
get_directory_property(defs COMPILE_DEFINITIONS)
|
|
||||||
foreach( d ${defs})
|
|
||||||
set(definitions ${definitions} -D${d})
|
|
||||||
endforeach()
|
|
||||||
#---Nanes and others---------------------------------------
|
|
||||||
set(gensrcdict ${dictionary}.cpp)
|
|
||||||
if(MSVC)
|
|
||||||
set(gccxmlopts "--gccxmlopt=\"--gccxml-compiler cl\"")
|
|
||||||
else()
|
|
||||||
#set(gccxmlopts "--gccxmlopt=\'--gccxml-cxxflags -m64 \'")
|
|
||||||
set(gccxmlopts)
|
|
||||||
endif()
|
|
||||||
#set(rootmapname ${dictionary}Dict.rootmap)
|
|
||||||
#set(rootmapopts --rootmap=${rootmapname} --rootmap-lib=${libprefix}${dictionary}Dict)
|
|
||||||
#---Check GCCXML and get path-----------------------------
|
|
||||||
if(GCCXML)
|
|
||||||
get_filename_component(gccxmlpath ${GCCXML} PATH)
|
|
||||||
else()
|
|
||||||
message(WARNING "GCCXML not found. Install and setup your environment to find 'gccxml' executable")
|
|
||||||
endif()
|
|
||||||
#---Actual command----------------------------------------
|
|
||||||
add_custom_command(OUTPUT ${gensrcdict} ${rootmapname}
|
|
||||||
COMMAND ${GENREFLEX_EXECUTABLE} ${headerfiles} -o ${gensrcdict} ${gccxmlopts} ${rootmapopts} --select=${selectionfile}
|
|
||||||
--gccxmlpath=${gccxmlpath} ${ARG_OPTIONS} ${includedirs} ${definitions}
|
|
||||||
DEPENDS ${headerfiles} ${selectionfile})
|
|
||||||
endfunction()
|
|
||||||
|
|
193
cmk.sh
193
cmk.sh
@ -1,193 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
BUILDDIR="build"
|
|
||||||
HDF5DIR="/opt/hdf5v1.10.0"
|
|
||||||
HDF5=0
|
|
||||||
COMPILERTHREADS=0
|
|
||||||
TEXTCLIENT=0
|
|
||||||
RECEIVER=0
|
|
||||||
GUI=0
|
|
||||||
|
|
||||||
|
|
||||||
CLEAN=0
|
|
||||||
REBUILD=0
|
|
||||||
CMAKE_PRE=""
|
|
||||||
CMAKE_POST=""
|
|
||||||
|
|
||||||
usage() { echo -e "
|
|
||||||
Usage: $0 [-c] [-b] [-h] [-d <HDF5 directory>] [-j]
|
|
||||||
-[no option]: only make
|
|
||||||
-c: Clean
|
|
||||||
-b: Builds/Rebuilds CMake files normal mode
|
|
||||||
-h: Builds/Rebuilds Cmake files with HDF5 package
|
|
||||||
-d: HDF5 Custom Directory
|
|
||||||
-t: Build/Rebuilds only text client
|
|
||||||
-r: Build/Rebuilds only receiver
|
|
||||||
-g: Build/Rebuilds only gui
|
|
||||||
-j: Number of threads to compile through
|
|
||||||
|
|
||||||
For only make:
|
|
||||||
./cmk.sh
|
|
||||||
|
|
||||||
For make clean;make:
|
|
||||||
./cmk.sh -c
|
|
||||||
|
|
||||||
For using hdf5 without default dir /opt/hdf5v1.10.0:
|
|
||||||
./cmk.sh -h
|
|
||||||
|
|
||||||
For using hdf5 without custom dir /blabla:
|
|
||||||
./cmk.sh -h -d /blabla
|
|
||||||
|
|
||||||
For rebuilding cmake without hdf5 (Use this if you had previously run with hdf5 and now you dont want it)
|
|
||||||
./cmk.sh -b
|
|
||||||
|
|
||||||
For using multiple cores to compile faster:
|
|
||||||
(all these options work)
|
|
||||||
./cmk.sh -j9
|
|
||||||
./cmk.sh -cj9 #with clean
|
|
||||||
./cmk.sh -hj9 #with hdf5
|
|
||||||
./cmk.sh -j9 -h #with hdf
|
|
||||||
|
|
||||||
For rebuilding only certain sections
|
|
||||||
./cmk.sh -tg #only text client and gui
|
|
||||||
./cmk.sh -r #only receiver
|
|
||||||
|
|
||||||
" ; exit 1; }
|
|
||||||
|
|
||||||
while getopts ":bchd:j:trg" opt ; do
|
|
||||||
case $opt in
|
|
||||||
b)
|
|
||||||
echo "Building of CMake files Required"
|
|
||||||
REBUILD=1
|
|
||||||
;;
|
|
||||||
c)
|
|
||||||
echo "Clean Required"
|
|
||||||
CLEAN=1
|
|
||||||
;;
|
|
||||||
h)
|
|
||||||
echo "Building of CMake files with HDF5 option Required"
|
|
||||||
HDF5=1
|
|
||||||
REBUILD=1
|
|
||||||
;;
|
|
||||||
d)
|
|
||||||
echo "New HDF5 directory: $OPTARG"
|
|
||||||
HDF5DIR=$OPTARG
|
|
||||||
;;
|
|
||||||
j)
|
|
||||||
echo "Number of compiler threads: $OPTARG"
|
|
||||||
COMPILERTHREADS=$OPTARG
|
|
||||||
;;
|
|
||||||
t)
|
|
||||||
echo "Compiling Options: Text Client"
|
|
||||||
TEXTCLIENT=1
|
|
||||||
REBUILD=1
|
|
||||||
;;
|
|
||||||
r)
|
|
||||||
echo "Compiling Options: Receiver"
|
|
||||||
RECEIVER=1
|
|
||||||
REBUILD=1
|
|
||||||
;;
|
|
||||||
g)
|
|
||||||
echo "Compiling Options: GUI"
|
|
||||||
GUI=1
|
|
||||||
REBUILD=1
|
|
||||||
;;
|
|
||||||
\?)
|
|
||||||
echo "Invalid option: -$OPTARG"
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
:)
|
|
||||||
echo "Option -$OPTARG requires an argument."
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ $TEXTCLIENT -eq 0 ] && [ $RECEIVER -eq 0 ] && [ $GUI -eq 0 ]; then
|
|
||||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON -DUSE_RECEIVER=ON -DUSE_GUI=ON "
|
|
||||||
echo "Compile Option: TextClient, Receiver and GUI"
|
|
||||||
else
|
|
||||||
if [ $TEXTCLIENT -eq 1 ]; then
|
|
||||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON "
|
|
||||||
echo "Compile Option: TextClient"
|
|
||||||
fi
|
|
||||||
if [ $RECEIVER -eq 1 ]; then
|
|
||||||
CMAKE_POST+=" -DUSE_RECEIVER=ON "
|
|
||||||
echo "Compile Option: Receiver"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $GUI -eq 1 ]; then
|
|
||||||
CMAKE_POST+=" -DUSE_GUI=ON "
|
|
||||||
echo "Compile Option: GUI"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#build dir doesnt exist
|
|
||||||
if [ ! -d "$BUILDDIR" ] ; then
|
|
||||||
echo "No Build Directory. Building of Cmake files required"
|
|
||||||
mkdir $BUILDDIR;
|
|
||||||
REBUILD=1
|
|
||||||
else
|
|
||||||
#rebuild not requested, but no makefile
|
|
||||||
if [ $REBUILD -eq 0 ] && [ ! -f "$BUILDDIR/Makefile" ] ; then
|
|
||||||
echo "No Makefile. Building of Cmake files required"
|
|
||||||
REBUILD=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
CMAKE_POST+=" -DCMAKE_BUILD_TYPE=Debug "
|
|
||||||
|
|
||||||
#hdf5 rebuild
|
|
||||||
if [ $HDF5 -eq 1 ]; then
|
|
||||||
CMAKE_PRE+="HDF5_ROOT="$HDF5DIR
|
|
||||||
CMAKE_POST+=" -DUSE_HDF5=ON "
|
|
||||||
#normal mode rebuild
|
|
||||||
else
|
|
||||||
CMAKE_POST+=" -DUSE_HDF5=OFF "
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#enter build dir
|
|
||||||
cd $BUILDDIR;
|
|
||||||
echo "in "$PWD
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#cmake
|
|
||||||
if [ $REBUILD -eq 1 ]; then
|
|
||||||
rm -f CMakeCache.txt
|
|
||||||
BUILDCOMMAND="$CMAKE_PRE cmake $CMAKE_POST .."
|
|
||||||
echo $BUILDCOMMAND
|
|
||||||
eval $BUILDCOMMAND
|
|
||||||
fi
|
|
||||||
|
|
||||||
#make clean
|
|
||||||
if [ $CLEAN -eq 1 ]; then
|
|
||||||
make clean;
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#make
|
|
||||||
if [ $COMPILERTHREADS -gt 0 ]; then
|
|
||||||
BUILDCOMMAND="make -j$COMPILERTHREADS"
|
|
||||||
echo $BUILDCOMMAND
|
|
||||||
eval $BUILDCOMMAND
|
|
||||||
else
|
|
||||||
make
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
GITREPO1='git remote -v'
|
|
||||||
GITREPO2=" | grep \"fetch\" | cut -d' ' -f1"
|
|
||||||
BRANCH1='git branch -v'
|
|
||||||
BRANCH2=" | grep '*' | cut -d' ' -f2"
|
|
||||||
REPUID1='git log --pretty=format:"%H" -1'
|
|
||||||
AUTH1_1='git log --pretty=format:"%cn" -1'
|
|
||||||
AUTH1_2=" | cut -d' ' -f1"
|
|
||||||
AUTH2_1='git log --pretty=format:"%cn" -1'
|
|
||||||
AUTH2_2=" | cut -d' ' -f2"
|
|
||||||
FOLDERREV1='git log --oneline . ' #used for all the individual server folders
|
|
||||||
FOLDERREV2=" | wc -l" #used for all the individual server folders
|
|
||||||
REV1='git log --oneline '
|
|
||||||
REV2=" | wc -l"
|
|
||||||
|
|
||||||
GITREPO=`eval $GITREPO1 $GITREPO2`
|
|
||||||
BRANCH=`eval $BRANCH1 $BRANCH2`
|
|
||||||
REPUID=`eval $REPUID1`
|
|
||||||
AUTH1=`eval $AUTH1_1 $AUTH1_2`
|
|
||||||
AUTH2=`eval $AUTH2_1 $AUTH2_2`
|
|
||||||
REV=`eval $REV1 $REV2`
|
|
||||||
FOLDERREV=`eval $FOLDERREV1 $FOLDERREV2`
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
detsizechan 1024 512
|
|
||||||
#detetctor geometry, long side of the module first
|
|
||||||
hostname beb059+beb058+
|
|
||||||
#1Gb detector hostname for controls
|
|
||||||
|
|
||||||
0:rx_tcpport 1991
|
|
||||||
#tcpport for the first halfmodule
|
|
||||||
0:rx_udpport 50011
|
|
||||||
#udp port first quadrant, first halfmodule
|
|
||||||
0:rx_udpport2 50012
|
|
||||||
#udp port second quadrant, first halfmodule
|
|
||||||
0:rx_udpip 10.0.30.210
|
|
||||||
#udp IP of the receiver over 10Gb
|
|
||||||
0:detectorip 10.0.30.100
|
|
||||||
#first half module 10 Gb IP
|
|
||||||
|
|
||||||
1:rx_tcpport 1992
|
|
||||||
#tcpport for the second halfmodule
|
|
||||||
1:rx_udpport 50013
|
|
||||||
#udp port first quadrant, second halfmodule
|
|
||||||
1:rx_udpport2 50014
|
|
||||||
#udp port second quadrant, second halfmodule
|
|
||||||
1:rx_udpip 10.0.40.210
|
|
||||||
#udp IP of the receiver over 10Gb,
|
|
||||||
#can be the same or different from 0:rx_udpip
|
|
||||||
1:detectorip 10.0.40.101
|
|
||||||
#second half module 10 Gb IP
|
|
||||||
|
|
||||||
rx_hostname x12sa-vcons
|
|
||||||
#1Gb receiver pc hostname
|
|
||||||
|
|
||||||
outdir /sls/X12SA/data/x12saop/Data10/Eiger0.5M
|
|
||||||
threaded 1
|
|
@ -1,24 +0,0 @@
|
|||||||
detsizechan 1024 512
|
|
||||||
#detetctor geometry, long side of the module first
|
|
||||||
hostname beb059+beb058+
|
|
||||||
#1Gb detector hostname for controls
|
|
||||||
|
|
||||||
0:rx_tcpport 1991
|
|
||||||
#tcpport for the first halfmodule
|
|
||||||
0:rx_udpport 50011
|
|
||||||
#udp port first quadrant, first halfmodule
|
|
||||||
0:rx_udpport2 50012
|
|
||||||
#udp port second quadrant, first halfmodule
|
|
||||||
|
|
||||||
1:rx_tcpport 1992
|
|
||||||
#tcpport for the second halfmodule
|
|
||||||
1:rx_udpport 50013
|
|
||||||
#udp port first quadrant, second halfmodule
|
|
||||||
1:rx_udpport2 50014
|
|
||||||
#udp port second quadrant, second halfmodule
|
|
||||||
|
|
||||||
rx_hostname x12sa-vcons
|
|
||||||
#1Gb receiver pc hostname
|
|
||||||
|
|
||||||
outdir /sls/X12SA/data/x12saop/Data10/Eiger0.5M
|
|
||||||
threaded 1
|
|
@ -1,5 +1,5 @@
|
|||||||
hostname bchip007
|
type Gotthard+
|
||||||
|
0:hostname bchip007
|
||||||
#0:port 1952
|
#0:port 1952
|
||||||
#0:stopport 1953
|
#0:stopport 1953
|
||||||
#0:rx_tcpport 1956 must also have this in receiver config file
|
#0:rx_tcpport 1956 must also have this in receiver config file
|
||||||
@ -10,6 +10,9 @@ hostname bchip007
|
|||||||
0:caldir /home/l_maliakal_d/mySoft/newMythenSoftware/settingsdir/gotthard
|
0:caldir /home/l_maliakal_d/mySoft/newMythenSoftware/settingsdir/gotthard
|
||||||
0:ffdir /home/l_maliakal_d
|
0:ffdir /home/l_maliakal_d
|
||||||
0:extsig:0 off
|
0:extsig:0 off
|
||||||
|
0:extsig:1 off
|
||||||
|
0:extsig:2 off
|
||||||
|
0:extsig:3 off
|
||||||
#0:detectorip 129.129.202.9
|
#0:detectorip 129.129.202.9
|
||||||
0:detectormac 00:aa:bb:cc:dd:ee
|
0:detectormac 00:aa:bb:cc:dd:ee
|
||||||
0:rx_udpport 50004
|
0:rx_udpport 50004
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
hostname bchip038+
|
|
||||||
|
|
||||||
settingsdir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
|
||||||
caldir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
|
||||||
lock 0
|
|
||||||
|
|
||||||
0:rx_udpport 50004
|
|
||||||
0:rx_udpip 10.1.1.100
|
|
||||||
0:detectorip 10.1.1.10
|
|
||||||
|
|
||||||
rx_hostname pcmoench01
|
|
||||||
|
|
||||||
powerchip 1
|
|
||||||
timing auto
|
|
||||||
|
|
||||||
outdir /external_pool/jungfrau_data/softwaretest
|
|
||||||
threaded 1
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
detsizechan 1024 1024
|
|
||||||
hostname bchip048+bchip052+
|
|
||||||
|
|
||||||
settingsdir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
|
||||||
caldir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
|
||||||
lock 0
|
|
||||||
|
|
||||||
|
|
||||||
0:rx_udpport 50004
|
|
||||||
0:rx_udpip 10.1.1.100
|
|
||||||
0:rx_udpmac F4:52:14:2F:32:00
|
|
||||||
0:detectorip 10.1.1.10
|
|
||||||
0:detectormac 00:aa:bb:cc:dd:33
|
|
||||||
|
|
||||||
1:rx_tcpport 1955
|
|
||||||
1:rx_udpport 50005
|
|
||||||
1:rx_udpip 10.1.1.100
|
|
||||||
1:rx_udpmac F4:52:14:2F:32:00
|
|
||||||
1:detectorip 10.1.1.11
|
|
||||||
1:detectormac 00:aa:bb:cc:dd:33
|
|
||||||
|
|
||||||
rx_hostname pcmoench01
|
|
||||||
|
|
||||||
powerchip 1
|
|
||||||
extsig:0 trigger_in_rising_edge
|
|
||||||
timing auto
|
|
||||||
|
|
||||||
outdir /external_pool/jungfrau_data/softwaretest
|
|
||||||
threaded 1
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
detsizechan 2560 1
|
detsizechan 2560 1
|
||||||
|
|
||||||
|
#type Gotthard+
|
||||||
hostname bchip007+bchip009+
|
hostname bchip007+bchip009+
|
||||||
|
|
||||||
#0:hostname bchip007
|
#0:hostname bchip007
|
||||||
@ -15,6 +16,9 @@ hostname bchip007+bchip009+
|
|||||||
0:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
0:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||||
0:ffdir /home/l_msdetect
|
0:ffdir /home/l_msdetect
|
||||||
0:extsig:0 off
|
0:extsig:0 off
|
||||||
|
0:extsig:1 off
|
||||||
|
0:extsig:2 off
|
||||||
|
0:extsig:3 off
|
||||||
0:detectorip 10.1.1.2
|
0:detectorip 10.1.1.2
|
||||||
#0:detectormac 00:aa:bb:cc:dd:ee
|
#0:detectormac 00:aa:bb:cc:dd:ee
|
||||||
#0:rx_udpport 50001
|
#0:rx_udpport 50001
|
||||||
@ -35,6 +39,9 @@ hostname bchip007+bchip009+
|
|||||||
1:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
1:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||||
1:ffdir /home/l_msdetect
|
1:ffdir /home/l_msdetect
|
||||||
1:extsig:0 off
|
1:extsig:0 off
|
||||||
|
1:extsig:1 off
|
||||||
|
1:extsig:2 off
|
||||||
|
1:extsig:3 off
|
||||||
1:detectorip 10.1.2.2
|
1:detectorip 10.1.2.2
|
||||||
#1:detectormac 00:aa:bb:cc:dd:ee
|
#1:detectormac 00:aa:bb:cc:dd:ee
|
||||||
1:rx_udpport 50004
|
1:rx_udpport 50004
|
||||||
|
@ -15,11 +15,11 @@ fout=$3
|
|||||||
|
|
||||||
#dat=echo "date '+%Y%m%d'"
|
#dat=echo "date '+%Y%m%d'"
|
||||||
|
|
||||||
echo "Updating $fout"
|
|
||||||
#echo "in: $fin tmp: $ftmp out: $fout"
|
echo "in: $fin tmp: $ftmp out: $fout"
|
||||||
|
|
||||||
#awk 'NR==FNR {if ($3=="Date:") {l[FNR]=$4; gsub("-","",l[FNR]);} else { if (match($0,"Rev")) {l[FNR]=$(NF);} else {l[FNR]="\""$(NF)"\"";};};next} {$0=$1" "$2" "l[FNR]}1' $fin $ftmp > $fout
|
#awk 'NR==FNR {if ($3=="Date:") {l[FNR]=$4; gsub("-","",l[FNR]);} else { if (match($0,"Rev")) {l[FNR]=$(NF);} else {l[FNR]="\""$(NF)"\"";};};next} {$0=$1" "$2" "l[FNR]}1' $fin $ftmp > $fout
|
||||||
|
|
||||||
awk 'BEGIN {l[0]=0; "date +%Y%m%d" | getline l[1]; l[2]="\"/\""; l[3]="\"nobody\""; l[3]="\"nobody\""; l[4]="\"0000-0000-0000\"";} \
|
awk 'BEGIN {l[0]=0; "date +%Y%m%d" | getline l[1]; l[2]="\"/\""; l[3]="\"nobody\""; l[3]="\"nobody\""; l[4]="\"0000-0000-0000\"";} \
|
||||||
NR==FNR {if (match($0,"Rev")) {l[0]="0x"$(NF);} else if (match($0,"Date")) {l[1]="0x"$4; gsub("-","",l[1]);} else if (match($0,"URL")) {l[2]="\""$(NF)"\"";} else if (match($0,"Author")) {l[3]="\""$(NF)"\"";} else if (match($0,"UUID")) {l[4]="\""$(NF)"\"";} else if (match($0,"Branch")) {l[5]="\""$(NF)"\"";};next;}
|
NR==FNR {if (match($0,"Rev")) {l[0]="0x"$(NF);} else if (match($0,"Date")) {l[1]="0x"$4; gsub("-","",l[1]);} else if (match($0,"URL")) {l[2]="\""$(NF)"\"";} else if (match($0,"Author")) {l[3]="\""$(NF)"\"";} else if (match($0,"UUID")) {l[4]="\""$(NF)"\"";};next;}
|
||||||
{if (match($2,"REV")) {$0=$1" "$2" "l[0];} else if (match($2,"DATE")) {$0=$1" "$2" "l[1];} else if (match($2,"URL")) {$0=$1" "$2" "l[2];} else if (match($2,"AUTH")) {$0=$1" "$2" "l[3];} else if (match($2,"UUID")) {$0=$1" "$2" "l[4];} else if (match($2,"BRANCH")) {$0=$1" "$2" "l[5];}}1' $fin $ftmp > $fout
|
{if (match($2,"REV")) {$0=$1" "$2" "l[0];} else if (match($2,"DATE")) {$0=$1" "$2" "l[1];} else if (match($2,"URL")) {$0=$1" "$2" "l[2];} else if (match($2,"AUTH")) {$0=$1" "$2" "l[3];} else if (match($2,"UUID")) {$0=$1" "$2" "l[4];}}1' $fin $ftmp > $fout
|
||||||
|
8
gitall.sh
Executable file
8
gitall.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
git $1
|
||||||
|
for i in sls*/; do
|
||||||
|
cd $i
|
||||||
|
echo $i
|
||||||
|
git $1
|
||||||
|
cd ..
|
||||||
|
done
|
@ -1,11 +1,11 @@
|
|||||||
DESTDIR?=docs
|
DESTDIR?=../docs
|
||||||
|
|
||||||
|
|
||||||
#manual-api manual-calwiz manual-client manual-gui manual-main
|
#manual-api manual-calwiz manual-client manual-gui manual-main
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MAINDIRS= manual-main manual-api manual-calwiz manual-client manual-gui
|
MAINDIRS= manual-main
|
||||||
#manual-calwiz manual-calwiz manual-gui manual-client manual-api
|
#manual-calwiz manual-calwiz manual-gui manual-client manual-api
|
||||||
CLEANDIRS=$(MAINDIRS:manual-%=clean-%)
|
CLEANDIRS=$(MAINDIRS:manual-%=clean-%)
|
||||||
PDFDIRS=$(MAINDIRS:manual-%=pdf-%)
|
PDFDIRS=$(MAINDIRS:manual-%=pdf-%)
|
||||||
@ -14,18 +14,18 @@ ALLDIRS=$(MAINDIRS:manual-%=all-%)
|
|||||||
|
|
||||||
|
|
||||||
all: $(ALLDIRS)
|
all: $(ALLDIRS)
|
||||||
# $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf)
|
$(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf)
|
||||||
# mv pdf $(DESTDIR)
|
mv pdf $(DESTDIR)
|
||||||
# $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html)
|
$(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html)
|
||||||
# mv html $(DESTDIR)
|
mv html $(DESTDIR)
|
||||||
|
|
||||||
pdf: $(PDFDIRS)
|
pdf: $(PDFDIRS)
|
||||||
# $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf)
|
$(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf)
|
||||||
# mv pdf $(DESTDIR)
|
mv pdf $(DESTDIR)
|
||||||
|
|
||||||
html: $(HTMLDIRS)
|
html: $(HTMLDIRS)
|
||||||
# $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html)
|
$(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html)
|
||||||
# mv html $(DESTDIR)
|
mv html $(DESTDIR)
|
||||||
|
|
||||||
clean: $(CLEANDIRS)
|
clean: $(CLEANDIRS)
|
||||||
rm -fr $(DESTDIR)/pdf
|
rm -fr $(DESTDIR)/pdf
|
||||||
@ -45,7 +45,7 @@ clean-%:
|
|||||||
cd $(@:clean-%=manual-%) && make clean
|
cd $(@:clean-%=manual-%) && make clean
|
||||||
|
|
||||||
|
|
||||||
#<23><>$(@D)<29><> The directory part of the file name of the target, with the trailing slash removed. If the value of <20><>$@<40><> is dir/foo.o then <20><>$(@D)<29><> is dir. This value is . if <20><>$@<40><> does not contain a slash.
|
#<23><>$(@D)<29><> The directory part of the file name of the target, with the trailing slash removed. If the value of <20><>$@<40><> is dir/foo.o then <20><>$(@D)<29><> is dir. This value is . if <20><>$@<40><> does not contain a slash.
|
||||||
#<23><>$(@F)<29><> The file-within-directory part of the file name of the target. If the value of <20><>$@<40><> is dir/foo.o then <20><>$(@F)<29><> is foo.o. <20><>$(@F)<29><> is equivalent to <20><>$(notdir $@)<29><>.
|
#<23><>$(@F)<29><> The file-within-directory part of the file name of the target. If the value of <20><>$@<40><> is dir/foo.o then <20><>$(@F)<29><> is foo.o. <20><>$(@F)<29><> is equivalent to <20><>$(notdir $@)<29><>.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,52 +1,28 @@
|
|||||||
INCLUDES = -I .
|
INCLUDES = -I .
|
||||||
SRC_DET = mainClient.cpp
|
SRC_DET = mainClient.cpp
|
||||||
SRC_REC = mainReceiver.cpp
|
SRC_REC = mainReceiver.cpp
|
||||||
LIBDIR = .
|
LIBDIR = ../../bin
|
||||||
LDFLAG_DET = -I. -L$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread -lrt -L. -lzmq
|
LDFLAG_DET = -L$(LIBDIR) -lSlsDetector -L/usr/lib64/ -lpthread
|
||||||
LDFLAG_REC = -I. -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread -lrt -L. -lzmq
|
LDFLAG_REC = -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -lpthread
|
||||||
DESTDIR ?= ../docs
|
DESTDIR ?= ../docs
|
||||||
|
|
||||||
|
|
||||||
all: docs detUser detReceiver
|
#all: detUser detReceiver
|
||||||
#all: docs
|
all: docs
|
||||||
|
|
||||||
docs: createdocs docspdf docshtml removedocs
|
docs:
|
||||||
|
|
||||||
createdocs: slsDetectorUsers.doxy slsDetectorUsers.h detectorData.h slsReceiverUsers.h mainClient.cpp mainReceiver.cpp
|
|
||||||
doxygen slsDetectorUsers.doxy
|
doxygen slsDetectorUsers.doxy
|
||||||
|
|
||||||
docspdf:
|
|
||||||
cd slsDetectorUsersDocs/latex && make
|
|
||||||
$(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR))
|
|
||||||
$(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf)
|
|
||||||
mv slsDetectorUsersDocs/latex/refman.pdf $(DESTDIR)/pdf/slsDetectorUsersDocs.pdf
|
|
||||||
|
|
||||||
docshtml:
|
|
||||||
$(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR))
|
|
||||||
$(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html)
|
|
||||||
$(shell test -d $(DESTDIR)/html/slsDetectorUsersDocs && rm -r $(DESTDIR)/html/slsDetectorUsersDocs)
|
|
||||||
mv slsDetectorUsersDocs/html $(DESTDIR)/html/slsDetectorUsersDocs
|
|
||||||
|
|
||||||
removedocs:
|
|
||||||
rm -rf slsDetectorUsersDocs;
|
|
||||||
|
|
||||||
detUser:$(SRC_DET)
|
detUser:$(SRC_DET)
|
||||||
echo "creating client"
|
echo "creating client"
|
||||||
mkdir -p bin
|
g++ -o detUser $(SRC_DET) $(INCLUDES) $(LDFLAG_DET) -lm -lstdc++
|
||||||
g++ -o bin/detUser $(SRC_DET) $(INCLUDES) $(LDFLAG_DET) -lm -lstdc++
|
|
||||||
|
|
||||||
detReceiver:$(SRC_REC)
|
detReceiver:$(SRC_REC)
|
||||||
echo "creating receiver"
|
echo "creating receiver"
|
||||||
mkdir -p bin
|
g++ -o detReceiver $(SRC_REC) $(INCLUDES) $(LDFLAG_REC) -lm -lstdc++
|
||||||
g++ -o bin/detReceiver $(SRC_REC) $(INCLUDES) $(LDFLAG_REC) -lm -lstdc++
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
echo "cleaning for manual-api"
|
echo "cleaning"
|
||||||
rm -rf bin/detUser bin/detReceiver slsDetectorUsersDocs
|
rm -rf detUser detReceiver slsDetectorUsersDocs
|
||||||
rm -rf slsDetectorUsersDocs
|
|
||||||
rm -rf $(DESTDIR)/html/slsDetectorUsersDocs
|
|
||||||
rm -rf $(DESTDIR)/pdf/slsDetectorUsersDocs.pdf
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../../slsReceiverSoftware/include/ansi.h
|
|
BIN
manual/manual-api/detReceiver
Executable file
BIN
manual/manual-api/detReceiver
Executable file
Binary file not shown.
BIN
manual/manual-api/detUser
Executable file
BIN
manual/manual-api/detUser
Executable file
Binary file not shown.
@ -80,24 +80,7 @@ LATEX_HIDE_INDICES = YES
|
|||||||
|
|
||||||
PREDEFINED = __cplusplus
|
PREDEFINED = __cplusplus
|
||||||
|
|
||||||
INPUT = analogDetector.h \
|
INPUT = slsDetector/slsDetectorUsers.h slsDetector/slsDetectorBase.h commonFiles/sls_detector_defs.h slsDetector/slsDetector.h MySocketTCP/MySocketTCP.h usersFunctions/usersFunctions.h multiSlsDetector/multiSlsDetector.h commonFiles/sls_detector_defs.h slsDetector/slsDetectorUtils.h slsDetector/slsDetectorBase.h slsDetector/slsDetectorCommand.h slsDetector/slsDetectorActions.h multiSlsDetector/multiSlsDetector.h slsDetectorAnalysis/detectorData.h slsDetectorAnalysis/energyConversion.h slsDetectorAnalysis/postProcessing.h slsDetectorAnalysis/angularConversion.h slsDetectorAnalysis/fileIO.h multiSlsDetector/multiSlsDetectorClient.h multiSlsDetector/multiSlsDetectorCommand.h slsDetectorAnalysis/angularConversionStatic.h slsDetectorAnalysis/angleConversionConstant.h slsDetectorAnalysis/enCalLogClass.h slsDetectorAnalysis/angCalLogClass.h slsDetectorAnalysis/badChannelCorrections.h slsDetectorAnalysis/fileIOStatic.h slsReceiverInterface/receiverInterface.h slsReceiver/slsReceiver_funcs.h slsReceiver/slsReceiverFunctionList.h slsReceiver/receiver_defs.h
|
||||||
pedestalSubtraction.h \
|
|
||||||
MovingStat.h \
|
|
||||||
singlePhotonDetector.h \
|
|
||||||
interpolatingDetector.h tiffIO.h \
|
|
||||||
single_photon_hit.h \
|
|
||||||
dataStructures/slsDetectorData.h \
|
|
||||||
commonModeSubtraction.h \
|
|
||||||
RunningStat.h \
|
|
||||||
interpolations/etaInterpolationBase.h \
|
|
||||||
interpolations/slsInterpolation.h \
|
|
||||||
interpolations/etaInterpolationPosXY.h \
|
|
||||||
interpolations/linearInterpolation.h \
|
|
||||||
interpolations/noInterpolation.h \
|
|
||||||
interpolations/etaInterpolationGlobal.h \
|
|
||||||
multiThreadedAnalogDetector.h
|
|
||||||
|
|
||||||
|
OUTPUT_DIRECTORY = docs
|
||||||
|
|
||||||
OUTPUT_DIRECTORY = slsDetectorCalibrationDocs
|
|
||||||
|
|
||||||
#moench03Ctb10GbT1Data.h moench03TCtbData.h moench03T1CtbData.h moench03CtbData.h moench03Ctb10GbData.h moench03TCtb10GbData.h Mythen3_01_jctbData.h adcSar2_jctbData.h eigerHalfModuleData.h energyCalibration.h slsReceiverData.h gotthardModuleData.h gotthardShortModuleData.h jungfrau02Data.h jungfrau10ModuleData.h moench02Ctb10GbData.h moench02CtbData.h moench02ModuleData.h moench03CommonMode.h moenchCommonMode.h chiptestBoardData.h interpolation/etaVEL/interpolation_EtaVEL.h interpolation/etaVEL/EtaVEL.h etaVEL/iterativeEtaInterpolation.h dataStructures/moench03T1ZmqData.h
|
|
@ -1 +0,0 @@
|
|||||||
../../build/bin/libSlsDetector.so
|
|
@ -1 +0,0 @@
|
|||||||
../../build/bin/libSlsReceiver.so
|
|
@ -1 +0,0 @@
|
|||||||
../../slsReceiverSoftware/include/libzmq.a
|
|
@ -4,100 +4,95 @@
|
|||||||
This file is an example of how to implement the slsDetectorUsers class
|
This file is an example of how to implement the slsDetectorUsers class
|
||||||
You can compile it linking it to the slsDetector library
|
You can compile it linking it to the slsDetector library
|
||||||
|
|
||||||
g++ mainClient.cpp -L lib -lSlsDetector -L/usr/lib64/ -L lib2 -lzmq -pthread -lrt -lm -lstdc++
|
gcc mainClient.cpp -L lib -l SlsDetector -lm -lpthread
|
||||||
|
|
||||||
where,
|
where lib is the location of libSlsDetector.so
|
||||||
|
|
||||||
lib is the location of libSlsDetector.so
|
*/
|
||||||
|
|
||||||
lib2 is the location of the libzmq.a.
|
|
||||||
[ libzmq.a is required only when using data call backs and enabling data streaming from receiver to client.
|
|
||||||
It is linked in manual/manual-api from slsReceiverSoftware/include ]
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
#include "slsDetectorUsers.h"
|
#include "slsDetectorUsers.h"
|
||||||
#include "detectorData.h"
|
#include "detectorData.h"
|
||||||
#include <iostream>
|
|
||||||
#include <cstdlib>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Data Call back function defined
|
/** Definition of the data callback which simply prints out the number of points received and teh frame number */
|
||||||
* @param pData pointer to data structure received from the call back
|
int dataCallback(detectorData *pData, int iframe, void *pArg)
|
||||||
* @param iframe frame number of data passed
|
|
||||||
* @param isubframe sub frame number of data passed ( only valid for EIGER in 32 bit mode)
|
|
||||||
* @param pArg pointer to object
|
|
||||||
* \returns integer that is currently ignored
|
|
||||||
*/
|
|
||||||
int dataCallback(detectorData *pData, int iframe, int isubframe, void *pArg)
|
|
||||||
{
|
{
|
||||||
std::cout << " DataCallback:"
|
std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl;
|
||||||
<< "\n nx : " << pData->npoints
|
|
||||||
<< "\n ny : " << pData->npy
|
|
||||||
<< "\n Frame number : " << iframe << std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**example of a main program using the slsDetectorUsers class */
|
||||||
* Example of a main program using the slsDetectorUsers class
|
int main(int argc, char *argv[]) {
|
||||||
*
|
|
||||||
* - Arguments are optional
|
|
||||||
* - argv[1] : Configuration File
|
|
||||||
* - argv[2] : Measurement Setup File
|
|
||||||
* - argv[3] : Detector Id (default is zero)
|
|
||||||
*/
|
|
||||||
int main(int argc, char **argv) {
|
|
||||||
/** - if specified, set ID from argv[3] */
|
|
||||||
int id=0;
|
int id=0;
|
||||||
if (argc>=4)
|
int status;
|
||||||
id=atoi(argv[3]);
|
/** if specified, argv[2] is used as detector ID (default is 0)*/
|
||||||
|
if (argc>=3)
|
||||||
|
id=atoi(argv[2]);
|
||||||
|
|
||||||
|
|
||||||
/** - slsDetectorUsers Object is instantiated with appropriate ID */
|
|
||||||
|
/** slsDetectorUsers is instantiated */
|
||||||
slsDetectorUsers *pDetector = new slsDetectorUsers (id);
|
slsDetectorUsers *pDetector = new slsDetectorUsers (id);
|
||||||
|
|
||||||
|
|
||||||
/** - if specified, load configuration file (necessary at least the first time it is called to properly configure advanced settings in the shared memory) */
|
/** if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)*/
|
||||||
if (argc>=2){
|
if (argc>=2)
|
||||||
pDetector->readConfigurationFile(argv[1]);
|
pDetector->readConfigurationFile(argv[1]);
|
||||||
std::cout << "Detector configured" << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** - set detector in shared memory online (in case no config file was used) */
|
/** Setting the detector online (should be by default */
|
||||||
pDetector->setOnline(1);
|
pDetector->setOnline(1);
|
||||||
|
|
||||||
/** - set receiver in shared memory online (in case no config file was used) */
|
/** Load setup file if argv[2] specified */
|
||||||
pDetector->setReceiverOnline(1);
|
if (argc>=3)
|
||||||
|
pDetector->retrieveDetectorSetup( argv[2]);
|
||||||
|
else{
|
||||||
|
/** defining the detector size */
|
||||||
|
int minX, minY=0, sizeX, sizeY=1;
|
||||||
|
pDetector->getDetectorSize(minX, minY, sizeX, sizeY);
|
||||||
|
std::cout << "X: Start=" << minX << ", Size= " << sizeX << std::endl;
|
||||||
|
std::cout << "Y: Start=" << minY << ", Size= " << sizeY << std::endl;
|
||||||
|
pDetector->setDetectorSize(0,0,7680,1);
|
||||||
|
std::cout << pDetector->getDetectorDeveloper() << std::endl;
|
||||||
|
|
||||||
/** - registering data callback */
|
/** registering data callback */
|
||||||
pDetector->registerDataCallback(&dataCallback, NULL);
|
pDetector->registerDataCallback(&dataCallback, NULL);
|
||||||
/** - if receiver exists, enable data streaming from receiver to get the data */
|
|
||||||
pDetector->enableDataStreamingFromReceiver(1);
|
|
||||||
/** - create zmq sockets in client to enable data streaming in of data from receiver/different process */
|
|
||||||
pDetector->enableDataStreamingToClient(1);
|
|
||||||
|
|
||||||
|
/** checking detector status and exiting if not idle */
|
||||||
/** - ensuring detector status is idle before starting acquisition. exiting if not idle */
|
status = pDetector->getDetectorStatus();
|
||||||
int status = pDetector->getDetectorStatus();
|
|
||||||
if (status != 0){
|
if (status != 0){
|
||||||
std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl;
|
std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** - if provided, load detector settings */
|
/** checking and setting detector settings */
|
||||||
if (argc>=3){
|
std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl;
|
||||||
pDetector->retrieveDetectorSetup(argv[2]);
|
pDetector->setSettings(slsDetectorUsers::getDetectorSettings("veryhighgain"));
|
||||||
std::cout << "Detector measurement set-up done" << std::endl;
|
std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl;
|
||||||
|
|
||||||
|
/** Settings exposure time to 10ms */
|
||||||
|
pDetector->setExposureTime(10000000);
|
||||||
|
|
||||||
|
/** Settings exposure time to 100ms */
|
||||||
|
pDetector->setExposurePeriod(100000000);
|
||||||
|
|
||||||
|
/** Settingsnumber of frames to 30 */
|
||||||
|
pDetector->setNumberOfFrames(30);
|
||||||
|
}
|
||||||
|
/** start measurement */
|
||||||
|
pDetector->startMeasurement();
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
usleep(100000);
|
||||||
|
status = pDetector->getDetectorStatus();
|
||||||
|
if (status == 0 || status == 1|| status == 3)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *temp[] = {"receiver", NULL};
|
||||||
|
/** returning when acquisition is finished or data are avilable */
|
||||||
|
std::cout << "answer to a get command:" << pDetector->getCommand(1,temp,0) << std::endl;
|
||||||
|
|
||||||
/** - start measurement */
|
|
||||||
pDetector->startMeasurement();
|
|
||||||
std::cout << "measurement finished" << std::endl; usleep(1*1000*1000);
|
|
||||||
|
|
||||||
/** - returning when acquisition is finished or data are avilable */
|
|
||||||
|
|
||||||
/** - delete slsDetectorUsers object */
|
|
||||||
delete pDetector;
|
delete pDetector;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1,270 +1,103 @@
|
|||||||
|
/* A simple server in the internet domain using TCP
|
||||||
|
The port number is passed as an argument
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file mainReceiver.cpp
|
\file mainReceiver.cpp
|
||||||
|
|
||||||
This file is an example of how to implement the slsReceiverUsers class
|
|
||||||
You can compile it linking it to the slsReceiver library
|
|
||||||
|
|
||||||
g++ mainReceiver.cpp -L lib -lSlsReceiver -L/usr/lib64/ -L lib2 -lzmq -pthread -lrt -lm -lstdc++
|
This file is an example of how to implement the slsDetectorUsers class
|
||||||
|
You can compile it linking it to the slsDetector library
|
||||||
|
|
||||||
where,
|
gcc mainReceiver.cpp -L lib -l SlsDetector -lm -lpthread
|
||||||
|
|
||||||
lib is the location of lSlsReceiver.so
|
where lib is the location of libSlsDetector.so
|
||||||
|
|
||||||
lib2 is the location of the libzmq.a.
|
*/
|
||||||
[ libzmq.a is required only when using data call backs and enabling data streaming from receiver to client.
|
|
||||||
It is linked in manual/manual-api from slsReceiverSoftware/include ]
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "sls_receiver_defs.h"
|
|
||||||
#include "slsReceiverUsers.h"
|
#include "slsReceiverUsers.h"
|
||||||
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string.h>
|
|
||||||
#include <signal.h> //SIGINT
|
|
||||||
#include <cstdlib> //system
|
|
||||||
//#include "utilities.h"
|
|
||||||
//#include "logger.h"
|
|
||||||
#include <sys/types.h> //wait
|
|
||||||
#include <sys/wait.h> //wait
|
|
||||||
#include <string>
|
|
||||||
#include <unistd.h> //usleep
|
|
||||||
#include <errno.h>
|
|
||||||
#include <syscall.h> //tid
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
/** Define Colors to print data call back in different colors for different recievers */
|
|
||||||
#define PRINT_IN_COLOR(c,f, ...) printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)
|
|
||||||
|
|
||||||
|
|
||||||
/** Variable is true to continue running, set to false upon interrupt */
|
|
||||||
bool keeprunning;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Control+C Interrupt Handler
|
|
||||||
* Sets the variable keeprunning to false, to let all the processes know to exit properly
|
|
||||||
*/
|
|
||||||
void sigInterruptHandler(int p){
|
|
||||||
keeprunning = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* prints usage of this example program
|
|
||||||
*/
|
|
||||||
void printHelp() {
|
|
||||||
cprintf(RESET, "Usage:\n"
|
|
||||||
"./detReceiver [start_tcp_port] [num_receivers] [1 for call back, 0 for none]\n\n");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start Acquisition Call back
|
|
||||||
* slsReceiver writes data if file write enabled.
|
|
||||||
* Users get data to write using call back if registerCallBackRawDataReady is registered.
|
|
||||||
* @param filepath file path
|
|
||||||
* @param filename file name
|
|
||||||
* @param fileindex file index
|
|
||||||
* @param datasize data size in bytes
|
|
||||||
* @param p pointer to object
|
|
||||||
* \returns ignored
|
|
||||||
*/
|
|
||||||
int StartAcq(char* filepath, char* filename, uint64_t fileindex, uint32_t datasize, void*p){
|
|
||||||
cprintf(BLUE, "#### StartAcq: filepath:%s filename:%s fileindex:%llu datasize:%u ####\n",
|
|
||||||
filepath, filename, fileindex, datasize);
|
|
||||||
|
|
||||||
cprintf(BLUE, "--StartAcq: returning 0\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Acquisition Finished Call back
|
|
||||||
* @param frames Number of frames caught
|
|
||||||
* @param p pointer to object
|
|
||||||
*/
|
|
||||||
void AcquisitionFinished(uint64_t frames, void*p){
|
|
||||||
cprintf(BLUE, "#### AcquisitionFinished: frames:%llu ####\n",frames);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Receiver Data Call back
|
|
||||||
* Prints in different colors(for each receiver process) the different headers for each image call back.
|
|
||||||
* @param frameNumber frame number
|
|
||||||
* @param expLength real time exposure length (in 100ns) or sub frame number (Eiger 32 bit mode only)
|
|
||||||
* @param packetNumber number of packets caught for this frame
|
|
||||||
* @param bunchId bunch id from beamline
|
|
||||||
* @param timestamp time stamp in 10MHz clock (not implemented for most)
|
|
||||||
* @param modId module id (not implemented for most)
|
|
||||||
* @param xCoord x coordinates (detector id in 1D)
|
|
||||||
* @param yCoord y coordinates (not implemented)
|
|
||||||
* @param zCoord z coordinates (not implemented)
|
|
||||||
* @param debug debug values if any
|
|
||||||
* @param roundRNumber (not implemented)
|
|
||||||
* @param detType detector type see :: detectorType
|
|
||||||
* @param version version of standard header (structure format)
|
|
||||||
* @param datapointer pointer to data
|
|
||||||
* @param datasize data size in bytes
|
|
||||||
* @param p pointer to object
|
|
||||||
*/
|
|
||||||
void GetData(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp,
|
|
||||||
uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version,
|
|
||||||
char* datapointer, uint32_t datasize, void* p){
|
|
||||||
|
|
||||||
PRINT_IN_COLOR (modId?modId:xCoord,
|
|
||||||
"#### %d GetData: ####\n"
|
|
||||||
"frameNumber: %llu\t\texpLength: %u\t\tpacketNumber: %u\t\tbunchId: %llu\t\ttimestamp: %llu\t\tmodId: %u\t\t"
|
|
||||||
"xCoord: %u\t\tyCoord: %u\t\tzCoord: %u\t\tdebug: %u\t\troundRNumber: %u\t\tdetType: %u\t\t"
|
|
||||||
"version: %u\t\tfirstbytedata: 0x%x\t\tdatsize: %u\n\n",
|
|
||||||
xCoord, frameNumber, expLength, packetNumber, bunchId, timestamp, modId,
|
|
||||||
xCoord, yCoord, zCoord, debug, roundRNumber, detType, version,
|
|
||||||
((uint8_t)(*((uint8_t*)(datapointer)))), datasize);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Example of main program using the slsReceiverUsers class
|
|
||||||
*
|
|
||||||
* - Defines in file for:
|
|
||||||
* - Default Number of receivers is 1
|
|
||||||
* - Default Start TCP port is 1954
|
|
||||||
*/
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
/** - set default values */
|
|
||||||
int numReceivers = 1;
|
|
||||||
int startTCPPort = 1954;
|
|
||||||
int withCallback = 0;
|
|
||||||
keeprunning = true;
|
|
||||||
|
|
||||||
/** - get number of receivers and start tcp port from command line arguments */
|
/*
|
||||||
if ( (argc != 4) || (!sscanf(argv[1],"%d", &startTCPPort)) || (!sscanf(argv[2],"%d", &numReceivers)) || (!sscanf(argv[3],"%d", &withCallback)) )
|
Instantiate the slsReceieverUsers class
|
||||||
printHelp();
|
The port number is passed as an argument
|
||||||
cprintf(BLUE,"Parent Process Created [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
|
*/
|
||||||
cprintf(RESET, "Number of Receivers: %d\n", numReceivers);
|
slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret);
|
||||||
cprintf(RESET, "Start TCP Port: %d\n", startTCPPort);
|
|
||||||
cprintf(RESET, "Callback Enable: %d\n", withCallback);
|
/*
|
||||||
|
return if could not open TCP socket for interfacing to client
|
||||||
|
*/
|
||||||
|
if(ret==1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
|
||||||
|
/*register callbacks */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
callback arguments are
|
||||||
|
filepath
|
||||||
|
filename
|
||||||
|
fileindex
|
||||||
|
datasize
|
||||||
|
|
||||||
|
return value is
|
||||||
|
0 raw data ready callback takes care of open,close,write file
|
||||||
|
1 callback writes file, we have to open, close it
|
||||||
|
2 we open, close, write file, callback does not do anything
|
||||||
|
|
||||||
|
|
||||||
|
registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
|
||||||
|
*/
|
||||||
|
|
||||||
|
//receiver->registerCallBackStartAcquisition(func,arg);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
callback argument is
|
||||||
|
total farmes caught
|
||||||
|
registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//receiver->registerCallBackAcquisitionFinished(func,arg);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** - Catch signal SIGINT to close files and call destructors properly */
|
/*
|
||||||
struct sigaction sa;
|
args to raw data ready callback are
|
||||||
sa.sa_flags=0; // no flags
|
framenum
|
||||||
sa.sa_handler=sigInterruptHandler; // handler function
|
datapointer
|
||||||
sigemptyset(&sa.sa_mask); // dont block additional signals during invocation of handler
|
file descriptor
|
||||||
if (sigaction(SIGINT, &sa, NULL) == -1) {
|
guidatapointer (NULL, no data required)
|
||||||
cprintf(RED, "Could not set handler function for SIGINT\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** - Ignore SIG_PIPE, prevents global signal handler, handle locally,
|
NEVER DELETE THE DATA POINTER
|
||||||
instead of a server crashing due to client crash when writing, it just gives error */
|
REMEMBER THAT THE CALLBACK IS BLOCKING
|
||||||
struct sigaction asa;
|
|
||||||
asa.sa_flags=0; // no flags
|
registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
|
||||||
asa.sa_handler=SIG_IGN; // handler function
|
|
||||||
sigemptyset(&asa.sa_mask); // dont block additional signals during invocation of handler
|
*/
|
||||||
if (sigaction(SIGPIPE, &asa, NULL) == -1) {
|
|
||||||
cprintf(RED, "Could not set handler function for SIGPIPE\n");
|
//receiver->registerCallBackRawDataReady(func,arg);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** - loop over number of receivers */
|
/* start receiver to listen for commands from the client (and data from detectors when expected */
|
||||||
for (int i = 0; i < numReceivers; ++i) {
|
receiver->start();
|
||||||
|
|
||||||
/** - fork process to create child process */
|
/** sleep for 10 s*/
|
||||||
pid_t pid = fork();
|
usleep(10000000);
|
||||||
|
|
||||||
/** - if fork failed, raise SIGINT and properly destroy all child processes */
|
/** stop udp socket and tcp socket and thread */
|
||||||
if (pid < 0) {
|
receiver->stop();
|
||||||
cprintf(RED,"fork() failed. Killing all the receiver objects\n");
|
|
||||||
raise(SIGINT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** - if child process */
|
|
||||||
else if (pid == 0) {
|
|
||||||
cprintf(BLUE,"Child process %d [ Tid: %ld ]\n", i, (long)syscall(SYS_gettid));
|
|
||||||
|
|
||||||
char temp[10];
|
|
||||||
sprintf(temp,"%d",startTCPPort + i);
|
|
||||||
char* args[] = {(char*)"ignored", (char*)"--rx_tcpport", temp};
|
|
||||||
int ret = slsReceiverDefs::OK;
|
|
||||||
/** - create slsReceiverUsers object with appropriate arguments */
|
|
||||||
slsReceiverUsers *receiver = new slsReceiverUsers(3, args, ret);
|
|
||||||
if(ret==slsReceiverDefs::FAIL){
|
|
||||||
delete receiver;
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** - register callbacks. remember to set file write enable to 0 (using the client)
|
|
||||||
if we should not write files and you will write data using the callbacks */
|
|
||||||
if (withCallback) {
|
|
||||||
|
|
||||||
/** - Call back for start acquisition */
|
|
||||||
cprintf(BLUE, "Registering StartAcq()\n");
|
|
||||||
receiver->registerCallBackStartAcquisition(StartAcq, NULL);
|
|
||||||
|
|
||||||
/** - Call back for acquisition finished */
|
|
||||||
cprintf(BLUE, "Registering AcquisitionFinished()\n");
|
|
||||||
receiver->registerCallBackAcquisitionFinished(AcquisitionFinished, NULL);
|
|
||||||
|
|
||||||
/* - Call back for raw data */
|
|
||||||
cprintf(BLUE, "Registering GetData() \n");
|
|
||||||
receiver->registerCallBackRawDataReady(GetData,NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** - start tcp server thread */
|
|
||||||
if (receiver->start() == slsReceiverDefs::FAIL){
|
|
||||||
delete receiver;
|
|
||||||
cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** - as long as keeprunning is true (changes with Ctrl+C) */
|
|
||||||
while(keeprunning)
|
|
||||||
pause();
|
|
||||||
/** - interrupt caught, delete slsReceiverUsers object and exit */
|
|
||||||
delete receiver;
|
|
||||||
cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
|
|
||||||
exit(EXIT_SUCCESS);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** - Parent process ignores SIGINT (exits only when all child process exits) */
|
|
||||||
sa.sa_flags=0; // no flags
|
|
||||||
sa.sa_handler=SIG_IGN; // handler function
|
|
||||||
sigemptyset(&sa.sa_mask); // dont block additional signals during invocation of handler
|
|
||||||
if (sigaction(SIGINT, &sa, NULL) == -1) {
|
|
||||||
cprintf(RED, "Could not set handler function for SIGINT\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** - Print Ready and Instructions how to exit */
|
|
||||||
cout << "Ready ... " << endl;
|
|
||||||
cprintf(RESET, "\n[ Press \'Ctrl+c\' to exit ]\n");
|
|
||||||
|
|
||||||
/** - Parent process waits for all child processes to exit */
|
|
||||||
for(;;) {
|
|
||||||
pid_t childPid = waitpid (-1, NULL, 0);
|
|
||||||
|
|
||||||
// no child closed
|
|
||||||
if (childPid == -1) {
|
|
||||||
if (errno == ECHILD) {
|
|
||||||
cprintf(GREEN,"All Child Processes have been closed\n");
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
cprintf(RED, "Unexpected error from waitpid(): (%s)\n",strerror(errno));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//child closed
|
|
||||||
cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n", (long int) childPid);
|
|
||||||
}
|
|
||||||
|
|
||||||
cout << "Goodbye!" << endl;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
29
manual/manual-api/slsDetectorUsersDocs/html/annotated.html
Normal file
29
manual/manual-api/slsDetectorUsersDocs/html/annotated.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class List</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="classdetectorData.html">detectorData</a></td><td class="indexvalue">Data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) </td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td class="indexvalue">Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc </td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td class="indexvalue">Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data </td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,34 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Member List</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>detectorData Member List</h1>This is the complete list of members for <a class="el" href="classdetectorData.html">detectorData</a>, including all inherited members.<p><table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">detectorData</a>(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)</td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td><code> [inline]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">fileName</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">npoints</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">npy</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">progressIndex</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a></td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">~detectorData</a>()</td><td><a class="el" href="classdetectorData.html">detectorData</a></td><td><code> [inline]</code></td></tr>
|
||||||
|
</table><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,316 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>detectorData Class Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>detectorData Class Reference</h1><!-- doxytag: class="detectorData" -->data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
|
||||||
|
<a href="#_details">More...</a>
|
||||||
|
<p>
|
||||||
|
<code>#include <<a class="el" href="detectorData_8h-source.html">detectorData.h</a>></code>
|
||||||
|
<p>
|
||||||
|
<a href="classdetectorData-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">detectorData</a> (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The constructor. <a href="#3f8538f5f634295fc40682b8aed47b31"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">~detectorData</a> ()</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor deletes also the arrays pointing to data/errors/angles if not NULL. <a href="#d32a037cc2bd6e8caf4556cbd4b88ec7"></a><br></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">pointer to the data <a href="#0f4e31d65f9616e83a2e5521453d0364"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">pointer to the errors <a href="#29cb1c6bb5635e918ae28505ccd0d8f9"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">pointer to the angles (NULL if no angular conversion) <a href="#cc9f9708b9ff2d840208cae843fb4b7a"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">progressIndex</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">file index <a href="#976b3287d46aed032487bbeed74132da"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">fileName</a> [1000]</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">file name <a href="#91d1e3466878def295a531c01bdeef6b"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">npoints</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">number of points <a href="#50aabf6f2c40587f8e915cf4913a2cfe"></a><br></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">npy</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">dimensions in y coordinate <a href="#c289d259e7fd9445a9c04976a82cb324"></a><br></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00009">9</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
|
||||||
|
<a class="anchor" name="3f8538f5f634295fc40682b8aed47b31"></a><!-- doxytag: member="detectorData::detectorData" ref="3f8538f5f634295fc40682b8aed47b31" args="(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">detectorData::detectorData </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">double * </td>
|
||||||
|
<td class="paramname"> <em>val</em> = <code>NULL</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">double * </td>
|
||||||
|
<td class="paramname"> <em>err</em> = <code>NULL</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">double * </td>
|
||||||
|
<td class="paramname"> <em>ang</em> = <code>NULL</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">double </td>
|
||||||
|
<td class="paramname"> <em>p_ind</em> = <code>-1</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"> <em>fname</em> = <code>""</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>np</em> = <code>-1</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>ny</em> = <code>1</code></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"><code> [inline]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The constructor.
|
||||||
|
<p>
|
||||||
|
<dl compact><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>pointer to the data </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>err</em> </td><td>pointer to errors </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>ang</em> </td><td>pointer to the angles </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>f_ind</em> </td><td>file index </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>fname</em> </td><td>file name to which the data are saved </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>np</em> </td><td>number of points in x coordinate defaults to the number of detector channels (1D detector) </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>ny</em> </td><td>dimension in y (1D detector) </td></tr>
|
||||||
|
</table>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00020">20</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
References <a class="el" href="detectorData_8h-source.html#l00031">fileName</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="d32a037cc2bd6e8caf4556cbd4b88ec7"></a><!-- doxytag: member="detectorData::~detectorData" ref="d32a037cc2bd6e8caf4556cbd4b88ec7" args="()" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">detectorData::~detectorData </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"><code> [inline]</code></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The destructor deletes also the arrays pointing to data/errors/angles if not NULL.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00025">25</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
References <a class="el" href="detectorData_8h-source.html#l00029">angles</a>, <a class="el" href="detectorData_8h-source.html#l00028">errors</a>, and <a class="el" href="detectorData_8h-source.html#l00025">values</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr><h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" name="cc9f9708b9ff2d840208cae843fb4b7a"></a><!-- doxytag: member="detectorData::angles" ref="cc9f9708b9ff2d840208cae843fb4b7a" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">double* <a class="el" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">detectorData::angles</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
pointer to the angles (NULL if no angular conversion)
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00029">29</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="detectorData_8h-source.html#l00025">~detectorData()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="29cb1c6bb5635e918ae28505ccd0d8f9"></a><!-- doxytag: member="detectorData::errors" ref="29cb1c6bb5635e918ae28505ccd0d8f9" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">double* <a class="el" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">detectorData::errors</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
pointer to the errors
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00028">28</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="detectorData_8h-source.html#l00025">~detectorData()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="91d1e3466878def295a531c01bdeef6b"></a><!-- doxytag: member="detectorData::fileName" ref="91d1e3466878def295a531c01bdeef6b" args="[1000]" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">char <a class="el" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">detectorData::fileName</a>[1000] </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
file name
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00031">31</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="detectorData_8h-source.html#l00020">detectorData()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="50aabf6f2c40587f8e915cf4913a2cfe"></a><!-- doxytag: member="detectorData::npoints" ref="50aabf6f2c40587f8e915cf4913a2cfe" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">detectorData::npoints</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
number of points
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00032">32</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="mainClient_8cpp-source.html#l00019">dataCallback()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="c289d259e7fd9445a9c04976a82cb324"></a><!-- doxytag: member="detectorData::npy" ref="c289d259e7fd9445a9c04976a82cb324" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">detectorData::npy</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
dimensions in y coordinate
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00033">33</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="mainClient_8cpp-source.html#l00019">dataCallback()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="976b3287d46aed032487bbeed74132da"></a><!-- doxytag: member="detectorData::progressIndex" ref="976b3287d46aed032487bbeed74132da" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">double <a class="el" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">detectorData::progressIndex</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
file index
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00030">30</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="0f4e31d65f9616e83a2e5521453d0364"></a><!-- doxytag: member="detectorData::values" ref="0f4e31d65f9616e83a2e5521453d0364" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">double* <a class="el" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">detectorData::values</a> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
pointer to the data
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="detectorData_8h-source.html#l00025">25</a> of file <a class="el" href="detectorData_8h-source.html">detectorData.h</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="detectorData_8h-source.html#l00025">~detectorData()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="detectorData_8h-source.html">detectorData.h</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,95 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Member List</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsDetectorUsers Member List</h1>This is the complete list of members for <a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a>, including all inherited members.<p><table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#5128e295a5b926ccabdb48083d324789">addFrame</a>(double *data, double pos, double i0, double t, string fname, double var)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [virtual]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#d6b968f4d520342324762c496ebeb481">dumpDetectorSetup</a>(string const fname)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#51f92b69e05e8ee2e0c547ec4a6e97da">enableAngularConversion</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#82efe2f57758d63d330d78b121f8e77e">enableCountRateCorrection</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#94c74499f7653116cd8aff9ec0d14c43">enableFlatFieldCorrection</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#e5bc1c9c8e7e6cb7c9cde06a3133d263">enablePixelMaskCorrection</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#6d54a79ae4cfdb808f5db9969537efd3">enableWriteToFile</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#9cbe00dac8a19b71de88ebbdf3b0ea29">finalizeDataset</a>(double *a, double *v, double *e, int &np)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [virtual]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#c9ea028f75a180534c8d00eeea0727d3">getBeamEnergy</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">getCommand</a>(int narg, char *args[], int pos=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">getDetectorDeveloper</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#2cbba4518b585064f7870ae2d39a8b8b">getDetectorFirmwareVersion</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#1c79314ceeda9b3085ca118e25882669">getDetectorSerialNumber</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">getDetectorSettings</a>(string s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [inline, static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#a66defec09b568a514e57b444dbe0d7f">getDetectorSettings</a>(int s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [inline, static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">getDetectorSize</a>(int &x0, int &y0, int &nx, int &ny)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#1857f2afea58227cb96ad92f5e562a5e">getDetectorSoftwareVersion</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">getDetectorStatus</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#5292a3d9c12696512b81bcc6c579a03c">getDetectorType</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#6e3467bf3c0c246f69f85d485d84dd62">getFileIndex</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#5f30c83e8bf07a92fad0916d43e3799c">getFileName</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#81969295c2b08f14e9c3d4fa1f7d4e16">getFilePath</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#0b20511a94205abd689f31bd1a2d4c18">getFlatFieldCorrectionDir</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#a83083f73523557e6129f33b59f38327">getFlatFieldCorrectionFile</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#588a5e1d231cd6778f6f78fdc53b9681">getMaximumDetectorSize</a>(int &nx, int &ny)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#09ded3b9c81e4544d42bb0697c3b7624">getModuleFirmwareVersion</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#5c0e9f8836e1a8a2d986408e4f5dfd3b">getModuleSerialNumber</a>(int imod=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#e6e5f06995e3ef110824adc5f8b095e9">getPositions</a>(double *pos=NULL)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#547feb09262a2f0fa1ec4de82e92ab63">getThisSoftwareVersion</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#fe8029788742125c44383817f89214ca">getThresholdEnergy</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#420880726f4036bf9da83edfcb2d6cf0">getTimingMode</a>(int f)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [inline, static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#e88a9626e4e661c1c0e1d27ba4a57d50">getTimingMode</a>(string s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [inline, static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#56fa8890298a01fc58baad413dfdf1c1">initDataset</a>(int refresh)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [virtual]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#5f7c26833decef59c1abfd7d745c4671">putCommand</a>(int narg, char *args[], int pos=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">readConfigurationFile</a>(string const fname)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#2a85e28ff08e3ec1e08bea3ba7d0fb08">registerAcquisitionFinishedCallback</a>(int(*func)(double, int, void *), void *pArg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#d1ab73675435879c2c5cef7adab02c32">registerConnectChannelsCallback</a>(int(*func)(void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">registerDataCallback</a>(int(*userCallback)(detectorData *d, int f, void *), void *pArg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#a94dd8fce8548ba8e79201ec50fe27d6">registerDisconnectChannelsCallback</a>(int(*func)(void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#1969785197030aa8e2d3c3d48a9cb45c">registerGetI0Callback</a>(double(*func)(int, void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#c2b87416288e657a209e1374c778eb16">registerGetPositionCallback</a>(double(*func)(void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#0f7c9bd3c46647d5dda2fa5312f3ef92">registerGoToPositionCallback</a>(int(*func)(double, void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#e807e9f4a015a4bbcb22e36b80577ea5">registerGoToPositionNoWaitCallback</a>(int(*func)(double, void *), void *arg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#898cf0db148f0d3de7d4725cc8342c56">registerRawDataCallback</a>(int(*userCallback)(double *p, int n, void *), void *pArg)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">retrieveDetectorSetup</a>(string const fname)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">runStatusType</a>(int s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [inline, static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#475938986407804877df4dcece97cc19">setBeamEnergy</a>(int e_eV)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#ff667cf0665154cdff5d5f3dbc3526ba">setBitDepth</a>(int i=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#99f67fab7edfe68cc8b2300e282ff3f2">setDelayAfterTrigger</a>(double t=-1, bool inseconds=false)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">setDetectorSize</a>(int x0=-1, int y0=-1, int nx=-1, int ny=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">setExposurePeriod</a>(double t=-1, bool inseconds=false)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">setExposureTime</a>(double t=-1, bool inseconds=false)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#6b92ea7e237c77aa5107d7aabf76fe2d">setFileIndex</a>(int i)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#ff4a8ff4852e50d4ec05204cbc7fea9e">setFileName</a>(string s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#d833e1051299e101a5b5097c598ba9cb">setFilePath</a>(string s)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#65b112dac3d8b94f219f4d64c13cf0f9">setFlatFieldCorrectionDir</a>(string dir)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#ad9e6da8683ba2887174505fd3b7d739">setFlatFieldCorrectionFile</a>(string fname="")</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#8b741851c4eaef4e29322c99fd17cb3b">setNumberOfCycles</a>(int64_t t=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">setNumberOfFrames</a>(int64_t t=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#61d4acb00c997c5e02be6a191401c4ce">setNumberOfGates</a>(int64_t t=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">setOnline</a>(int const online=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#f296c05ee6134fb8d53d08a025e89775">setPositions</a>(int nPos, double *pos)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#db084473ffe61960b86abdfa8efcc80d">setReceiverMode</a>(int n=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">setSettings</a>(int isettings=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#1354266fd1bfaccd58992a3f51bbbd1d">setThresholdEnergy</a>(int e_eV)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#e2825524756c4bdf418a6233e137b4d7">setTimingMode</a>(int pol=-1)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#17323cd635b9e5c2916be3ca30ec748c">slsDetectorUsers</a>(int id=0)</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">startMeasurement</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#2abc673c45c1fe006f6b0fea6188e3a9">stopMeasurement</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsDetectorUsers.html#0d1daf6539befe56d6e3df0b24f5d68b">~slsDetectorUsers</a>()</td><td><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td><td><code> [virtual]</code></td></tr>
|
||||||
|
</table><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Member List</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsReceiverUsers Member List</h1>This is the complete list of members for <a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a>, including all inherited members.<p><table>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#bad0b3265826da2d9ebf48e59e9d5787">closeFile</a>(int p)</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#f206092e2744e12ce6b717f4181d91a2">getReceiverVersion</a>()</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">receiver</a></td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td><code> [static]</code></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#7471d2945e8650eece86258e6ca56156">registerCallBackAcquisitionFinished</a>(void(*func)(int nf, void *), void *arg)</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#343b9fac505e8c08a7fbf9efdd0f5762">registerCallBackRawDataReady</a>(void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg)</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#5d4bb9244008d0bc570778230d30c5e3">registerCallBackStartAcquisition</a>(int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg)</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#79a82ba94fbb19761c7701aa3901b8b1">slsReceiverUsers</a>(int argc, char *argv[], int &success)</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">start</a>()</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">stop</a>()</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
<tr class="memlist"><td><a class="el" href="classslsReceiverUsers.html#9b45943d81ce7a09543aa446de857cb0">~slsReceiverUsers</a>()</td><td><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td><td></td></tr>
|
||||||
|
</table><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,332 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>slsReceiverUsers Class Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsReceiverUsers Class Reference</h1><!-- doxytag: class="slsReceiverUsers" -->Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
|
||||||
|
<a href="#_details">More...</a>
|
||||||
|
<p>
|
||||||
|
<code>#include <<a class="el" href="slsReceiverUsers_8h-source.html">slsReceiverUsers.h</a>></code>
|
||||||
|
<p>
|
||||||
|
<a href="classslsReceiverUsers-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#79a82ba94fbb19761c7701aa3901b8b1">slsReceiverUsers</a> (int argc, char *argv[], int &success)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#9b45943d81ce7a09543aa446de857cb0">~slsReceiverUsers</a> ()</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#bad0b3265826da2d9ebf48e59e9d5787">closeFile</a> (int p)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">start</a> ()</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">stop</a> ()</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#f206092e2744e12ce6b717f4181d91a2">getReceiverVersion</a> ()</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#5d4bb9244008d0bc570778230d30c5e3">registerCallBackStartAcquisition</a> (int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#7471d2945e8650eece86258e6ca56156">registerCallBackAcquisitionFinished</a> (void(*func)(int nf, void *), void *arg)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#343b9fac505e8c08a7fbf9efdd0f5762">registerCallBackRawDataReady</a> (void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg)</td></tr>
|
||||||
|
|
||||||
|
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">static slsReceiverTCPIPInterface * </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">receiver</a></td></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
|
||||||
|
<p>
|
||||||
|
<a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a> is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="slsReceiverUsers_8h-source.html#l00021">21</a> of file <a class="el" href="slsReceiverUsers_8h-source.html">slsReceiverUsers.h</a>.<hr><h2>Constructor & Destructor Documentation</h2>
|
||||||
|
<a class="anchor" name="79a82ba94fbb19761c7701aa3901b8b1"></a><!-- doxytag: member="slsReceiverUsers::slsReceiverUsers" ref="79a82ba94fbb19761c7701aa3901b8b1" args="(int argc, char *argv[], int &success)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">slsReceiverUsers::slsReceiverUsers </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>argc</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">char * </td>
|
||||||
|
<td class="paramname"> <em>argv</em>[], </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int & </td>
|
||||||
|
<td class="paramname"> <em>success</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Constructor reads config file, creates socket, assigns function table <dl compact><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>argc</em> </td><td>from command line </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>from command line </td></tr>
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>succecc</em> </td><td>socket creation was successfull </td></tr>
|
||||||
|
</table>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="9b45943d81ce7a09543aa446de857cb0"></a><!-- doxytag: member="slsReceiverUsers::~slsReceiverUsers" ref="9b45943d81ce7a09543aa446de857cb0" args="()" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">slsReceiverUsers::~slsReceiverUsers </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Destructor
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr><h2>Member Function Documentation</h2>
|
||||||
|
<a class="anchor" name="bad0b3265826da2d9ebf48e59e9d5787"></a><!-- doxytag: member="slsReceiverUsers::closeFile" ref="bad0b3265826da2d9ebf48e59e9d5787" args="(int p)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void slsReceiverUsers::closeFile </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>p</em> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Close File and exits receiver server
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="f206092e2744e12ce6b717f4181d91a2"></a><!-- doxytag: member="slsReceiverUsers::getReceiverVersion" ref="f206092e2744e12ce6b717f4181d91a2" args="()" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int64_t slsReceiverUsers::getReceiverVersion </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
get get Receiver Version <dl compact><dt><b>Returns:</b></dt><dd>id </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="7471d2945e8650eece86258e6ca56156"></a><!-- doxytag: member="slsReceiverUsers::registerCallBackAcquisitionFinished" ref="7471d2945e8650eece86258e6ca56156" args="(void(*func)(int nf, void *), void *arg)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void slsReceiverUsers::registerCallBackAcquisitionFinished </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">void(*)(int nf, void *) </td>
|
||||||
|
<td class="paramname"> <em>func</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"> <em>arg</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
register callback for end of acquisition <dl compact><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>end of acquisition callback. Argument nf is total frames caught </td></tr>
|
||||||
|
</table>
|
||||||
|
</dl>
|
||||||
|
<dl compact><dt><b>Returns:</b></dt><dd>nothing </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="343b9fac505e8c08a7fbf9efdd0f5762"></a><!-- doxytag: member="slsReceiverUsers::registerCallBackRawDataReady" ref="343b9fac505e8c08a7fbf9efdd0f5762" args="(void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void slsReceiverUsers::registerCallBackRawDataReady </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">void(*)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *) </td>
|
||||||
|
<td class="paramname"> <em>func</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"> <em>arg</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
register callback to be called when data are available (to process and/or save the data). <dl compact><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required) </td></tr>
|
||||||
|
</table>
|
||||||
|
</dl>
|
||||||
|
<dl compact><dt><b>Returns:</b></dt><dd>nothing </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="5d4bb9244008d0bc570778230d30c5e3"></a><!-- doxytag: member="slsReceiverUsers::registerCallBackStartAcquisition" ref="5d4bb9244008d0bc570778230d30c5e3" args="(int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void slsReceiverUsers::registerCallBackStartAcquisition </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int(*)(char *filepath, char *filename, int fileindex, int datasize, void *) </td>
|
||||||
|
<td class="paramname"> <em>func</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"> <em>arg</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
register calbback for starting the acquisition <dl compact><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table border="0" cellspacing="2" cellpadding="0">
|
||||||
|
<tr><td valign="top"></td><td valign="top"><em>func</em> </td><td>callback to be called when starting the acquisition. Its arguments are filepath filename fileindex data size</td></tr>
|
||||||
|
</table>
|
||||||
|
</dl>
|
||||||
|
<dl compact><dt><b>Returns:</b></dt><dd>0 callback takes care of open,close,write file; 1 callback writes file, we have to open, close it; 2 we open, close, write file, callback does not do anything </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="ef40b4987367b8a0116bcb66534dd7b7"></a><!-- doxytag: member="slsReceiverUsers::start" ref="ef40b4987367b8a0116bcb66534dd7b7" args="()" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int slsReceiverUsers::start </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
starts listening on the TCP port for client comminication <dl compact><dt><b>Returns:</b></dt><dd>0 for success or 1 for FAIL in creating TCP server </dd></dl>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="mainReceiver_8cpp-source.html#l00025">main()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="394001d873a4b7912865a971d4d25f87"></a><!-- doxytag: member="slsReceiverUsers::stop" ref="394001d873a4b7912865a971d4d25f87" args="()" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void slsReceiverUsers::stop </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"> </td>
|
||||||
|
<td> ) </td>
|
||||||
|
<td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
stops listening to the TCP & UDP port and exit receiver program
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="mainReceiver_8cpp-source.html#l00025">main()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr><h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" name="8f262724fb99ecd3976214710d82dd18"></a><!-- doxytag: member="slsReceiverUsers::receiver" ref="8f262724fb99ecd3976214710d82dd18" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">slsReceiverTCPIPInterface* <a class="el" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">slsReceiverUsers::receiver</a><code> [static]</code> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="slsReceiverUsers_8h-source.html#l00087">87</a> of file <a class="el" href="slsReceiverUsers_8h-source.html">slsReceiverUsers.h</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="slsReceiverUsers_8h-source.html">slsReceiverUsers.h</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,46 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>detectorData.h Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>detectorData.h</h1><a href="detectorData_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
|
||||||
|
<a name="l00002"></a>00002 <span class="preprocessor">#include <unistd.h></span>
|
||||||
|
<a name="l00003"></a>00003 <span class="preprocessor">#include <cstring></span>
|
||||||
|
<a name="l00004"></a>00004 <span class="preprocessor">#ifndef DETECTOR_DATA_H</span>
|
||||||
|
<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define DETECTOR_DATA_H</span>
|
||||||
|
<a name="l00006"></a>00006 <span class="preprocessor"></span>
|
||||||
|
<a name="l00009"></a><a class="code" href="classdetectorData.html">00009</a> <span class="keyword">class </span><a class="code" href="classdetectorData.html">detectorData</a> {
|
||||||
|
<a name="l00010"></a>00010 <span class="keyword">public</span>:
|
||||||
|
<a name="l00020"></a><a class="code" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">00020</a> <a class="code" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">detectorData</a>(<span class="keywordtype">double</span> *val=NULL, <span class="keywordtype">double</span> *err=NULL, <span class="keywordtype">double</span> *ang=NULL, <span class="keywordtype">double</span> p_ind=-1, <span class="keyword">const</span> <span class="keywordtype">char</span> *fname=<span class="stringliteral">""</span>, <span class="keywordtype">int</span> np=-1, <span class="keywordtype">int</span> ny=1) : <a class="code" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a>(val), <a class="code" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a>(err), <a class="code" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a>(ang), <a class="code" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">progressIndex</a>(p_ind), <a class="code" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">npoints</a>(np), <a class="code" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">npy</a>(ny){strcpy(<a class="code" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">fileName</a>,fname);};
|
||||||
|
<a name="l00025"></a><a class="code" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">00025</a> <a class="code" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">~detectorData</a>() {<span class="keywordflow">if</span> (<a class="code" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a>) <span class="keyword">delete</span> [] <a class="code" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a>; <span class="keywordflow">if</span> (<a class="code" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a>) <span class="keyword">delete</span> [] <a class="code" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a>; <span class="keywordflow">if</span> (<a class="code" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a>) <span class="keyword">delete</span> [] <a class="code" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a>;};
|
||||||
|
<a name="l00026"></a>00026 <span class="comment">//private:</span>
|
||||||
|
<a name="l00027"></a>00027 <span class="keywordtype">double</span> *<a class="code" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">values</a>;
|
||||||
|
<a name="l00028"></a><a class="code" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">00028</a> <span class="keywordtype">double</span> *<a class="code" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">errors</a>;
|
||||||
|
<a name="l00029"></a><a class="code" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">00029</a> <span class="keywordtype">double</span> *<a class="code" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">angles</a>;
|
||||||
|
<a name="l00030"></a><a class="code" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">00030</a> <span class="keywordtype">double</span> <a class="code" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">progressIndex</a>;
|
||||||
|
<a name="l00031"></a><a class="code" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">00031</a> <span class="keywordtype">char</span> <a class="code" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">fileName</a>[1000];
|
||||||
|
<a name="l00032"></a><a class="code" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">00032</a> <span class="keywordtype">int</span> <a class="code" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">npoints</a>;
|
||||||
|
<a name="l00033"></a><a class="code" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">00033</a> <span class="keywordtype">int</span> <a class="code" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">npy</a>;
|
||||||
|
<a name="l00034"></a>00034 };
|
||||||
|
<a name="l00035"></a>00035
|
||||||
|
<a name="l00036"></a>00036
|
||||||
|
<a name="l00037"></a>00037 <span class="preprocessor">#endif</span>
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>detectorData.h File Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>detectorData.h File Reference</h1><code>#include <unistd.h></code><br>
|
||||||
|
<code>#include <cstring></code><br>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="detectorData_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classdetectorData.html">detectorData</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) <a href="classdetectorData.html#_details">More...</a><br></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
358
manual/manual-api/slsDetectorUsersDocs/html/doxygen.css
Normal file
358
manual/manual-api/slsDetectorUsersDocs/html/doxygen.css
Normal file
@ -0,0 +1,358 @@
|
|||||||
|
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
|
||||||
|
font-family: Geneva, Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
BODY,TD {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
H1 {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 160%;
|
||||||
|
}
|
||||||
|
H2 {
|
||||||
|
font-size: 120%;
|
||||||
|
}
|
||||||
|
H3 {
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
CAPTION { font-weight: bold }
|
||||||
|
DIV.qindex {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
DIV.nav {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
DIV.navtab {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
TD.navtab {
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
A.qindex {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #1A419D;
|
||||||
|
}
|
||||||
|
A.qindex:visited {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #1A419D
|
||||||
|
}
|
||||||
|
A.qindex:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #ddddff;
|
||||||
|
}
|
||||||
|
A.qindexHL {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #6666cc;
|
||||||
|
color: #ffffff;
|
||||||
|
border: 1px double #9295C2;
|
||||||
|
}
|
||||||
|
A.qindexHL:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #6666cc;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
|
||||||
|
A.el { text-decoration: none; font-weight: bold }
|
||||||
|
A.elRef { font-weight: bold }
|
||||||
|
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
|
||||||
|
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
|
||||||
|
A.codeRef:link { font-weight: normal; color: #0000FF}
|
||||||
|
A.codeRef:visited { font-weight: normal; color: #0000FF}
|
||||||
|
A:hover { text-decoration: none; background-color: #f2f2ff }
|
||||||
|
DL.el { margin-left: -1cm }
|
||||||
|
.fragment {
|
||||||
|
font-family: monospace, fixed;
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
PRE.fragment {
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
margin-left: 2px;
|
||||||
|
margin-right: 8px;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 6px;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
|
||||||
|
|
||||||
|
DIV.groupHeader {
|
||||||
|
margin-left: 16px;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
|
||||||
|
BODY {
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
TD.indexkey {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-right : 10px;
|
||||||
|
padding-top : 2px;
|
||||||
|
padding-left : 10px;
|
||||||
|
padding-bottom : 2px;
|
||||||
|
margin-left : 0px;
|
||||||
|
margin-right : 0px;
|
||||||
|
margin-top : 2px;
|
||||||
|
margin-bottom : 2px;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
}
|
||||||
|
TD.indexvalue {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
font-style: italic;
|
||||||
|
padding-right : 10px;
|
||||||
|
padding-top : 2px;
|
||||||
|
padding-left : 10px;
|
||||||
|
padding-bottom : 2px;
|
||||||
|
margin-left : 0px;
|
||||||
|
margin-right : 0px;
|
||||||
|
margin-top : 2px;
|
||||||
|
margin-bottom : 2px;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
}
|
||||||
|
TR.memlist {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
||||||
|
P.formulaDsp { text-align: center; }
|
||||||
|
IMG.formulaDsp { }
|
||||||
|
IMG.formulaInl { vertical-align: middle; }
|
||||||
|
SPAN.keyword { color: #008000 }
|
||||||
|
SPAN.keywordtype { color: #604020 }
|
||||||
|
SPAN.keywordflow { color: #e08000 }
|
||||||
|
SPAN.comment { color: #800000 }
|
||||||
|
SPAN.preprocessor { color: #806020 }
|
||||||
|
SPAN.stringliteral { color: #002080 }
|
||||||
|
SPAN.charliteral { color: #008080 }
|
||||||
|
.mdescLeft {
|
||||||
|
padding: 0px 8px 4px 8px;
|
||||||
|
font-size: 80%;
|
||||||
|
font-style: italic;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
border-top: 1px none #E0E0E0;
|
||||||
|
border-right: 1px none #E0E0E0;
|
||||||
|
border-bottom: 1px none #E0E0E0;
|
||||||
|
border-left: 1px none #E0E0E0;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
.mdescRight {
|
||||||
|
padding: 0px 8px 4px 8px;
|
||||||
|
font-size: 80%;
|
||||||
|
font-style: italic;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
border-top: 1px none #E0E0E0;
|
||||||
|
border-right: 1px none #E0E0E0;
|
||||||
|
border-bottom: 1px none #E0E0E0;
|
||||||
|
border-left: 1px none #E0E0E0;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
.memItemLeft {
|
||||||
|
padding: 1px 0px 0px 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border-top-width: 1px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-left-width: 1px;
|
||||||
|
border-top-color: #E0E0E0;
|
||||||
|
border-right-color: #E0E0E0;
|
||||||
|
border-bottom-color: #E0E0E0;
|
||||||
|
border-left-color: #E0E0E0;
|
||||||
|
border-top-style: solid;
|
||||||
|
border-right-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-left-style: none;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.memItemRight {
|
||||||
|
padding: 1px 8px 0px 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border-top-width: 1px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-left-width: 1px;
|
||||||
|
border-top-color: #E0E0E0;
|
||||||
|
border-right-color: #E0E0E0;
|
||||||
|
border-bottom-color: #E0E0E0;
|
||||||
|
border-left-color: #E0E0E0;
|
||||||
|
border-top-style: solid;
|
||||||
|
border-right-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-left-style: none;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.memTemplItemLeft {
|
||||||
|
padding: 1px 0px 0px 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border-top-width: 1px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-left-width: 1px;
|
||||||
|
border-top-color: #E0E0E0;
|
||||||
|
border-right-color: #E0E0E0;
|
||||||
|
border-bottom-color: #E0E0E0;
|
||||||
|
border-left-color: #E0E0E0;
|
||||||
|
border-top-style: none;
|
||||||
|
border-right-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-left-style: none;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.memTemplItemRight {
|
||||||
|
padding: 1px 8px 0px 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border-top-width: 1px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-left-width: 1px;
|
||||||
|
border-top-color: #E0E0E0;
|
||||||
|
border-right-color: #E0E0E0;
|
||||||
|
border-bottom-color: #E0E0E0;
|
||||||
|
border-left-color: #E0E0E0;
|
||||||
|
border-top-style: none;
|
||||||
|
border-right-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-left-style: none;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.memTemplParams {
|
||||||
|
padding: 1px 0px 0px 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border-top-width: 1px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-left-width: 1px;
|
||||||
|
border-top-color: #E0E0E0;
|
||||||
|
border-right-color: #E0E0E0;
|
||||||
|
border-bottom-color: #E0E0E0;
|
||||||
|
border-left-color: #E0E0E0;
|
||||||
|
border-top-style: solid;
|
||||||
|
border-right-style: none;
|
||||||
|
border-bottom-style: none;
|
||||||
|
border-left-style: none;
|
||||||
|
color: #606060;
|
||||||
|
background-color: #FAFAFA;
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
.search { color: #003399;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
FORM.search {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
INPUT.search { font-size: 75%;
|
||||||
|
color: #000080;
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #e8eef2;
|
||||||
|
}
|
||||||
|
TD.tiny { font-size: 75%;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #1A41A8;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
color: #2A3798;
|
||||||
|
}
|
||||||
|
.dirtab { padding: 4px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
}
|
||||||
|
TH.dirtab { background: #e8eef2;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
HR { height: 1px;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style for detailed member documentation */
|
||||||
|
.memtemplate {
|
||||||
|
font-size: 80%;
|
||||||
|
color: #606060;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.memnav {
|
||||||
|
background-color: #e8eef2;
|
||||||
|
border: 1px solid #84b0c7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
.memitem {
|
||||||
|
padding: 4px;
|
||||||
|
background-color: #eef3f5;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #dedeee;
|
||||||
|
-moz-border-radius: 8px 8px 8px 8px;
|
||||||
|
}
|
||||||
|
.memname {
|
||||||
|
white-space: nowrap;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.memdoc{
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
.memproto {
|
||||||
|
background-color: #d5e1e8;
|
||||||
|
width: 100%;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #84b0c7;
|
||||||
|
font-weight: bold;
|
||||||
|
-moz-border-radius: 8px 8px 8px 8px;
|
||||||
|
}
|
||||||
|
.paramkey {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.paramtype {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.paramname {
|
||||||
|
color: #602020;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
/* End Styling for detailed member documentation */
|
||||||
|
|
||||||
|
/* for the tree view */
|
||||||
|
.ftvtree {
|
||||||
|
font-family: sans-serif;
|
||||||
|
margin:0.5em;
|
||||||
|
}
|
||||||
|
.directory { font-size: 9pt; font-weight: bold; }
|
||||||
|
.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
|
||||||
|
.directory > h3 { margin-top: 0; }
|
||||||
|
.directory p { margin: 0px; white-space: nowrap; }
|
||||||
|
.directory div { display: none; margin: 0px; }
|
||||||
|
.directory img { vertical-align: -30%; }
|
||||||
|
|
BIN
manual/manual-api/slsDetectorUsersDocs/html/doxygen.png
Normal file
BIN
manual/manual-api/slsDetectorUsersDocs/html/doxygen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
31
manual/manual-api/slsDetectorUsersDocs/html/files.html
Normal file
31
manual/manual-api/slsDetectorUsersDocs/html/files.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>File Index</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li id="current"><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="detectorData_8h.html">detectorData.h</a> <a href="detectorData_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="mainClient_8cpp.html">mainClient.cpp</a> <a href="mainClient_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="mainReceiver_8cpp.html">mainReceiver.cpp</a> <a href="mainReceiver_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="slsDetectorUsers_8h.html">slsDetectorUsers.h</a> <a href="slsDetectorUsers_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="slsReceiverUsers_8h.html">slsReceiverUsers.h</a> <a href="slsReceiverUsers_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
165
manual/manual-api/slsDetectorUsersDocs/html/functions.html
Normal file
165
manual/manual-api/slsDetectorUsersDocs/html/functions.html
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class Members</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li id="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li id="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_d"><span>d</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_g"><span>g</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_n"><span>n</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
<li><a href="#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="#index_v"><span>v</span></a></li>
|
||||||
|
<li><a href="#index_~"><span>~</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here is a list of all class members with links to the classes they belong to:
|
||||||
|
<p>
|
||||||
|
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
|
||||||
|
<li>addFrame()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5128e295a5b926ccabdb48083d324789">slsDetectorUsers</a><li>angles
|
||||||
|
: <a class="el" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">detectorData</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
|
||||||
|
<li>closeFile()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#bad0b3265826da2d9ebf48e59e9d5787">slsReceiverUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
|
||||||
|
<li>detectorData()
|
||||||
|
: <a class="el" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">detectorData</a><li>dumpDetectorSetup()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d6b968f4d520342324762c496ebeb481">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
|
||||||
|
<li>enableAngularConversion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#51f92b69e05e8ee2e0c547ec4a6e97da">slsDetectorUsers</a><li>enableCountRateCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#82efe2f57758d63d330d78b121f8e77e">slsDetectorUsers</a><li>enableFlatFieldCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#94c74499f7653116cd8aff9ec0d14c43">slsDetectorUsers</a><li>enablePixelMaskCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e5bc1c9c8e7e6cb7c9cde06a3133d263">slsDetectorUsers</a><li>enableWriteToFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6d54a79ae4cfdb808f5db9969537efd3">slsDetectorUsers</a><li>errors
|
||||||
|
: <a class="el" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">detectorData</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
|
||||||
|
<li>fileName
|
||||||
|
: <a class="el" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">detectorData</a><li>finalizeDataset()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#9cbe00dac8a19b71de88ebbdf3b0ea29">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
|
||||||
|
<li>getBeamEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c9ea028f75a180534c8d00eeea0727d3">slsDetectorUsers</a><li>getCommand()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">slsDetectorUsers</a><li>getDetectorDeveloper()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">slsDetectorUsers</a><li>getDetectorFirmwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2cbba4518b585064f7870ae2d39a8b8b">slsDetectorUsers</a><li>getDetectorSerialNumber()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1c79314ceeda9b3085ca118e25882669">slsDetectorUsers</a><li>getDetectorSettings()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a66defec09b568a514e57b444dbe0d7f">slsDetectorUsers</a><li>getDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">slsDetectorUsers</a><li>getDetectorSoftwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1857f2afea58227cb96ad92f5e562a5e">slsDetectorUsers</a><li>getDetectorStatus()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">slsDetectorUsers</a><li>getDetectorType()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5292a3d9c12696512b81bcc6c579a03c">slsDetectorUsers</a><li>getFileIndex()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6e3467bf3c0c246f69f85d485d84dd62">slsDetectorUsers</a><li>getFileName()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5f30c83e8bf07a92fad0916d43e3799c">slsDetectorUsers</a><li>getFilePath()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#81969295c2b08f14e9c3d4fa1f7d4e16">slsDetectorUsers</a><li>getFlatFieldCorrectionDir()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0b20511a94205abd689f31bd1a2d4c18">slsDetectorUsers</a><li>getFlatFieldCorrectionFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a83083f73523557e6129f33b59f38327">slsDetectorUsers</a><li>getMaximumDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#588a5e1d231cd6778f6f78fdc53b9681">slsDetectorUsers</a><li>getModuleFirmwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#09ded3b9c81e4544d42bb0697c3b7624">slsDetectorUsers</a><li>getModuleSerialNumber()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5c0e9f8836e1a8a2d986408e4f5dfd3b">slsDetectorUsers</a><li>getPositions()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e6e5f06995e3ef110824adc5f8b095e9">slsDetectorUsers</a><li>getReceiverVersion()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#f206092e2744e12ce6b717f4181d91a2">slsReceiverUsers</a><li>getThisSoftwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#547feb09262a2f0fa1ec4de82e92ab63">slsDetectorUsers</a><li>getThresholdEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#fe8029788742125c44383817f89214ca">slsDetectorUsers</a><li>getTimingMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e88a9626e4e661c1c0e1d27ba4a57d50">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
|
||||||
|
<li>initDataset()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#56fa8890298a01fc58baad413dfdf1c1">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
|
||||||
|
<li>npoints
|
||||||
|
: <a class="el" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">detectorData</a><li>npy
|
||||||
|
: <a class="el" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">detectorData</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
|
||||||
|
<li>progressIndex
|
||||||
|
: <a class="el" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">detectorData</a><li>putCommand()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5f7c26833decef59c1abfd7d745c4671">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
|
||||||
|
<li>readConfigurationFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">slsDetectorUsers</a><li>receiver
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">slsReceiverUsers</a><li>registerAcquisitionFinishedCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2a85e28ff08e3ec1e08bea3ba7d0fb08">slsDetectorUsers</a><li>registerCallBackAcquisitionFinished()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#7471d2945e8650eece86258e6ca56156">slsReceiverUsers</a><li>registerCallBackRawDataReady()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#343b9fac505e8c08a7fbf9efdd0f5762">slsReceiverUsers</a><li>registerCallBackStartAcquisition()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#5d4bb9244008d0bc570778230d30c5e3">slsReceiverUsers</a><li>registerConnectChannelsCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d1ab73675435879c2c5cef7adab02c32">slsDetectorUsers</a><li>registerDataCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">slsDetectorUsers</a><li>registerDisconnectChannelsCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a94dd8fce8548ba8e79201ec50fe27d6">slsDetectorUsers</a><li>registerGetI0Callback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1969785197030aa8e2d3c3d48a9cb45c">slsDetectorUsers</a><li>registerGetPositionCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c2b87416288e657a209e1374c778eb16">slsDetectorUsers</a><li>registerGoToPositionCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0f7c9bd3c46647d5dda2fa5312f3ef92">slsDetectorUsers</a><li>registerGoToPositionNoWaitCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e807e9f4a015a4bbcb22e36b80577ea5">slsDetectorUsers</a><li>registerRawDataCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#898cf0db148f0d3de7d4725cc8342c56">slsDetectorUsers</a><li>retrieveDetectorSetup()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">slsDetectorUsers</a><li>runStatusType()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
|
||||||
|
<li>setBeamEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#475938986407804877df4dcece97cc19">slsDetectorUsers</a><li>setBitDepth()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ff667cf0665154cdff5d5f3dbc3526ba">slsDetectorUsers</a><li>setDelayAfterTrigger()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#99f67fab7edfe68cc8b2300e282ff3f2">slsDetectorUsers</a><li>setDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">slsDetectorUsers</a><li>setExposurePeriod()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">slsDetectorUsers</a><li>setExposureTime()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">slsDetectorUsers</a><li>setFileIndex()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6b92ea7e237c77aa5107d7aabf76fe2d">slsDetectorUsers</a><li>setFileName()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ff4a8ff4852e50d4ec05204cbc7fea9e">slsDetectorUsers</a><li>setFilePath()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d833e1051299e101a5b5097c598ba9cb">slsDetectorUsers</a><li>setFlatFieldCorrectionDir()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#65b112dac3d8b94f219f4d64c13cf0f9">slsDetectorUsers</a><li>setFlatFieldCorrectionFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ad9e6da8683ba2887174505fd3b7d739">slsDetectorUsers</a><li>setNumberOfCycles()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8b741851c4eaef4e29322c99fd17cb3b">slsDetectorUsers</a><li>setNumberOfFrames()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">slsDetectorUsers</a><li>setNumberOfGates()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#61d4acb00c997c5e02be6a191401c4ce">slsDetectorUsers</a><li>setOnline()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">slsDetectorUsers</a><li>setPositions()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#f296c05ee6134fb8d53d08a025e89775">slsDetectorUsers</a><li>setReceiverMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#db084473ffe61960b86abdfa8efcc80d">slsDetectorUsers</a><li>setSettings()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">slsDetectorUsers</a><li>setThresholdEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1354266fd1bfaccd58992a3f51bbbd1d">slsDetectorUsers</a><li>setTimingMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e2825524756c4bdf418a6233e137b4d7">slsDetectorUsers</a><li>slsDetectorUsers()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#17323cd635b9e5c2916be3ca30ec748c">slsDetectorUsers</a><li>slsReceiverUsers()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#79a82ba94fbb19761c7701aa3901b8b1">slsReceiverUsers</a><li>start()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">slsReceiverUsers</a><li>startMeasurement()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">slsDetectorUsers</a><li>stop()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">slsReceiverUsers</a><li>stopMeasurement()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2abc673c45c1fe006f6b0fea6188e3a9">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
|
||||||
|
<li>values
|
||||||
|
: <a class="el" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">detectorData</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
|
||||||
|
<li>~detectorData()
|
||||||
|
: <a class="el" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">detectorData</a><li>~slsDetectorUsers()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0d1daf6539befe56d6e3df0b24f5d68b">slsDetectorUsers</a><li>~slsReceiverUsers()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#9b45943d81ce7a09543aa446de857cb0">slsReceiverUsers</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
151
manual/manual-api/slsDetectorUsersDocs/html/functions_func.html
Normal file
151
manual/manual-api/slsDetectorUsersDocs/html/functions_func.html
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class Members - Functions</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li id="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li id="current"><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_d"><span>d</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_g"><span>g</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
<li><a href="#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="#index_~"><span>~</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
|
||||||
|
<li>addFrame()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5128e295a5b926ccabdb48083d324789">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
|
||||||
|
<li>closeFile()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#bad0b3265826da2d9ebf48e59e9d5787">slsReceiverUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
|
||||||
|
<li>detectorData()
|
||||||
|
: <a class="el" href="classdetectorData.html#3f8538f5f634295fc40682b8aed47b31">detectorData</a><li>dumpDetectorSetup()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d6b968f4d520342324762c496ebeb481">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
|
||||||
|
<li>enableAngularConversion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#51f92b69e05e8ee2e0c547ec4a6e97da">slsDetectorUsers</a><li>enableCountRateCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#82efe2f57758d63d330d78b121f8e77e">slsDetectorUsers</a><li>enableFlatFieldCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#94c74499f7653116cd8aff9ec0d14c43">slsDetectorUsers</a><li>enablePixelMaskCorrection()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e5bc1c9c8e7e6cb7c9cde06a3133d263">slsDetectorUsers</a><li>enableWriteToFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6d54a79ae4cfdb808f5db9969537efd3">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
|
||||||
|
<li>finalizeDataset()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#9cbe00dac8a19b71de88ebbdf3b0ea29">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
|
||||||
|
<li>getBeamEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c9ea028f75a180534c8d00eeea0727d3">slsDetectorUsers</a><li>getCommand()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">slsDetectorUsers</a><li>getDetectorDeveloper()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">slsDetectorUsers</a><li>getDetectorFirmwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2cbba4518b585064f7870ae2d39a8b8b">slsDetectorUsers</a><li>getDetectorSerialNumber()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1c79314ceeda9b3085ca118e25882669">slsDetectorUsers</a><li>getDetectorSettings()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a66defec09b568a514e57b444dbe0d7f">slsDetectorUsers</a><li>getDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">slsDetectorUsers</a><li>getDetectorSoftwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1857f2afea58227cb96ad92f5e562a5e">slsDetectorUsers</a><li>getDetectorStatus()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">slsDetectorUsers</a><li>getDetectorType()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5292a3d9c12696512b81bcc6c579a03c">slsDetectorUsers</a><li>getFileIndex()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6e3467bf3c0c246f69f85d485d84dd62">slsDetectorUsers</a><li>getFileName()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5f30c83e8bf07a92fad0916d43e3799c">slsDetectorUsers</a><li>getFilePath()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#81969295c2b08f14e9c3d4fa1f7d4e16">slsDetectorUsers</a><li>getFlatFieldCorrectionDir()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0b20511a94205abd689f31bd1a2d4c18">slsDetectorUsers</a><li>getFlatFieldCorrectionFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a83083f73523557e6129f33b59f38327">slsDetectorUsers</a><li>getMaximumDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#588a5e1d231cd6778f6f78fdc53b9681">slsDetectorUsers</a><li>getModuleFirmwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#09ded3b9c81e4544d42bb0697c3b7624">slsDetectorUsers</a><li>getModuleSerialNumber()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5c0e9f8836e1a8a2d986408e4f5dfd3b">slsDetectorUsers</a><li>getPositions()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e6e5f06995e3ef110824adc5f8b095e9">slsDetectorUsers</a><li>getReceiverVersion()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#f206092e2744e12ce6b717f4181d91a2">slsReceiverUsers</a><li>getThisSoftwareVersion()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#547feb09262a2f0fa1ec4de82e92ab63">slsDetectorUsers</a><li>getThresholdEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#fe8029788742125c44383817f89214ca">slsDetectorUsers</a><li>getTimingMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e88a9626e4e661c1c0e1d27ba4a57d50">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
|
||||||
|
<li>initDataset()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#56fa8890298a01fc58baad413dfdf1c1">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
|
||||||
|
<li>putCommand()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#5f7c26833decef59c1abfd7d745c4671">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
|
||||||
|
<li>readConfigurationFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">slsDetectorUsers</a><li>registerAcquisitionFinishedCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2a85e28ff08e3ec1e08bea3ba7d0fb08">slsDetectorUsers</a><li>registerCallBackAcquisitionFinished()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#7471d2945e8650eece86258e6ca56156">slsReceiverUsers</a><li>registerCallBackRawDataReady()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#343b9fac505e8c08a7fbf9efdd0f5762">slsReceiverUsers</a><li>registerCallBackStartAcquisition()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#5d4bb9244008d0bc570778230d30c5e3">slsReceiverUsers</a><li>registerConnectChannelsCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d1ab73675435879c2c5cef7adab02c32">slsDetectorUsers</a><li>registerDataCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">slsDetectorUsers</a><li>registerDisconnectChannelsCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a94dd8fce8548ba8e79201ec50fe27d6">slsDetectorUsers</a><li>registerGetI0Callback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1969785197030aa8e2d3c3d48a9cb45c">slsDetectorUsers</a><li>registerGetPositionCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#c2b87416288e657a209e1374c778eb16">slsDetectorUsers</a><li>registerGoToPositionCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0f7c9bd3c46647d5dda2fa5312f3ef92">slsDetectorUsers</a><li>registerGoToPositionNoWaitCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e807e9f4a015a4bbcb22e36b80577ea5">slsDetectorUsers</a><li>registerRawDataCallback()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#898cf0db148f0d3de7d4725cc8342c56">slsDetectorUsers</a><li>retrieveDetectorSetup()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">slsDetectorUsers</a><li>runStatusType()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
|
||||||
|
<li>setBeamEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#475938986407804877df4dcece97cc19">slsDetectorUsers</a><li>setBitDepth()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ff667cf0665154cdff5d5f3dbc3526ba">slsDetectorUsers</a><li>setDelayAfterTrigger()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#99f67fab7edfe68cc8b2300e282ff3f2">slsDetectorUsers</a><li>setDetectorSize()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">slsDetectorUsers</a><li>setExposurePeriod()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">slsDetectorUsers</a><li>setExposureTime()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">slsDetectorUsers</a><li>setFileIndex()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#6b92ea7e237c77aa5107d7aabf76fe2d">slsDetectorUsers</a><li>setFileName()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ff4a8ff4852e50d4ec05204cbc7fea9e">slsDetectorUsers</a><li>setFilePath()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#d833e1051299e101a5b5097c598ba9cb">slsDetectorUsers</a><li>setFlatFieldCorrectionDir()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#65b112dac3d8b94f219f4d64c13cf0f9">slsDetectorUsers</a><li>setFlatFieldCorrectionFile()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ad9e6da8683ba2887174505fd3b7d739">slsDetectorUsers</a><li>setNumberOfCycles()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#8b741851c4eaef4e29322c99fd17cb3b">slsDetectorUsers</a><li>setNumberOfFrames()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">slsDetectorUsers</a><li>setNumberOfGates()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#61d4acb00c997c5e02be6a191401c4ce">slsDetectorUsers</a><li>setOnline()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">slsDetectorUsers</a><li>setPositions()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#f296c05ee6134fb8d53d08a025e89775">slsDetectorUsers</a><li>setReceiverMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#db084473ffe61960b86abdfa8efcc80d">slsDetectorUsers</a><li>setSettings()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">slsDetectorUsers</a><li>setThresholdEnergy()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#1354266fd1bfaccd58992a3f51bbbd1d">slsDetectorUsers</a><li>setTimingMode()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#e2825524756c4bdf418a6233e137b4d7">slsDetectorUsers</a><li>slsDetectorUsers()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#17323cd635b9e5c2916be3ca30ec748c">slsDetectorUsers</a><li>slsReceiverUsers()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#79a82ba94fbb19761c7701aa3901b8b1">slsReceiverUsers</a><li>start()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">slsReceiverUsers</a><li>startMeasurement()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">slsDetectorUsers</a><li>stop()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">slsReceiverUsers</a><li>stopMeasurement()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#2abc673c45c1fe006f6b0fea6188e3a9">slsDetectorUsers</a></ul>
|
||||||
|
<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
|
||||||
|
<li>~detectorData()
|
||||||
|
: <a class="el" href="classdetectorData.html#d32a037cc2bd6e8caf4556cbd4b88ec7">detectorData</a><li>~slsDetectorUsers()
|
||||||
|
: <a class="el" href="classslsDetectorUsers.html#0d1daf6539befe56d6e3df0b24f5d68b">slsDetectorUsers</a><li>~slsReceiverUsers()
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#9b45943d81ce7a09543aa446de857cb0">slsReceiverUsers</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class Members - Variables</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li id="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>angles
|
||||||
|
: <a class="el" href="classdetectorData.html#cc9f9708b9ff2d840208cae843fb4b7a">detectorData</a><li>errors
|
||||||
|
: <a class="el" href="classdetectorData.html#29cb1c6bb5635e918ae28505ccd0d8f9">detectorData</a><li>fileName
|
||||||
|
: <a class="el" href="classdetectorData.html#91d1e3466878def295a531c01bdeef6b">detectorData</a><li>npoints
|
||||||
|
: <a class="el" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">detectorData</a><li>npy
|
||||||
|
: <a class="el" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">detectorData</a><li>progressIndex
|
||||||
|
: <a class="el" href="classdetectorData.html#976b3287d46aed032487bbeed74132da">detectorData</a><li>receiver
|
||||||
|
: <a class="el" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">slsReceiverUsers</a><li>values
|
||||||
|
: <a class="el" href="classdetectorData.html#0f4e31d65f9616e83a2e5521453d0364">detectorData</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
36
manual/manual-api/slsDetectorUsersDocs/html/globals.html
Normal file
36
manual/manual-api/slsDetectorUsersDocs/html/globals.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class Members</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li id="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li id="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
Here is a list of all file members with links to the files they belong to:
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>dataCallback()
|
||||||
|
: <a class="el" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">mainClient.cpp</a><li>main()
|
||||||
|
: <a class="el" href="mainReceiver_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">mainReceiver.cpp</a>, <a class="el" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">mainClient.cpp</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Class Members</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li id="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li id="current"><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>dataCallback()
|
||||||
|
: <a class="el" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">mainClient.cpp</a><li>main()
|
||||||
|
: <a class="el" href="mainReceiver_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">mainReceiver.cpp</a>, <a class="el" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">mainClient.cpp</a></ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
49
manual/manual-api/slsDetectorUsersDocs/html/index.html
Normal file
49
manual/manual-api/slsDetectorUsersDocs/html/index.html
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Main Page</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li id="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1></h1>
|
||||||
|
<p>
|
||||||
|
<h1>API for SLS detectors data acquisition</h1>
|
||||||
|
<p>
|
||||||
|
<hr>
|
||||||
|
<p>
|
||||||
|
Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition<p>
|
||||||
|
The architecture of the acquisitions system is intended as follows: <ul>
|
||||||
|
<li>A socket server running on the detector (or more than one in some special cases) </li>
|
||||||
|
<li>C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS </li>
|
||||||
|
<li>the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities) </li>
|
||||||
|
<li>the possibility of running all commands from command line. In order to ensure a fast operation of this so called "text client" the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored </li>
|
||||||
|
<li>a Root library for data postprocessing and detector calibration (energy, angle).</li>
|
||||||
|
</ul>
|
||||||
|
<a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a> is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.<p>
|
||||||
|
<a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a> is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.<p>
|
||||||
|
<a class="el" href="classdetectorData.html">detectorData</a> is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.<p>
|
||||||
|
You can find examples of how this classes can be instatiated in <a class="el" href="mainClient_8cpp.html">mainClient.cpp</a> and <a class="el" href="mainReceiver_8cpp.html">mainReceiver.cpp</a><p>
|
||||||
|
<dl compact><dt><b>Authors:</b></dt><dd><a href="mailto:anna.bergamaschi@psi.ch">Anna Bergamaschi</a>, <a href="mailto:dhanya.maliakal@psi.ch">Dhanya Maliakal</a> </dd></dl>
|
||||||
|
<dl compact><dt><b>Version:</b></dt><dd>0.2 <h2>Currently supported detectors</h2>
|
||||||
|
</dd></dl>
|
||||||
|
<ul>
|
||||||
|
<li>MYTHEN </li>
|
||||||
|
<li>GOTTHARD controls </li>
|
||||||
|
<li>GOTTHARD data receiver <h3>Coming soon</h3>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li>EIGER </li>
|
||||||
|
</ul>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,97 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>mainClient.cpp Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>mainClient.cpp</h1><a href="mainClient_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
|
||||||
|
<a name="l00013"></a>00013 <span class="preprocessor">#include <iostream></span>
|
||||||
|
<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="slsDetectorUsers_8h.html">slsDetectorUsers.h</a>"</span>
|
||||||
|
<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="detectorData_8h.html">detectorData.h</a>"</span>
|
||||||
|
<a name="l00016"></a>00016
|
||||||
|
<a name="l00017"></a>00017
|
||||||
|
<a name="l00019"></a><a class="code" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">00019</a> <span class="keywordtype">int</span> <a class="code" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">dataCallback</a>(<a class="code" href="classdetectorData.html">detectorData</a> *pData, <span class="keywordtype">int</span> iframe, <span class="keywordtype">void</span> *pArg)
|
||||||
|
<a name="l00020"></a>00020 {
|
||||||
|
<a name="l00021"></a>00021 std::cout << <span class="stringliteral">"dataCallback: "</span> << pData-><a class="code" href="classdetectorData.html#50aabf6f2c40587f8e915cf4913a2cfe">npoints</a> << <span class="stringliteral">" "</span> << pData-><a class="code" href="classdetectorData.html#c289d259e7fd9445a9c04976a82cb324">npy</a> << <span class="stringliteral">"Frame number: "</span> << iframe << std::endl;
|
||||||
|
<a name="l00022"></a>00022 }
|
||||||
|
<a name="l00023"></a>00023
|
||||||
|
<a name="l00024"></a>00024
|
||||||
|
<a name="l00026"></a><a class="code" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">00026</a> <span class="keywordtype">int</span> <a class="code" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[]) {
|
||||||
|
<a name="l00027"></a>00027 <span class="keywordtype">int</span> <span class="keywordtype">id</span>=0;
|
||||||
|
<a name="l00028"></a>00028 <span class="keywordtype">int</span> status;
|
||||||
|
<a name="l00030"></a>00030 <span class="keywordflow">if</span> (argc>=3)
|
||||||
|
<a name="l00031"></a>00031 <span class="keywordtype">id</span>=atoi(argv[2]);
|
||||||
|
<a name="l00032"></a>00032
|
||||||
|
<a name="l00033"></a>00033
|
||||||
|
<a name="l00034"></a>00034
|
||||||
|
<a name="l00036"></a>00036 <a class="code" href="classslsDetectorUsers.html">slsDetectorUsers</a> *pDetector = <span class="keyword">new</span> <a class="code" href="classslsDetectorUsers.html">slsDetectorUsers</a> (<span class="keywordtype">id</span>);
|
||||||
|
<a name="l00037"></a>00037
|
||||||
|
<a name="l00038"></a>00038
|
||||||
|
<a name="l00040"></a>00040 <span class="keywordflow">if</span> (argc>=2)
|
||||||
|
<a name="l00041"></a>00041 pDetector-><a class="code" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">readConfigurationFile</a>(argv[1]);
|
||||||
|
<a name="l00042"></a>00042
|
||||||
|
<a name="l00044"></a>00044 pDetector-><a class="code" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">setOnline</a>(1);
|
||||||
|
<a name="l00045"></a>00045
|
||||||
|
<a name="l00047"></a>00047 <span class="keywordflow">if</span> (argc>=3)
|
||||||
|
<a name="l00048"></a>00048 pDetector-><a class="code" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">retrieveDetectorSetup</a>( argv[2]);
|
||||||
|
<a name="l00049"></a>00049 <span class="keywordflow">else</span>{
|
||||||
|
<a name="l00051"></a>00051 <span class="keywordtype">int</span> minX, minY=0, sizeX, sizeY=1;
|
||||||
|
<a name="l00052"></a>00052 pDetector-><a class="code" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">getDetectorSize</a>(minX, minY, sizeX, sizeY);
|
||||||
|
<a name="l00053"></a>00053 std::cout << <span class="stringliteral">"X: Start="</span> << minX << <span class="stringliteral">", Size= "</span> << sizeX << std::endl;
|
||||||
|
<a name="l00054"></a>00054 std::cout << <span class="stringliteral">"Y: Start="</span> << minY << <span class="stringliteral">", Size= "</span> << sizeY << std::endl;
|
||||||
|
<a name="l00055"></a>00055 pDetector-><a class="code" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">setDetectorSize</a>(0,0,7680,1);
|
||||||
|
<a name="l00056"></a>00056 std::cout << pDetector-><a class="code" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">getDetectorDeveloper</a>() << std::endl;
|
||||||
|
<a name="l00057"></a>00057
|
||||||
|
<a name="l00059"></a>00059 pDetector-><a class="code" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">registerDataCallback</a>(&<a class="code" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">dataCallback</a>, NULL);
|
||||||
|
<a name="l00060"></a>00060
|
||||||
|
<a name="l00062"></a>00062 status = pDetector-><a class="code" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">getDetectorStatus</a>();
|
||||||
|
<a name="l00063"></a>00063 <span class="keywordflow">if</span> (status != 0){
|
||||||
|
<a name="l00064"></a>00064 std::cout << <span class="stringliteral">"Detector not ready: "</span> << <a class="code" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">slsDetectorUsers::runStatusType</a>(status) << std::endl;
|
||||||
|
<a name="l00065"></a>00065 <span class="keywordflow">return</span> 1;
|
||||||
|
<a name="l00066"></a>00066 }
|
||||||
|
<a name="l00067"></a>00067
|
||||||
|
<a name="l00069"></a>00069 std::cout << <span class="stringliteral">"settings: "</span> << <a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">slsDetectorUsers::getDetectorSettings</a>(pDetector-><a class="code" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">setSettings</a>()) << std::endl;
|
||||||
|
<a name="l00070"></a>00070 pDetector-><a class="code" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">setSettings</a>(<a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">slsDetectorUsers::getDetectorSettings</a>(<span class="stringliteral">"veryhighgain"</span>));
|
||||||
|
<a name="l00071"></a>00071 std::cout << <span class="stringliteral">"settings: "</span> << <a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">slsDetectorUsers::getDetectorSettings</a>(pDetector-><a class="code" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">setSettings</a>()) << std::endl;
|
||||||
|
<a name="l00072"></a>00072
|
||||||
|
<a name="l00074"></a>00074 pDetector-><a class="code" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">setExposureTime</a>(10000000);
|
||||||
|
<a name="l00075"></a>00075
|
||||||
|
<a name="l00077"></a>00077 pDetector-><a class="code" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">setExposurePeriod</a>(100000000);
|
||||||
|
<a name="l00078"></a>00078
|
||||||
|
<a name="l00080"></a>00080 pDetector-><a class="code" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">setNumberOfFrames</a>(30);
|
||||||
|
<a name="l00081"></a>00081 }
|
||||||
|
<a name="l00083"></a>00083 pDetector-><a class="code" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">startMeasurement</a>();
|
||||||
|
<a name="l00084"></a>00084
|
||||||
|
<a name="l00085"></a>00085 <span class="keywordflow">while</span> (1) {
|
||||||
|
<a name="l00086"></a>00086 usleep(100000);
|
||||||
|
<a name="l00087"></a>00087 status = pDetector-><a class="code" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">getDetectorStatus</a>();
|
||||||
|
<a name="l00088"></a>00088 <span class="keywordflow">if</span> (status == 0 || status == 1|| status == 3)
|
||||||
|
<a name="l00089"></a>00089 <span class="keywordflow">break</span>;
|
||||||
|
<a name="l00090"></a>00090 }
|
||||||
|
<a name="l00091"></a>00091
|
||||||
|
<a name="l00092"></a>00092 <span class="keywordtype">char</span> *temp[] = {<span class="stringliteral">"receiver"</span>, NULL};
|
||||||
|
<a name="l00094"></a>00094 std::cout << <span class="stringliteral">"answer to a get command:"</span> << pDetector-><a class="code" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">getCommand</a>(1,temp,0) << std::endl;
|
||||||
|
<a name="l00095"></a>00095
|
||||||
|
<a name="l00096"></a>00096 <span class="keyword">delete</span> pDetector;
|
||||||
|
<a name="l00097"></a>00097
|
||||||
|
<a name="l00098"></a>00098 <span class="keywordflow">return</span> 0;
|
||||||
|
<a name="l00099"></a>00099 }
|
||||||
|
<a name="l00100"></a>00100
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
132
manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html
Normal file
132
manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>mainClient.cpp File Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>mainClient.cpp File Reference</h1><code>#include <iostream></code><br>
|
||||||
|
<code>#include "<a class="el" href="slsDetectorUsers_8h-source.html">slsDetectorUsers.h</a>"</code><br>
|
||||||
|
<code>#include "<a class="el" href="detectorData_8h-source.html">detectorData.h</a>"</code><br>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="mainClient_8cpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mainClient_8cpp.html#21ef7438e7f0ed24a190513fb8e6af8a">dataCallback</a> (<a class="el" href="classdetectorData.html">detectorData</a> *pData, int iframe, void *pArg)</td></tr>
|
||||||
|
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
This file is an example of how to implement the <a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a> class You can compile it linking it to the slsDetector library<p>
|
||||||
|
gcc <a class="el" href="mainClient_8cpp.html">mainClient.cpp</a> -L lib -l SlsDetector -lm -lpthread<p>
|
||||||
|
where lib is the location of libSlsDetector.so
|
||||||
|
<p>
|
||||||
|
Definition in file <a class="el" href="mainClient_8cpp-source.html">mainClient.cpp</a>.<hr><h2>Function Documentation</h2>
|
||||||
|
<a class="anchor" name="21ef7438e7f0ed24a190513fb8e6af8a"></a><!-- doxytag: member="mainClient.cpp::dataCallback" ref="21ef7438e7f0ed24a190513fb8e6af8a" args="(detectorData *pData, int iframe, void *pArg)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int dataCallback </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="classdetectorData.html">detectorData</a> * </td>
|
||||||
|
<td class="paramname"> <em>pData</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>iframe</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"> <em>pArg</em></td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition of the data callback which simply prints out the number of points received and teh frame number
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="mainClient_8cpp-source.html#l00019">19</a> of file <a class="el" href="mainClient_8cpp-source.html">mainClient.cpp</a>.
|
||||||
|
<p>
|
||||||
|
References <a class="el" href="detectorData_8h-source.html#l00032">detectorData::npoints</a>, and <a class="el" href="detectorData_8h-source.html#l00033">detectorData::npy</a>.
|
||||||
|
<p>
|
||||||
|
Referenced by <a class="el" href="mainClient_8cpp-source.html#l00026">main()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="mainClient.cpp::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int main </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>argc</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">char * </td>
|
||||||
|
<td class="paramname"> <em>argv</em>[]</td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
example of a main program using the <a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a> class
|
||||||
|
<p>
|
||||||
|
if specified, argv[2] is used as detector ID (default is 0)<p>
|
||||||
|
<a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a> is instantiated<p>
|
||||||
|
if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)<p>
|
||||||
|
Setting the detector online (should be by default<p>
|
||||||
|
Load setup file if argv[2] specified<p>
|
||||||
|
defining the detector size<p>
|
||||||
|
registering data callback<p>
|
||||||
|
checking detector status and exiting if not idle<p>
|
||||||
|
checking and setting detector settings<p>
|
||||||
|
Settings exposure time to 10ms<p>
|
||||||
|
Settings exposure time to 100ms<p>
|
||||||
|
Settingsnumber of frames to 30<p>
|
||||||
|
start measurement<p>
|
||||||
|
returning when acquisition is finished or data are avilable
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="mainClient_8cpp-source.html#l00026">26</a> of file <a class="el" href="mainClient_8cpp-source.html">mainClient.cpp</a>.
|
||||||
|
<p>
|
||||||
|
References <a class="el" href="mainClient_8cpp-source.html#l00019">dataCallback()</a>, <a class="el" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">slsDetectorUsers::getCommand()</a>, <a class="el" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">slsDetectorUsers::getDetectorDeveloper()</a>, <a class="el" href="slsDetectorUsers_8h-source.html#l00575">slsDetectorUsers::getDetectorSettings()</a>, <a class="el" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">slsDetectorUsers::getDetectorSize()</a>, <a class="el" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">slsDetectorUsers::getDetectorStatus()</a>, <a class="el" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">slsDetectorUsers::readConfigurationFile()</a>, <a class="el" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">slsDetectorUsers::registerDataCallback()</a>, <a class="el" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">slsDetectorUsers::retrieveDetectorSetup()</a>, <a class="el" href="slsDetectorUsers_8h-source.html#l00557">slsDetectorUsers::runStatusType()</a>, <a class="el" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">slsDetectorUsers::setDetectorSize()</a>, <a class="el" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">slsDetectorUsers::setExposurePeriod()</a>, <a class="el" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">slsDetectorUsers::setExposureTime()</a>, <a class="el" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">slsDetectorUsers::setNumberOfFrames()</a>, <a class="el" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">slsDetectorUsers::setOnline()</a>, <a class="el" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">slsDetectorUsers::setSettings()</a>, and <a class="el" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">slsDetectorUsers::startMeasurement()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,112 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>mainReceiver.cpp Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>mainReceiver.cpp</h1><a href="mainReceiver_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* A simple server in the internet domain using TCP</span>
|
||||||
|
<a name="l00002"></a>00002 <span class="comment"> The port number is passed as an argument </span>
|
||||||
|
<a name="l00003"></a>00003 <span class="comment">*/</span>
|
||||||
|
<a name="l00004"></a>00004
|
||||||
|
<a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="slsReceiverUsers_8h.html">slsReceiverUsers.h</a>"</span>
|
||||||
|
<a name="l00019"></a>00019
|
||||||
|
<a name="l00020"></a>00020
|
||||||
|
<a name="l00021"></a>00021 <span class="preprocessor">#include <iostream></span>
|
||||||
|
<a name="l00022"></a>00022 <span class="keyword">using namespace </span>std;
|
||||||
|
<a name="l00023"></a>00023
|
||||||
|
<a name="l00024"></a>00024
|
||||||
|
<a name="l00025"></a><a class="code" href="mainReceiver_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">00025</a> <span class="keywordtype">int</span> <a class="code" href="mainClient_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[]) {
|
||||||
|
<a name="l00026"></a>00026 <span class="keywordtype">int</span> ret = 0;
|
||||||
|
<a name="l00027"></a>00027
|
||||||
|
<a name="l00028"></a>00028
|
||||||
|
<a name="l00029"></a>00029 <span class="comment">/*</span>
|
||||||
|
<a name="l00030"></a>00030 <span class="comment"> Instantiate the slsReceieverUsers class</span>
|
||||||
|
<a name="l00031"></a>00031 <span class="comment"> The port number is passed as an argument</span>
|
||||||
|
<a name="l00032"></a>00032 <span class="comment">*/</span>
|
||||||
|
<a name="l00033"></a>00033 <a class="code" href="classslsReceiverUsers.html">slsReceiverUsers</a> *receiver = <span class="keyword">new</span> <a class="code" href="classslsReceiverUsers.html">slsReceiverUsers</a>(argc, argv, ret);
|
||||||
|
<a name="l00034"></a>00034
|
||||||
|
<a name="l00035"></a>00035 <span class="comment">/*</span>
|
||||||
|
<a name="l00036"></a>00036 <span class="comment"> return if could not open TCP socket for interfacing to client </span>
|
||||||
|
<a name="l00037"></a>00037 <span class="comment"> */</span>
|
||||||
|
<a name="l00038"></a>00038 <span class="keywordflow">if</span>(ret==1)
|
||||||
|
<a name="l00039"></a>00039 <span class="keywordflow">return</span> -1;
|
||||||
|
<a name="l00040"></a>00040
|
||||||
|
<a name="l00041"></a>00041
|
||||||
|
<a name="l00042"></a>00042 <span class="comment">/*register callbacks */</span>
|
||||||
|
<a name="l00043"></a>00043
|
||||||
|
<a name="l00044"></a>00044
|
||||||
|
<a name="l00045"></a>00045 <span class="comment">/*</span>
|
||||||
|
<a name="l00046"></a>00046 <span class="comment"> callback arguments are</span>
|
||||||
|
<a name="l00047"></a>00047 <span class="comment"> filepath</span>
|
||||||
|
<a name="l00048"></a>00048 <span class="comment"> filename</span>
|
||||||
|
<a name="l00049"></a>00049 <span class="comment"> fileindex</span>
|
||||||
|
<a name="l00050"></a>00050 <span class="comment"> datasize</span>
|
||||||
|
<a name="l00051"></a>00051 <span class="comment"> </span>
|
||||||
|
<a name="l00052"></a>00052 <span class="comment"> return value is </span>
|
||||||
|
<a name="l00053"></a>00053 <span class="comment"> 0 raw data ready callback takes care of open,close,write file</span>
|
||||||
|
<a name="l00054"></a>00054 <span class="comment"> 1 callback writes file, we have to open, close it</span>
|
||||||
|
<a name="l00055"></a>00055 <span class="comment"> 2 we open, close, write file, callback does not do anything</span>
|
||||||
|
<a name="l00056"></a>00056 <span class="comment"></span>
|
||||||
|
<a name="l00057"></a>00057 <span class="comment"></span>
|
||||||
|
<a name="l00058"></a>00058 <span class="comment"> registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);</span>
|
||||||
|
<a name="l00059"></a>00059 <span class="comment"> */</span>
|
||||||
|
<a name="l00060"></a>00060
|
||||||
|
<a name="l00061"></a>00061 <span class="comment">//receiver->registerCallBackStartAcquisition(func,arg);</span>
|
||||||
|
<a name="l00062"></a>00062
|
||||||
|
<a name="l00063"></a>00063
|
||||||
|
<a name="l00064"></a>00064 <span class="comment">/*</span>
|
||||||
|
<a name="l00065"></a>00065 <span class="comment"> callback argument is</span>
|
||||||
|
<a name="l00066"></a>00066 <span class="comment"> total farmes caught</span>
|
||||||
|
<a name="l00067"></a>00067 <span class="comment"> registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);</span>
|
||||||
|
<a name="l00068"></a>00068 <span class="comment"> */</span>
|
||||||
|
<a name="l00069"></a>00069
|
||||||
|
<a name="l00070"></a>00070
|
||||||
|
<a name="l00071"></a>00071 <span class="comment">//receiver->registerCallBackAcquisitionFinished(func,arg);</span>
|
||||||
|
<a name="l00072"></a>00072
|
||||||
|
<a name="l00073"></a>00073
|
||||||
|
<a name="l00074"></a>00074
|
||||||
|
<a name="l00075"></a>00075 <span class="comment">/*</span>
|
||||||
|
<a name="l00076"></a>00076 <span class="comment"> args to raw data ready callback are</span>
|
||||||
|
<a name="l00077"></a>00077 <span class="comment"> framenum</span>
|
||||||
|
<a name="l00078"></a>00078 <span class="comment"> datapointer</span>
|
||||||
|
<a name="l00079"></a>00079 <span class="comment"> file descriptor</span>
|
||||||
|
<a name="l00080"></a>00080 <span class="comment"> guidatapointer (NULL, no data required)</span>
|
||||||
|
<a name="l00081"></a>00081 <span class="comment"> </span>
|
||||||
|
<a name="l00082"></a>00082 <span class="comment"> NEVER DELETE THE DATA POINTER</span>
|
||||||
|
<a name="l00083"></a>00083 <span class="comment"> REMEMBER THAT THE CALLBACK IS BLOCKING</span>
|
||||||
|
<a name="l00084"></a>00084 <span class="comment"></span>
|
||||||
|
<a name="l00085"></a>00085 <span class="comment"> registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);</span>
|
||||||
|
<a name="l00086"></a>00086 <span class="comment"></span>
|
||||||
|
<a name="l00087"></a>00087 <span class="comment"> */</span>
|
||||||
|
<a name="l00088"></a>00088
|
||||||
|
<a name="l00089"></a>00089 <span class="comment">//receiver->registerCallBackRawDataReady(func,arg);</span>
|
||||||
|
<a name="l00090"></a>00090
|
||||||
|
<a name="l00091"></a>00091
|
||||||
|
<a name="l00092"></a>00092 <span class="comment">/* start receiver to listen for commands from the client (and data from detectors when expected */</span>
|
||||||
|
<a name="l00093"></a>00093 receiver-><a class="code" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">start</a>();
|
||||||
|
<a name="l00094"></a>00094
|
||||||
|
<a name="l00096"></a>00096 usleep(10000000);
|
||||||
|
<a name="l00097"></a>00097
|
||||||
|
<a name="l00099"></a>00099 receiver-><a class="code" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">stop</a>();
|
||||||
|
<a name="l00100"></a>00100
|
||||||
|
<a name="l00101"></a>00101 <span class="keywordflow">return</span> 0;
|
||||||
|
<a name="l00102"></a>00102 }
|
||||||
|
<a name="l00103"></a>00103
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>mainReceiver.cpp File Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>mainReceiver.cpp File Reference</h1><code>#include "<a class="el" href="slsReceiverUsers_8h-source.html">slsReceiverUsers.h</a>"</code><br>
|
||||||
|
<code>#include <iostream></code><br>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="mainReceiver_8cpp-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mainReceiver_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<hr><a name="_details"></a><h2>Detailed Description</h2>
|
||||||
|
This file is an example of how to implement the <a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a> class You can compile it linking it to the slsDetector library<p>
|
||||||
|
gcc <a class="el" href="mainReceiver_8cpp.html">mainReceiver.cpp</a> -L lib -l SlsDetector -lm -lpthread<p>
|
||||||
|
where lib is the location of libSlsDetector.so
|
||||||
|
<p>
|
||||||
|
Definition in file <a class="el" href="mainReceiver_8cpp-source.html">mainReceiver.cpp</a>.<hr><h2>Function Documentation</h2>
|
||||||
|
<a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="mainReceiver.cpp::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int main </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"> <em>argc</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">char * </td>
|
||||||
|
<td class="paramname"> <em>argv</em>[]</td><td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td><td width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Definition at line <a class="el" href="mainReceiver_8cpp-source.html#l00025">25</a> of file <a class="el" href="mainReceiver_8cpp-source.html">mainReceiver.cpp</a>.
|
||||||
|
<p>
|
||||||
|
References <a class="el" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">slsReceiverUsers::start()</a>, and <a class="el" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">slsReceiverUsers::stop()</a>.
|
||||||
|
</div>
|
||||||
|
</div><p>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
22
manual/manual-api/slsDetectorUsersDocs/html/namespaces.html
Normal file
22
manual/manual-api/slsDetectorUsersDocs/html/namespaces.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>Namespace Index</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li id="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>Namespace List</h1>Here is a list of all namespaces with brief descriptions:<table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>std Namespace Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li id="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>std Namespace Reference</h1>
|
||||||
|
<p>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,258 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>slsDetectorUsers.h Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsDetectorUsers.h</h1><a href="slsDetectorUsers_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef SLS_DETECTOR_USERS_H</span>
|
||||||
|
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define SLS_DETECTOR_USERS_H</span>
|
||||||
|
<a name="l00003"></a>00003 <span class="preprocessor"></span>
|
||||||
|
<a name="l00004"></a>00004
|
||||||
|
<a name="l00005"></a>00005
|
||||||
|
<a name="l00016"></a>00016 <span class="keyword">class </span><a class="code" href="classdetectorData.html">detectorData</a>;
|
||||||
|
<a name="l00017"></a>00017 <span class="keyword">class </span>multiSlsDetector;
|
||||||
|
<a name="l00018"></a>00018 <span class="keyword">class </span>multiSlsDetectorCommand;
|
||||||
|
<a name="l00019"></a>00019
|
||||||
|
<a name="l00020"></a>00020
|
||||||
|
<a name="l00021"></a>00021 <span class="preprocessor">#include <stdint.h></span>
|
||||||
|
<a name="l00022"></a>00022 <span class="preprocessor">#include <string></span>
|
||||||
|
<a name="l00023"></a>00023
|
||||||
|
<a name="l00024"></a>00024
|
||||||
|
<a name="l00025"></a>00025 <span class="keyword">using namespace </span>std;
|
||||||
|
<a name="l00026"></a>00026
|
||||||
|
<a name="l00027"></a>00027
|
||||||
|
<a name="l00028"></a>00028
|
||||||
|
<a name="l00029"></a>00029 <span class="comment">/*</span>
|
||||||
|
<a name="l00030"></a>00030 <span class="comment"> \mainpage </span>
|
||||||
|
<a name="l00031"></a>00031 <span class="comment"><CENTER><H1>API for SLS detectors data acquisition</H1></CENTER></span>
|
||||||
|
<a name="l00032"></a>00032 <span class="comment"><HR></span>
|
||||||
|
<a name="l00033"></a>00033 <span class="comment">*/</span>
|
||||||
|
<a name="l00084"></a><a class="code" href="classslsDetectorUsers.html">00084</a> <span class="keyword">class </span><a class="code" href="classslsDetectorUsers.html">slsDetectorUsers</a>
|
||||||
|
<a name="l00085"></a>00085 {
|
||||||
|
<a name="l00086"></a>00086
|
||||||
|
<a name="l00087"></a>00087 <span class="keyword">public</span>:
|
||||||
|
<a name="l00088"></a>00088
|
||||||
|
<a name="l00090"></a>00090 <a class="code" href="classslsDetectorUsers.html#17323cd635b9e5c2916be3ca30ec748c">slsDetectorUsers</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>=0);
|
||||||
|
<a name="l00091"></a>00091
|
||||||
|
<a name="l00092"></a>00092
|
||||||
|
<a name="l00094"></a>00094 <span class="keyword">virtual</span> <a class="code" href="classslsDetectorUsers.html#0d1daf6539befe56d6e3df0b24f5d68b">~slsDetectorUsers</a>();
|
||||||
|
<a name="l00095"></a>00095
|
||||||
|
<a name="l00096"></a>00096
|
||||||
|
<a name="l00097"></a>00097
|
||||||
|
<a name="l00102"></a>00102 string <a class="code" href="classslsDetectorUsers.html#30c2ba51c33cc914f290a0b7891da4ec">getDetectorDeveloper</a>();
|
||||||
|
<a name="l00103"></a>00103
|
||||||
|
<a name="l00104"></a>00104
|
||||||
|
<a name="l00105"></a>00105
|
||||||
|
<a name="l00110"></a>00110 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#ee622153ebd6b0dad065d95b07221955">setOnline</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> online=-1);
|
||||||
|
<a name="l00111"></a>00111
|
||||||
|
<a name="l00116"></a>00116 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#a34810bb0e872fdf929ebe62d8582bd3">startMeasurement</a>();
|
||||||
|
<a name="l00117"></a>00117
|
||||||
|
<a name="l00122"></a>00122 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#2abc673c45c1fe006f6b0fea6188e3a9">stopMeasurement</a>();
|
||||||
|
<a name="l00123"></a>00123
|
||||||
|
<a name="l00128"></a>00128 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#c7d0254e38b8fe783204f691a4ee05b2">getDetectorStatus</a>();
|
||||||
|
<a name="l00129"></a>00129
|
||||||
|
<a name="l00133"></a>00133 string <a class="code" href="classslsDetectorUsers.html#81969295c2b08f14e9c3d4fa1f7d4e16">getFilePath</a>();
|
||||||
|
<a name="l00134"></a>00134
|
||||||
|
<a name="l00140"></a>00140 string <a class="code" href="classslsDetectorUsers.html#d833e1051299e101a5b5097c598ba9cb">setFilePath</a>(string s);
|
||||||
|
<a name="l00141"></a>00141
|
||||||
|
<a name="l00146"></a>00146 string <a class="code" href="classslsDetectorUsers.html#5f30c83e8bf07a92fad0916d43e3799c">getFileName</a>();
|
||||||
|
<a name="l00147"></a>00147
|
||||||
|
<a name="l00154"></a>00154 string <a class="code" href="classslsDetectorUsers.html#ff4a8ff4852e50d4ec05204cbc7fea9e">setFileName</a>(string s);
|
||||||
|
<a name="l00155"></a>00155
|
||||||
|
<a name="l00160"></a>00160 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#6e3467bf3c0c246f69f85d485d84dd62">getFileIndex</a>();
|
||||||
|
<a name="l00161"></a>00161
|
||||||
|
<a name="l00167"></a>00167 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#6b92ea7e237c77aa5107d7aabf76fe2d">setFileIndex</a>(<span class="keywordtype">int</span> i);
|
||||||
|
<a name="l00168"></a>00168
|
||||||
|
<a name="l00173"></a>00173 string <a class="code" href="classslsDetectorUsers.html#0b20511a94205abd689f31bd1a2d4c18">getFlatFieldCorrectionDir</a>();
|
||||||
|
<a name="l00174"></a>00174
|
||||||
|
<a name="l00180"></a>00180 string <a class="code" href="classslsDetectorUsers.html#65b112dac3d8b94f219f4d64c13cf0f9">setFlatFieldCorrectionDir</a>(string dir);
|
||||||
|
<a name="l00181"></a>00181
|
||||||
|
<a name="l00186"></a>00186 string <a class="code" href="classslsDetectorUsers.html#a83083f73523557e6129f33b59f38327">getFlatFieldCorrectionFile</a>();
|
||||||
|
<a name="l00187"></a>00187
|
||||||
|
<a name="l00193"></a>00193 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#ad9e6da8683ba2887174505fd3b7d739">setFlatFieldCorrectionFile</a>(string fname=<span class="stringliteral">""</span>);
|
||||||
|
<a name="l00194"></a>00194
|
||||||
|
<a name="l00195"></a>00195
|
||||||
|
<a name="l00196"></a>00196
|
||||||
|
<a name="l00202"></a>00202 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#94c74499f7653116cd8aff9ec0d14c43">enableFlatFieldCorrection</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00203"></a>00203
|
||||||
|
<a name="l00209"></a>00209 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#82efe2f57758d63d330d78b121f8e77e">enableCountRateCorrection</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00210"></a>00210
|
||||||
|
<a name="l00216"></a>00216 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#e5bc1c9c8e7e6cb7c9cde06a3133d263">enablePixelMaskCorrection</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00217"></a>00217
|
||||||
|
<a name="l00223"></a>00223 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#51f92b69e05e8ee2e0c547ec4a6e97da">enableAngularConversion</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00224"></a>00224
|
||||||
|
<a name="l00227"></a>00227 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#6d54a79ae4cfdb808f5db9969537efd3">enableWriteToFile</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00228"></a>00228
|
||||||
|
<a name="l00235"></a>00235 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#f296c05ee6134fb8d53d08a025e89775">setPositions</a>(<span class="keywordtype">int</span> nPos, <span class="keywordtype">double</span> *pos);
|
||||||
|
<a name="l00236"></a>00236
|
||||||
|
<a name="l00242"></a>00242 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#e6e5f06995e3ef110824adc5f8b095e9">getPositions</a>(<span class="keywordtype">double</span> *pos=NULL);
|
||||||
|
<a name="l00243"></a>00243
|
||||||
|
<a name="l00252"></a>00252 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#42c97d03516a2457f8e9a98a16a9a43d">setDetectorSize</a>(<span class="keywordtype">int</span> x0=-1, <span class="keywordtype">int</span> y0=-1, <span class="keywordtype">int</span> nx=-1, <span class="keywordtype">int</span> ny=-1);
|
||||||
|
<a name="l00253"></a>00253
|
||||||
|
<a name="l00254"></a>00254
|
||||||
|
<a name="l00263"></a>00263 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#7f4fb3cefff5f0175cd2e4fd57ee1be4">getDetectorSize</a>(<span class="keywordtype">int</span> &x0, <span class="keywordtype">int</span> &y0, <span class="keywordtype">int</span> &nx, <span class="keywordtype">int</span> &ny);
|
||||||
|
<a name="l00272"></a>00272 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#588a5e1d231cd6778f6f78fdc53b9681">getMaximumDetectorSize</a>(<span class="keywordtype">int</span> &nx, <span class="keywordtype">int</span> &ny);
|
||||||
|
<a name="l00273"></a>00273
|
||||||
|
<a name="l00274"></a>00274
|
||||||
|
<a name="l00280"></a>00280 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#ff667cf0665154cdff5d5f3dbc3526ba">setBitDepth</a>(<span class="keywordtype">int</span> i=-1);
|
||||||
|
<a name="l00281"></a>00281
|
||||||
|
<a name="l00282"></a>00282
|
||||||
|
<a name="l00283"></a>00283
|
||||||
|
<a name="l00289"></a>00289 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#31b25d2659d3b244bb10b5516a9fd957">setSettings</a>(<span class="keywordtype">int</span> isettings=-1);
|
||||||
|
<a name="l00290"></a>00290
|
||||||
|
<a name="l00295"></a>00295 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#fe8029788742125c44383817f89214ca">getThresholdEnergy</a>();
|
||||||
|
<a name="l00296"></a>00296
|
||||||
|
<a name="l00297"></a>00297
|
||||||
|
<a name="l00303"></a>00303 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#1354266fd1bfaccd58992a3f51bbbd1d">setThresholdEnergy</a>(<span class="keywordtype">int</span> e_eV);
|
||||||
|
<a name="l00304"></a>00304
|
||||||
|
<a name="l00309"></a>00309 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#c9ea028f75a180534c8d00eeea0727d3">getBeamEnergy</a>();
|
||||||
|
<a name="l00310"></a>00310
|
||||||
|
<a name="l00311"></a>00311
|
||||||
|
<a name="l00317"></a>00317 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#475938986407804877df4dcece97cc19">setBeamEnergy</a>(<span class="keywordtype">int</span> e_eV);
|
||||||
|
<a name="l00318"></a>00318
|
||||||
|
<a name="l00326"></a>00326 <span class="keywordtype">double</span> <a class="code" href="classslsDetectorUsers.html#134225893d41bc97e9f1d645e035a04a">setExposureTime</a>(<span class="keywordtype">double</span> t=-1, <span class="keywordtype">bool</span> inseconds=<span class="keyword">false</span>);
|
||||||
|
<a name="l00327"></a>00327
|
||||||
|
<a name="l00334"></a>00334 <span class="keywordtype">double</span> <a class="code" href="classslsDetectorUsers.html#cac89084aba58ebe81420c7c9ac4217a">setExposurePeriod</a>(<span class="keywordtype">double</span> t=-1, <span class="keywordtype">bool</span> inseconds=<span class="keyword">false</span>);
|
||||||
|
<a name="l00335"></a>00335
|
||||||
|
<a name="l00342"></a>00342 <span class="keywordtype">double</span> <a class="code" href="classslsDetectorUsers.html#99f67fab7edfe68cc8b2300e282ff3f2">setDelayAfterTrigger</a>(<span class="keywordtype">double</span> t=-1, <span class="keywordtype">bool</span> inseconds=<span class="keyword">false</span>);
|
||||||
|
<a name="l00343"></a>00343
|
||||||
|
<a name="l00349"></a>00349 int64_t <a class="code" href="classslsDetectorUsers.html#61d4acb00c997c5e02be6a191401c4ce">setNumberOfGates</a>(int64_t t=-1);
|
||||||
|
<a name="l00350"></a>00350
|
||||||
|
<a name="l00356"></a>00356 int64_t <a class="code" href="classslsDetectorUsers.html#fc82f608bf74d10f3aa866bff94cbbab">setNumberOfFrames</a>(int64_t t=-1);
|
||||||
|
<a name="l00357"></a>00357
|
||||||
|
<a name="l00363"></a>00363 int64_t <a class="code" href="classslsDetectorUsers.html#8b741851c4eaef4e29322c99fd17cb3b">setNumberOfCycles</a>(int64_t t=-1);
|
||||||
|
<a name="l00364"></a>00364
|
||||||
|
<a name="l00365"></a>00365
|
||||||
|
<a name="l00371"></a>00371 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#e2825524756c4bdf418a6233e137b4d7">setTimingMode</a>(<span class="keywordtype">int</span> pol=-1);
|
||||||
|
<a name="l00372"></a>00372
|
||||||
|
<a name="l00378"></a>00378 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#8aeda7c2cbc270c7f8756761823e8d95">readConfigurationFile</a>(string <span class="keyword">const</span> fname);
|
||||||
|
<a name="l00379"></a>00379
|
||||||
|
<a name="l00380"></a>00380
|
||||||
|
<a name="l00387"></a>00387 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#d6b968f4d520342324762c496ebeb481">dumpDetectorSetup</a>(string <span class="keyword">const</span> fname);
|
||||||
|
<a name="l00394"></a>00394 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#8769c8ea5020b43dc3557c86f9e4159b">retrieveDetectorSetup</a>(string <span class="keyword">const</span> fname);
|
||||||
|
<a name="l00395"></a>00395
|
||||||
|
<a name="l00400"></a>00400 string <a class="code" href="classslsDetectorUsers.html#5292a3d9c12696512b81bcc6c579a03c">getDetectorType</a>();
|
||||||
|
<a name="l00401"></a>00401
|
||||||
|
<a name="l00407"></a>00407 <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#db084473ffe61960b86abdfa8efcc80d">setReceiverMode</a>(<span class="keywordtype">int</span> n=-1);
|
||||||
|
<a name="l00408"></a>00408
|
||||||
|
<a name="l00414"></a>00414 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#4a1db91fc49fc1710f98ce98e33bc16b">registerDataCallback</a>(<span class="keywordtype">int</span>( *userCallback)(<a class="code" href="classdetectorData.html">detectorData</a>* d, <span class="keywordtype">int</span> f, <span class="keywordtype">void</span>*), <span class="keywordtype">void</span> *pArg);
|
||||||
|
<a name="l00415"></a>00415
|
||||||
|
<a name="l00421"></a>00421 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#898cf0db148f0d3de7d4725cc8342c56">registerRawDataCallback</a>(<span class="keywordtype">int</span>( *userCallback)(<span class="keywordtype">double</span>* p, <span class="keywordtype">int</span> n, <span class="keywordtype">void</span>*), <span class="keywordtype">void</span> *pArg);
|
||||||
|
<a name="l00422"></a>00422
|
||||||
|
<a name="l00428"></a>00428 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#56fa8890298a01fc58baad413dfdf1c1">initDataset</a>(<span class="keywordtype">int</span> refresh);
|
||||||
|
<a name="l00429"></a>00429
|
||||||
|
<a name="l00430"></a>00430
|
||||||
|
<a name="l00441"></a>00441 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#5128e295a5b926ccabdb48083d324789">addFrame</a>(<span class="keywordtype">double</span> *data, <span class="keywordtype">double</span> pos, <span class="keywordtype">double</span> i0, <span class="keywordtype">double</span> t, string fname, <span class="keywordtype">double</span> var);
|
||||||
|
<a name="l00442"></a>00442
|
||||||
|
<a name="l00451"></a>00451 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#9cbe00dac8a19b71de88ebbdf3b0ea29">finalizeDataset</a>(<span class="keywordtype">double</span> *a, <span class="keywordtype">double</span> *v, <span class="keywordtype">double</span> *e, <span class="keywordtype">int</span> &np);
|
||||||
|
<a name="l00452"></a>00452
|
||||||
|
<a name="l00457"></a>00457 int64_t <a class="code" href="classslsDetectorUsers.html#09ded3b9c81e4544d42bb0697c3b7624">getModuleFirmwareVersion</a>();
|
||||||
|
<a name="l00458"></a>00458
|
||||||
|
<a name="l00464"></a>00464 int64_t <a class="code" href="classslsDetectorUsers.html#5c0e9f8836e1a8a2d986408e4f5dfd3b">getModuleSerialNumber</a>(<span class="keywordtype">int</span> imod=-1);
|
||||||
|
<a name="l00465"></a>00465
|
||||||
|
<a name="l00470"></a>00470 int64_t <a class="code" href="classslsDetectorUsers.html#2cbba4518b585064f7870ae2d39a8b8b">getDetectorFirmwareVersion</a>();
|
||||||
|
<a name="l00471"></a>00471
|
||||||
|
<a name="l00476"></a>00476 int64_t <a class="code" href="classslsDetectorUsers.html#1c79314ceeda9b3085ca118e25882669">getDetectorSerialNumber</a>();
|
||||||
|
<a name="l00477"></a>00477
|
||||||
|
<a name="l00482"></a>00482 int64_t <a class="code" href="classslsDetectorUsers.html#1857f2afea58227cb96ad92f5e562a5e">getDetectorSoftwareVersion</a>();
|
||||||
|
<a name="l00483"></a>00483
|
||||||
|
<a name="l00488"></a>00488 int64_t <a class="code" href="classslsDetectorUsers.html#547feb09262a2f0fa1ec4de82e92ab63">getThisSoftwareVersion</a>();
|
||||||
|
<a name="l00489"></a>00489
|
||||||
|
<a name="l00495"></a>00495 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#2a85e28ff08e3ec1e08bea3ba7d0fb08">registerAcquisitionFinishedCallback</a>(<span class="keywordtype">int</span>( *func)(<span class="keywordtype">double</span>,<span class="keywordtype">int</span>, <span class="keywordtype">void</span>*), <span class="keywordtype">void</span> *pArg);
|
||||||
|
<a name="l00496"></a>00496
|
||||||
|
<a name="l00502"></a>00502 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#c2b87416288e657a209e1374c778eb16">registerGetPositionCallback</a>( <span class="keywordtype">double</span> (*func)(<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00507"></a>00507 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#d1ab73675435879c2c5cef7adab02c32">registerConnectChannelsCallback</a>( <span class="keywordtype">int</span> (*func)(<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00512"></a>00512 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#a94dd8fce8548ba8e79201ec50fe27d6">registerDisconnectChannelsCallback</a>( <span class="keywordtype">int</span> (*func)(<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00517"></a>00517 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#0f7c9bd3c46647d5dda2fa5312f3ef92">registerGoToPositionCallback</a>( <span class="keywordtype">int</span> (*func)(<span class="keywordtype">double</span>,<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00522"></a>00522 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#e807e9f4a015a4bbcb22e36b80577ea5">registerGoToPositionNoWaitCallback</a>( <span class="keywordtype">int</span> (*func)(<span class="keywordtype">double</span>,<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00527"></a>00527 <span class="keywordtype">void</span> <a class="code" href="classslsDetectorUsers.html#1969785197030aa8e2d3c3d48a9cb45c">registerGetI0Callback</a>( <span class="keywordtype">double</span> (*func)(<span class="keywordtype">int</span>,<span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00528"></a>00528
|
||||||
|
<a name="l00536"></a>00536 string <a class="code" href="classslsDetectorUsers.html#5f7c26833decef59c1abfd7d745c4671">putCommand</a>(<span class="keywordtype">int</span> narg, <span class="keywordtype">char</span> *args[], <span class="keywordtype">int</span> pos=-1);
|
||||||
|
<a name="l00537"></a>00537
|
||||||
|
<a name="l00545"></a>00545 string <a class="code" href="classslsDetectorUsers.html#dc83b8005abccc735b35464c1c6d3ea7">getCommand</a>(<span class="keywordtype">int</span> narg, <span class="keywordtype">char</span> *args[], <span class="keywordtype">int</span> pos=-1);
|
||||||
|
<a name="l00546"></a>00546
|
||||||
|
<a name="l00547"></a>00547 <span class="comment">/************************************************************************</span>
|
||||||
|
<a name="l00548"></a>00548 <span class="comment"></span>
|
||||||
|
<a name="l00549"></a>00549 <span class="comment"> STATIC FUNCTIONS</span>
|
||||||
|
<a name="l00550"></a>00550 <span class="comment"></span>
|
||||||
|
<a name="l00551"></a>00551 <span class="comment"> *********************************************************************/</span>
|
||||||
|
<a name="l00552"></a>00552
|
||||||
|
<a name="l00557"></a><a class="code" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">00557</a> <span class="keyword">static</span> string <a class="code" href="classslsDetectorUsers.html#2c073513ae3ac53f3e040bc2911b6ee2">runStatusType</a>(<span class="keywordtype">int</span> s){ \
|
||||||
|
<a name="l00558"></a>00558 <span class="keywordflow">switch</span> (s) { \
|
||||||
|
<a name="l00559"></a>00559 <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> string(<span class="stringliteral">"idle"</span>); \
|
||||||
|
<a name="l00560"></a>00560 <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> string(<span class="stringliteral">"error"</span>); \
|
||||||
|
<a name="l00561"></a>00561 <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> string(<span class="stringliteral">"waiting"</span>); \
|
||||||
|
<a name="l00562"></a>00562 <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> string(<span class="stringliteral">"finished"</span>); \
|
||||||
|
<a name="l00563"></a>00563 <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> string(<span class="stringliteral">"data"</span>); \
|
||||||
|
<a name="l00564"></a>00564 <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> string(<span class="stringliteral">"running"</span>); \
|
||||||
|
<a name="l00565"></a>00565 <span class="keywordflow">default</span>: <span class="keywordflow">return</span> string(<span class="stringliteral">"unknown"</span>); \
|
||||||
|
<a name="l00566"></a>00566 }};
|
||||||
|
<a name="l00567"></a>00567
|
||||||
|
<a name="l00568"></a>00568
|
||||||
|
<a name="l00569"></a>00569
|
||||||
|
<a name="l00575"></a><a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">00575</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">getDetectorSettings</a>(string s){ \
|
||||||
|
<a name="l00576"></a>00576 <span class="keywordflow">if</span> (s==<span class="stringliteral">"standard"</span>) <span class="keywordflow">return</span> 0; \
|
||||||
|
<a name="l00577"></a>00577 <span class="keywordflow">if</span> (s==<span class="stringliteral">"fast"</span>) <span class="keywordflow">return</span> 1; \
|
||||||
|
<a name="l00578"></a>00578 <span class="keywordflow">if</span> (s==<span class="stringliteral">"highgain"</span>) <span class="keywordflow">return</span> 2; \
|
||||||
|
<a name="l00579"></a>00579 <span class="keywordflow">if</span> (s==<span class="stringliteral">"dynamicgain"</span>) <span class="keywordflow">return</span> 3; \
|
||||||
|
<a name="l00580"></a>00580 <span class="keywordflow">if</span> (s==<span class="stringliteral">"lowgain"</span>) <span class="keywordflow">return</span> 4; \
|
||||||
|
<a name="l00581"></a>00581 <span class="keywordflow">if</span> (s==<span class="stringliteral">"mediumgain"</span>) <span class="keywordflow">return</span> 5; \
|
||||||
|
<a name="l00582"></a>00582 <span class="keywordflow">if</span> (s==<span class="stringliteral">"veryhighgain"</span>) <span class="keywordflow">return</span> 6; \
|
||||||
|
<a name="l00583"></a>00583 <span class="keywordflow">return</span> -1; };
|
||||||
|
<a name="l00584"></a>00584
|
||||||
|
<a name="l00589"></a><a class="code" href="classslsDetectorUsers.html#a66defec09b568a514e57b444dbe0d7f">00589</a> <span class="keyword">static</span> string <a class="code" href="classslsDetectorUsers.html#7f2e97b2fa0e106b364c9c200a5d74ad">getDetectorSettings</a>(<span class="keywordtype">int</span> s){\
|
||||||
|
<a name="l00590"></a>00590 <span class="keywordflow">switch</span>(s) { \
|
||||||
|
<a name="l00591"></a>00591 <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> string(<span class="stringliteral">"standard"</span>);\
|
||||||
|
<a name="l00592"></a>00592 <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> string(<span class="stringliteral">"fast"</span>);\
|
||||||
|
<a name="l00593"></a>00593 <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> string(<span class="stringliteral">"highgain"</span>);\
|
||||||
|
<a name="l00594"></a>00594 <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> string(<span class="stringliteral">"dynamicgain"</span>); \
|
||||||
|
<a name="l00595"></a>00595 <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> string(<span class="stringliteral">"lowgain"</span>); \
|
||||||
|
<a name="l00596"></a>00596 <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> string(<span class="stringliteral">"mediumgain"</span>); \
|
||||||
|
<a name="l00597"></a>00597 <span class="keywordflow">case</span> 6: <span class="keywordflow">return</span> string(<span class="stringliteral">"veryhighgain"</span>); \
|
||||||
|
<a name="l00598"></a>00598 <span class="keywordflow">default</span>: <span class="keywordflow">return</span> string(<span class="stringliteral">"undefined"</span>); \
|
||||||
|
<a name="l00599"></a>00599 }};
|
||||||
|
<a name="l00600"></a>00600
|
||||||
|
<a name="l00601"></a>00601
|
||||||
|
<a name="l00602"></a>00602
|
||||||
|
<a name="l00609"></a><a class="code" href="classslsDetectorUsers.html#420880726f4036bf9da83edfcb2d6cf0">00609</a> <span class="keyword">static</span> string <a class="code" href="classslsDetectorUsers.html#420880726f4036bf9da83edfcb2d6cf0">getTimingMode</a>(<span class="keywordtype">int</span> f){ \
|
||||||
|
<a name="l00610"></a>00610 <span class="keywordflow">switch</span>(f) { \
|
||||||
|
<a name="l00611"></a>00611 <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> string( <span class="stringliteral">"auto"</span>); \
|
||||||
|
<a name="l00612"></a>00612 <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> string(<span class="stringliteral">"trigger"</span>); \
|
||||||
|
<a name="l00613"></a>00613 <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> string(<span class="stringliteral">"ro_trigger"</span>); \
|
||||||
|
<a name="l00614"></a>00614 <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> string(<span class="stringliteral">"gating"</span>); \
|
||||||
|
<a name="l00615"></a>00615 <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> string(<span class="stringliteral">"triggered_gating"</span>); \
|
||||||
|
<a name="l00616"></a>00616 <span class="keywordflow">default</span>: <span class="keywordflow">return</span> string( <span class="stringliteral">"unknown"</span>); \
|
||||||
|
<a name="l00617"></a>00617 } };
|
||||||
|
<a name="l00618"></a>00618
|
||||||
|
<a name="l00625"></a><a class="code" href="classslsDetectorUsers.html#e88a9626e4e661c1c0e1d27ba4a57d50">00625</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classslsDetectorUsers.html#420880726f4036bf9da83edfcb2d6cf0">getTimingMode</a>(string s){ \
|
||||||
|
<a name="l00626"></a>00626 <span class="keywordflow">if</span> (s== <span class="stringliteral">"auto"</span>) <span class="keywordflow">return</span> 0; \
|
||||||
|
<a name="l00627"></a>00627 <span class="keywordflow">if</span> (s== <span class="stringliteral">"trigger"</span>) <span class="keywordflow">return</span> 1; \
|
||||||
|
<a name="l00628"></a>00628 <span class="keywordflow">if</span> (s== <span class="stringliteral">"ro_trigger"</span>) <span class="keywordflow">return</span> 2; \
|
||||||
|
<a name="l00629"></a>00629 <span class="keywordflow">if</span> (s== <span class="stringliteral">"gating"</span>) <span class="keywordflow">return</span> 3; \
|
||||||
|
<a name="l00630"></a>00630 <span class="keywordflow">if</span> (s== <span class="stringliteral">"triggered_gating"</span>) <span class="keywordflow">return</span> 4; \
|
||||||
|
<a name="l00631"></a>00631 <span class="keywordflow">return</span> -1; };
|
||||||
|
<a name="l00632"></a>00632
|
||||||
|
<a name="l00633"></a>00633 <span class="keyword">private</span>:
|
||||||
|
<a name="l00634"></a>00634 multiSlsDetector *myDetector;
|
||||||
|
<a name="l00635"></a>00635 multiSlsDetectorCommand *myCmd;
|
||||||
|
<a name="l00636"></a>00636 };
|
||||||
|
<a name="l00637"></a>00637
|
||||||
|
<a name="l00638"></a>00638 <span class="preprocessor">#endif</span>
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,38 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>slsDetectorUsers.h File Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsDetectorUsers.h File Reference</h1><code>#include <stdint.h></code><br>
|
||||||
|
<code>#include <string></code><br>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="slsDetectorUsers_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacestd.html">std</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsDetectorUsers.html">slsDetectorUsers</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. <a href="classslsDetectorUsers.html#_details">More...</a><br></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,64 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>slsReceiverUsers.h Source File</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsReceiverUsers.h</h1><a href="slsReceiverUsers_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
|
||||||
|
<a name="l00002"></a>00002 <span class="preprocessor">#ifndef SLS_RECEIVER_USERS_H</span>
|
||||||
|
<a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define SLS_RECEIVER_USERS_H</span>
|
||||||
|
<a name="l00004"></a>00004 <span class="preprocessor"></span>
|
||||||
|
<a name="l00005"></a>00005 <span class="preprocessor">#include <stdio.h></span>
|
||||||
|
<a name="l00006"></a>00006 <span class="preprocessor">#include <stdint.h></span>
|
||||||
|
<a name="l00007"></a>00007
|
||||||
|
<a name="l00008"></a>00008 <span class="keyword">class </span>slsReceiverTCPIPInterface;
|
||||||
|
<a name="l00009"></a>00009
|
||||||
|
<a name="l00021"></a><a class="code" href="classslsReceiverUsers.html">00021</a> <span class="keyword">class </span><a class="code" href="classslsReceiverUsers.html">slsReceiverUsers</a> {
|
||||||
|
<a name="l00022"></a>00022
|
||||||
|
<a name="l00023"></a>00023 <span class="keyword">public</span>:
|
||||||
|
<a name="l00031"></a>00031 <a class="code" href="classslsReceiverUsers.html#79a82ba94fbb19761c7701aa3901b8b1">slsReceiverUsers</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[], <span class="keywordtype">int</span> &success);
|
||||||
|
<a name="l00032"></a>00032
|
||||||
|
<a name="l00033"></a>00033
|
||||||
|
<a name="l00035"></a>00035 <a class="code" href="classslsReceiverUsers.html#9b45943d81ce7a09543aa446de857cb0">~slsReceiverUsers</a>();
|
||||||
|
<a name="l00036"></a>00036
|
||||||
|
<a name="l00038"></a>00038 <span class="keywordtype">void</span> <a class="code" href="classslsReceiverUsers.html#bad0b3265826da2d9ebf48e59e9d5787">closeFile</a>(<span class="keywordtype">int</span> p);
|
||||||
|
<a name="l00039"></a>00039
|
||||||
|
<a name="l00044"></a>00044 <span class="keywordtype">int</span> <a class="code" href="classslsReceiverUsers.html#ef40b4987367b8a0116bcb66534dd7b7">start</a>();
|
||||||
|
<a name="l00045"></a>00045
|
||||||
|
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classslsReceiverUsers.html#394001d873a4b7912865a971d4d25f87">stop</a>();
|
||||||
|
<a name="l00048"></a>00048
|
||||||
|
<a name="l00053"></a>00053 int64_t <a class="code" href="classslsReceiverUsers.html#f206092e2744e12ce6b717f4181d91a2">getReceiverVersion</a>();
|
||||||
|
<a name="l00054"></a>00054
|
||||||
|
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classslsReceiverUsers.html#5d4bb9244008d0bc570778230d30c5e3">registerCallBackStartAcquisition</a>(<span class="keywordtype">int</span> (*func)(<span class="keywordtype">char</span>* filepath, <span class="keywordtype">char</span>* filename,<span class="keywordtype">int</span> fileindex, <span class="keywordtype">int</span> datasize, <span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00065"></a>00065
|
||||||
|
<a name="l00066"></a>00066
|
||||||
|
<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="classslsReceiverUsers.html#7471d2945e8650eece86258e6ca56156">registerCallBackAcquisitionFinished</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">int</span> nf, <span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00075"></a>00075
|
||||||
|
<a name="l00076"></a>00076
|
||||||
|
<a name="l00077"></a>00077
|
||||||
|
<a name="l00084"></a>00084 <span class="keywordtype">void</span> <a class="code" href="classslsReceiverUsers.html#343b9fac505e8c08a7fbf9efdd0f5762">registerCallBackRawDataReady</a>(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">int</span> framenumber, <span class="keywordtype">char</span>* datapointer, <span class="keywordtype">int</span> datasize, FILE* filedescriptor, <span class="keywordtype">char</span>* guidatapointer, <span class="keywordtype">void</span>*),<span class="keywordtype">void</span> *arg);
|
||||||
|
<a name="l00085"></a>00085
|
||||||
|
<a name="l00086"></a>00086 <span class="comment">// made static to close thread files with ctrl+c</span>
|
||||||
|
<a name="l00087"></a><a class="code" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">00087</a> <span class="keyword">static</span> slsReceiverTCPIPInterface* <a class="code" href="classslsReceiverUsers.html#8f262724fb99ecd3976214710d82dd18">receiver</a>;
|
||||||
|
<a name="l00088"></a>00088 };
|
||||||
|
<a name="l00089"></a>00089
|
||||||
|
<a name="l00090"></a>00090
|
||||||
|
<a name="l00091"></a>00091 <span class="preprocessor">#endif</span>
|
||||||
|
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
||||||
|
<title>slsReceiverUsers.h File Reference</title>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
||||||
|
</head><body>
|
||||||
|
<!-- Generated by Doxygen 1.4.7 -->
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="tabs">
|
||||||
|
<ul>
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul></div>
|
||||||
|
<h1>slsReceiverUsers.h File Reference</h1><code>#include <stdio.h></code><br>
|
||||||
|
<code>#include <stdint.h></code><br>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="slsReceiverUsers_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classslsReceiverUsers.html">slsReceiverUsers</a></td></tr>
|
||||||
|
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. <a href="classslsReceiverUsers.html#_details">More...</a><br></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr size="1"><address style="align: right;"><small>Generated on Mon May 26 17:07:05 2014 by
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif
Normal file
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 B |
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif
Normal file
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 706 B |
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif
Normal file
BIN
manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
102
manual/manual-api/slsDetectorUsersDocs/html/tabs.css
Normal file
102
manual/manual-api/slsDetectorUsersDocs/html/tabs.css
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
|
||||||
|
|
||||||
|
DIV.tabs
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
width : 100%;
|
||||||
|
background : url("tab_b.gif") repeat-x bottom;
|
||||||
|
margin-bottom : 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs UL
|
||||||
|
{
|
||||||
|
margin : 0px;
|
||||||
|
padding-left : 10px;
|
||||||
|
list-style : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI, DIV.tabs FORM
|
||||||
|
{
|
||||||
|
display : inline;
|
||||||
|
margin : 0px;
|
||||||
|
padding : 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs FORM
|
||||||
|
{
|
||||||
|
float : right;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
background : url("tab_r.gif") no-repeat right top;
|
||||||
|
border-bottom : 1px solid #84B0C7;
|
||||||
|
font-size : x-small;
|
||||||
|
font-weight : bold;
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A:hover
|
||||||
|
{
|
||||||
|
background-position: 100% -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs A:link, DIV.tabs A:visited,
|
||||||
|
DIV.tabs A:active, DIV.tabs A:hover
|
||||||
|
{
|
||||||
|
color: #1A419D;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs SPAN
|
||||||
|
{
|
||||||
|
float : left;
|
||||||
|
display : block;
|
||||||
|
background : url("tab_l.gif") no-repeat left top;
|
||||||
|
padding : 5px 9px;
|
||||||
|
white-space : nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs INPUT
|
||||||
|
{
|
||||||
|
float : right;
|
||||||
|
display : inline;
|
||||||
|
font-size : 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs TD
|
||||||
|
{
|
||||||
|
font-size : x-small;
|
||||||
|
font-weight : bold;
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Commented Backslash Hack hides rule from IE5-Mac \*/
|
||||||
|
DIV.tabs SPAN {float : none;}
|
||||||
|
/* End IE5-Mac hack */
|
||||||
|
|
||||||
|
DIV.tabs A:hover SPAN
|
||||||
|
{
|
||||||
|
background-position: 0% -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI#current A
|
||||||
|
{
|
||||||
|
background-position: 100% -150px;
|
||||||
|
border-width : 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.tabs LI#current SPAN
|
||||||
|
{
|
||||||
|
background-position: 0% -150px;
|
||||||
|
padding-bottom : 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.nav
|
||||||
|
{
|
||||||
|
background : none;
|
||||||
|
border : none;
|
||||||
|
border-bottom : 1px solid #84B0C7;
|
||||||
|
}
|
BIN
manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf
Normal file
BIN
manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf
Normal file
Binary file not shown.
17
manual/manual-api/slsDetectorUsersDocs/latex/Makefile
Normal file
17
manual/manual-api/slsDetectorUsersDocs/latex/Makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
all: clean refman.pdf
|
||||||
|
|
||||||
|
refman.pdf: refman.tex
|
||||||
|
pdflatex refman.tex
|
||||||
|
makeindex refman.idx
|
||||||
|
pdflatex refman.tex
|
||||||
|
latex_count=5 ; \
|
||||||
|
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
|
||||||
|
do \
|
||||||
|
echo "Rerunning latex...." ;\
|
||||||
|
pdflatex refman.tex ;\
|
||||||
|
latex_count=`expr $$latex_count - 1` ;\
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf
|
@ -0,0 +1,6 @@
|
|||||||
|
\subsection{Class List}
|
||||||
|
Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList}
|
||||||
|
\item\contentsline{section}{\hyperlink{classdetectorData}{detector\-Data} (Data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) )}{\pageref{classdetectorData}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} (Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc )}{\pageref{classslsDetectorUsers}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} (Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data )}{\pageref{classslsReceiverUsers}}{}
|
||||||
|
\end{CompactList}
|
@ -0,0 +1,171 @@
|
|||||||
|
\hypertarget{classdetectorData}{
|
||||||
|
\subsection{detector\-Data Class Reference}
|
||||||
|
\label{classdetectorData}\index{detectorData@{detectorData}}
|
||||||
|
}
|
||||||
|
data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
|
||||||
|
|
||||||
|
|
||||||
|
{\tt \#include $<$detector\-Data.h$>$}
|
||||||
|
|
||||||
|
\subsubsection*{Public Member Functions}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{classdetectorData_3f8538f5f634295fc40682b8aed47b31}{detector\-Data} (double $\ast$val=NULL, double $\ast$err=NULL, double $\ast$ang=NULL, double p\_\-ind=-1, const char $\ast$fname=\char`\"{}\char`\"{}, int np=-1, int ny=1)
|
||||||
|
\begin{CompactList}\small\item\em The constructor. \item\end{CompactList}\item
|
||||||
|
\hyperlink{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7}{$\sim$detector\-Data} ()
|
||||||
|
\begin{CompactList}\small\item\em The destructor deletes also the arrays pointing to data/errors/angles if not NULL. \item\end{CompactList}\end{CompactItemize}
|
||||||
|
\subsubsection*{Public Attributes}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
double $\ast$ \hyperlink{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{values}
|
||||||
|
\begin{CompactList}\small\item\em pointer to the data \item\end{CompactList}\item
|
||||||
|
double $\ast$ \hyperlink{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{errors}
|
||||||
|
\begin{CompactList}\small\item\em pointer to the errors \item\end{CompactList}\item
|
||||||
|
double $\ast$ \hyperlink{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{angles}
|
||||||
|
\begin{CompactList}\small\item\em pointer to the angles (NULL if no angular conversion) \item\end{CompactList}\item
|
||||||
|
double \hyperlink{classdetectorData_976b3287d46aed032487bbeed74132da}{progress\-Index}
|
||||||
|
\begin{CompactList}\small\item\em file index \item\end{CompactList}\item
|
||||||
|
char \hyperlink{classdetectorData_91d1e3466878def295a531c01bdeef6b}{file\-Name} \mbox{[}1000\mbox{]}
|
||||||
|
\begin{CompactList}\small\item\em file name \item\end{CompactList}\item
|
||||||
|
int \hyperlink{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{npoints}
|
||||||
|
\begin{CompactList}\small\item\em number of points \item\end{CompactList}\item
|
||||||
|
int \hyperlink{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{npy}
|
||||||
|
\begin{CompactList}\small\item\em dimensions in y coordinate \item\end{CompactList}\end{CompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Detailed Description}
|
||||||
|
data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 9 of file detector\-Data.h.
|
||||||
|
|
||||||
|
\subsubsection{Constructor \& Destructor Documentation}
|
||||||
|
\hypertarget{classdetectorData_3f8538f5f634295fc40682b8aed47b31}{
|
||||||
|
\index{detectorData@{detector\-Data}!detectorData@{detectorData}}
|
||||||
|
\index{detectorData@{detectorData}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[detectorData]{\setlength{\rightskip}{0pt plus 5cm}detector\-Data::detector\-Data (double $\ast$ {\em val} = {\tt NULL}, double $\ast$ {\em err} = {\tt NULL}, double $\ast$ {\em ang} = {\tt NULL}, double {\em p\_\-ind} = {\tt -1}, const char $\ast$ {\em fname} = {\tt \char`\"{}\char`\"{}}, int {\em np} = {\tt -1}, int {\em ny} = {\tt 1})\hspace{0.3cm}{\tt \mbox{[}inline\mbox{]}}}\hfill}
|
||||||
|
\label{classdetectorData_3f8538f5f634295fc40682b8aed47b31}
|
||||||
|
|
||||||
|
|
||||||
|
The constructor.
|
||||||
|
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Parameters:]
|
||||||
|
\begin{description}
|
||||||
|
\item[{\em val}]pointer to the data \item[{\em err}]pointer to errors \item[{\em ang}]pointer to the angles \item[{\em f\_\-ind}]file index \item[{\em fname}]file name to which the data are saved \item[{\em np}]number of points in x coordinate defaults to the number of detector channels (1D detector) \item[{\em ny}]dimension in y (1D detector) \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 20 of file detector\-Data.h.
|
||||||
|
|
||||||
|
References file\-Name.\hypertarget{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7}{
|
||||||
|
\index{detectorData@{detector\-Data}!~detectorData@{$\sim$detectorData}}
|
||||||
|
\index{~detectorData@{$\sim$detectorData}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[$\sim$detectorData]{\setlength{\rightskip}{0pt plus 5cm}detector\-Data::$\sim$detector\-Data ()\hspace{0.3cm}{\tt \mbox{[}inline\mbox{]}}}\hfill}
|
||||||
|
\label{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7}
|
||||||
|
|
||||||
|
|
||||||
|
The destructor deletes also the arrays pointing to data/errors/angles if not NULL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 25 of file detector\-Data.h.
|
||||||
|
|
||||||
|
References angles, errors, and values.
|
||||||
|
|
||||||
|
\subsubsection{Member Data Documentation}
|
||||||
|
\hypertarget{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{
|
||||||
|
\index{detectorData@{detector\-Data}!angles@{angles}}
|
||||||
|
\index{angles@{angles}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[angles]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{detector\-Data::angles}}\hfill}
|
||||||
|
\label{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}
|
||||||
|
|
||||||
|
|
||||||
|
pointer to the angles (NULL if no angular conversion)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 29 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by $\sim$detector\-Data().\hypertarget{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{
|
||||||
|
\index{detectorData@{detector\-Data}!errors@{errors}}
|
||||||
|
\index{errors@{errors}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[errors]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{detector\-Data::errors}}\hfill}
|
||||||
|
\label{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}
|
||||||
|
|
||||||
|
|
||||||
|
pointer to the errors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 28 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by $\sim$detector\-Data().\hypertarget{classdetectorData_91d1e3466878def295a531c01bdeef6b}{
|
||||||
|
\index{detectorData@{detector\-Data}!fileName@{fileName}}
|
||||||
|
\index{fileName@{fileName}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[fileName]{\setlength{\rightskip}{0pt plus 5cm}char \hyperlink{classdetectorData_91d1e3466878def295a531c01bdeef6b}{detector\-Data::file\-Name}\mbox{[}1000\mbox{]}}\hfill}
|
||||||
|
\label{classdetectorData_91d1e3466878def295a531c01bdeef6b}
|
||||||
|
|
||||||
|
|
||||||
|
file name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 31 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by detector\-Data().\hypertarget{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{
|
||||||
|
\index{detectorData@{detector\-Data}!npoints@{npoints}}
|
||||||
|
\index{npoints@{npoints}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[npoints]{\setlength{\rightskip}{0pt plus 5cm}int \hyperlink{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{detector\-Data::npoints}}\hfill}
|
||||||
|
\label{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}
|
||||||
|
|
||||||
|
|
||||||
|
number of points
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 32 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by data\-Callback().\hypertarget{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{
|
||||||
|
\index{detectorData@{detector\-Data}!npy@{npy}}
|
||||||
|
\index{npy@{npy}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[npy]{\setlength{\rightskip}{0pt plus 5cm}int \hyperlink{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{detector\-Data::npy}}\hfill}
|
||||||
|
\label{classdetectorData_c289d259e7fd9445a9c04976a82cb324}
|
||||||
|
|
||||||
|
|
||||||
|
dimensions in y coordinate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 33 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by data\-Callback().\hypertarget{classdetectorData_976b3287d46aed032487bbeed74132da}{
|
||||||
|
\index{detectorData@{detector\-Data}!progressIndex@{progressIndex}}
|
||||||
|
\index{progressIndex@{progressIndex}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[progressIndex]{\setlength{\rightskip}{0pt plus 5cm}double \hyperlink{classdetectorData_976b3287d46aed032487bbeed74132da}{detector\-Data::progress\-Index}}\hfill}
|
||||||
|
\label{classdetectorData_976b3287d46aed032487bbeed74132da}
|
||||||
|
|
||||||
|
|
||||||
|
file index
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 30 of file detector\-Data.h.\hypertarget{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{
|
||||||
|
\index{detectorData@{detector\-Data}!values@{values}}
|
||||||
|
\index{values@{values}!detectorData@{detector\-Data}}
|
||||||
|
\paragraph[values]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{detector\-Data::values}}\hfill}
|
||||||
|
\label{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}
|
||||||
|
|
||||||
|
|
||||||
|
pointer to the data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 25 of file detector\-Data.h.
|
||||||
|
|
||||||
|
Referenced by $\sim$detector\-Data().
|
||||||
|
|
||||||
|
The documentation for this class was generated from the following file:\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{detectorData_8h}{detector\-Data.h}\end{CompactItemize}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,164 @@
|
|||||||
|
\hypertarget{classslsReceiverUsers}{
|
||||||
|
\subsection{sls\-Receiver\-Users Class Reference}
|
||||||
|
\label{classslsReceiverUsers}\index{slsReceiverUsers@{slsReceiverUsers}}
|
||||||
|
}
|
||||||
|
Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
|
||||||
|
|
||||||
|
|
||||||
|
{\tt \#include $<$sls\-Receiver\-Users.h$>$}
|
||||||
|
|
||||||
|
\subsubsection*{Public Member Functions}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1}{sls\-Receiver\-Users} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}, int \&success)
|
||||||
|
\item
|
||||||
|
\hyperlink{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0}{$\sim$sls\-Receiver\-Users} ()
|
||||||
|
\item
|
||||||
|
void \hyperlink{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787}{close\-File} (int p)
|
||||||
|
\item
|
||||||
|
int \hyperlink{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7}{start} ()
|
||||||
|
\item
|
||||||
|
void \hyperlink{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87}{stop} ()
|
||||||
|
\item
|
||||||
|
int64\_\-t \hyperlink{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2}{get\-Receiver\-Version} ()
|
||||||
|
\item
|
||||||
|
void \hyperlink{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3}{register\-Call\-Back\-Start\-Acquisition} (int($\ast$func)(char $\ast$filepath, char $\ast$filename, int fileindex, int datasize, void $\ast$), void $\ast$arg)
|
||||||
|
\item
|
||||||
|
void \hyperlink{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156}{register\-Call\-Back\-Acquisition\-Finished} (void($\ast$func)(int nf, void $\ast$), void $\ast$arg)
|
||||||
|
\item
|
||||||
|
void \hyperlink{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762}{register\-Call\-Back\-Raw\-Data\-Ready} (void($\ast$func)(int framenumber, char $\ast$datapointer, int datasize, FILE $\ast$filedescriptor, char $\ast$guidatapointer, void $\ast$), void $\ast$arg)
|
||||||
|
\end{CompactItemize}
|
||||||
|
\subsubsection*{Static Public Attributes}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
static sls\-Receiver\-TCPIPInterface $\ast$ \hyperlink{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{receiver}
|
||||||
|
\end{CompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Detailed Description}
|
||||||
|
Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.
|
||||||
|
|
||||||
|
\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 21 of file sls\-Receiver\-Users.h.
|
||||||
|
|
||||||
|
\subsubsection{Constructor \& Destructor Documentation}
|
||||||
|
\hypertarget{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!slsReceiverUsers@{slsReceiverUsers}}
|
||||||
|
\index{slsReceiverUsers@{slsReceiverUsers}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[slsReceiverUsers]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-Users::sls\-Receiver\-Users (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]}, int \& {\em success})}\hfill}
|
||||||
|
\label{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1}
|
||||||
|
|
||||||
|
|
||||||
|
Constructor reads config file, creates socket, assigns function table \begin{Desc}
|
||||||
|
\item[Parameters:]
|
||||||
|
\begin{description}
|
||||||
|
\item[{\em argc}]from command line \item[{\em argv}]from command line \item[{\em succecc}]socket creation was successfull \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
\hypertarget{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!~slsReceiverUsers@{$\sim$slsReceiverUsers}}
|
||||||
|
\index{~slsReceiverUsers@{$\sim$slsReceiverUsers}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[$\sim$slsReceiverUsers]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-Users::$\sim$sls\-Receiver\-Users ()}\hfill}
|
||||||
|
\label{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0}
|
||||||
|
|
||||||
|
|
||||||
|
Destructor
|
||||||
|
|
||||||
|
\subsubsection{Member Function Documentation}
|
||||||
|
\hypertarget{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!closeFile@{closeFile}}
|
||||||
|
\index{closeFile@{closeFile}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[closeFile]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::close\-File (int {\em p})}\hfill}
|
||||||
|
\label{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787}
|
||||||
|
|
||||||
|
|
||||||
|
Close File and exits receiver server \hypertarget{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!getReceiverVersion@{getReceiverVersion}}
|
||||||
|
\index{getReceiverVersion@{getReceiverVersion}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[getReceiverVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Receiver\-Users::get\-Receiver\-Version ()}\hfill}
|
||||||
|
\label{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2}
|
||||||
|
|
||||||
|
|
||||||
|
get get Receiver Version \begin{Desc}
|
||||||
|
\item[Returns:]id \end{Desc}
|
||||||
|
\hypertarget{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackAcquisitionFinished@{registerCallBackAcquisitionFinished}}
|
||||||
|
\index{registerCallBackAcquisitionFinished@{registerCallBackAcquisitionFinished}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[registerCallBackAcquisitionFinished]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Acquisition\-Finished (void($\ast$)(int nf, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill}
|
||||||
|
\label{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156}
|
||||||
|
|
||||||
|
|
||||||
|
register callback for end of acquisition \begin{Desc}
|
||||||
|
\item[Parameters:]
|
||||||
|
\begin{description}
|
||||||
|
\item[{\em func}]end of acquisition callback. Argument nf is total frames caught \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Returns:]nothing \end{Desc}
|
||||||
|
\hypertarget{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackRawDataReady@{registerCallBackRawDataReady}}
|
||||||
|
\index{registerCallBackRawDataReady@{registerCallBackRawDataReady}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[registerCallBackRawDataReady]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Raw\-Data\-Ready (void($\ast$)(int framenumber, char $\ast$datapointer, int datasize, FILE $\ast$filedescriptor, char $\ast$guidatapointer, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill}
|
||||||
|
\label{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762}
|
||||||
|
|
||||||
|
|
||||||
|
register callback to be called when data are available (to process and/or save the data). \begin{Desc}
|
||||||
|
\item[Parameters:]
|
||||||
|
\begin{description}
|
||||||
|
\item[{\em func}]raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required) \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Returns:]nothing \end{Desc}
|
||||||
|
\hypertarget{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackStartAcquisition@{registerCallBackStartAcquisition}}
|
||||||
|
\index{registerCallBackStartAcquisition@{registerCallBackStartAcquisition}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[registerCallBackStartAcquisition]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Start\-Acquisition (int($\ast$)(char $\ast$filepath, char $\ast$filename, int fileindex, int datasize, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill}
|
||||||
|
\label{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3}
|
||||||
|
|
||||||
|
|
||||||
|
register calbback for starting the acquisition \begin{Desc}
|
||||||
|
\item[Parameters:]
|
||||||
|
\begin{description}
|
||||||
|
\item[{\em func}]callback to be called when starting the acquisition. Its arguments are filepath filename fileindex data size\end{description}
|
||||||
|
\end{Desc}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Returns:]0 callback takes care of open,close,write file; 1 callback writes file, we have to open, close it; 2 we open, close, write file, callback does not do anything \end{Desc}
|
||||||
|
\hypertarget{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!start@{start}}
|
||||||
|
\index{start@{start}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[start]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Receiver\-Users::start ()}\hfill}
|
||||||
|
\label{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7}
|
||||||
|
|
||||||
|
|
||||||
|
starts listening on the TCP port for client comminication \begin{Desc}
|
||||||
|
\item[Returns:]0 for success or 1 for FAIL in creating TCP server \end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Referenced by main().\hypertarget{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!stop@{stop}}
|
||||||
|
\index{stop@{stop}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[stop]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::stop ()}\hfill}
|
||||||
|
\label{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87}
|
||||||
|
|
||||||
|
|
||||||
|
stops listening to the TCP \& UDP port and exit receiver program
|
||||||
|
|
||||||
|
Referenced by main().
|
||||||
|
|
||||||
|
\subsubsection{Member Data Documentation}
|
||||||
|
\hypertarget{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{
|
||||||
|
\index{slsReceiverUsers@{sls\-Receiver\-Users}!receiver@{receiver}}
|
||||||
|
\index{receiver@{receiver}!slsReceiverUsers@{sls\-Receiver\-Users}}
|
||||||
|
\paragraph[receiver]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-TCPIPInterface$\ast$ \hyperlink{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{sls\-Receiver\-Users::receiver}\hspace{0.3cm}{\tt \mbox{[}static\mbox{]}}}\hfill}
|
||||||
|
\label{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 87 of file sls\-Receiver\-Users.h.
|
||||||
|
|
||||||
|
The documentation for this class was generated from the following file:\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{slsReceiverUsers_8h}{sls\-Receiver\-Users.h}\end{CompactItemize}
|
@ -0,0 +1,11 @@
|
|||||||
|
\hypertarget{detectorData_8h}{
|
||||||
|
\subsection{detector\-Data.h File Reference}
|
||||||
|
\label{detectorData_8h}\index{detectorData.h@{detectorData.h}}
|
||||||
|
}
|
||||||
|
{\tt \#include $<$unistd.h$>$}\par
|
||||||
|
{\tt \#include $<$cstring$>$}\par
|
||||||
|
\subsubsection*{Classes}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
class \hyperlink{classdetectorData}{detector\-Data}
|
||||||
|
\begin{CompactList}\small\item\em data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) \item\end{CompactList}\end{CompactItemize}
|
77
manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty
Normal file
77
manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{doxygen}
|
||||||
|
\RequirePackage{calc}
|
||||||
|
\RequirePackage{array}
|
||||||
|
\pagestyle{fancyplain}
|
||||||
|
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
|
||||||
|
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
|
||||||
|
\lhead[\fancyplain{}{\bfseries\thepage}]
|
||||||
|
{\fancyplain{}{\bfseries\rightmark}}
|
||||||
|
\rhead[\fancyplain{}{\bfseries\leftmark}]
|
||||||
|
{\fancyplain{}{\bfseries\thepage}}
|
||||||
|
\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Mon May 26 17:07:05 2014 by Doxygen }]{}
|
||||||
|
\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Mon May 26 17:07:05 2014 by Doxygen }}
|
||||||
|
\cfoot{}
|
||||||
|
\newenvironment{Code}
|
||||||
|
{\footnotesize}
|
||||||
|
{\normalsize}
|
||||||
|
\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
|
||||||
|
\newenvironment{DocInclude}
|
||||||
|
{\footnotesize}
|
||||||
|
{\normalsize}
|
||||||
|
\newenvironment{VerbInclude}
|
||||||
|
{\footnotesize}
|
||||||
|
{\normalsize}
|
||||||
|
\newenvironment{Image}
|
||||||
|
{\begin{figure}[H]}
|
||||||
|
{\end{figure}}
|
||||||
|
\newenvironment{ImageNoCaption}{}{}
|
||||||
|
\newenvironment{CompactList}
|
||||||
|
{\begin{list}{}{
|
||||||
|
\setlength{\leftmargin}{0.5cm}
|
||||||
|
\setlength{\itemsep}{0pt}
|
||||||
|
\setlength{\parsep}{0pt}
|
||||||
|
\setlength{\topsep}{0pt}
|
||||||
|
\renewcommand{\makelabel}{\hfill}}}
|
||||||
|
{\end{list}}
|
||||||
|
\newenvironment{CompactItemize}
|
||||||
|
{
|
||||||
|
\begin{itemize}
|
||||||
|
\setlength{\itemsep}{-3pt}
|
||||||
|
\setlength{\parsep}{0pt}
|
||||||
|
\setlength{\topsep}{0pt}
|
||||||
|
\setlength{\partopsep}{0pt}
|
||||||
|
}
|
||||||
|
{\end{itemize}}
|
||||||
|
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
|
||||||
|
\newlength{\tmplength}
|
||||||
|
\newenvironment{TabularC}[1]
|
||||||
|
{
|
||||||
|
\setlength{\tmplength}
|
||||||
|
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
|
||||||
|
\par\begin{tabular*}{\linewidth}
|
||||||
|
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
|
||||||
|
}
|
||||||
|
{\end{tabular*}\par}
|
||||||
|
\newcommand{\entrylabel}[1]{
|
||||||
|
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
|
||||||
|
\newenvironment{Desc}
|
||||||
|
{\begin{list}{}
|
||||||
|
{
|
||||||
|
\settowidth{\labelwidth}{40pt}
|
||||||
|
\setlength{\leftmargin}{\labelwidth}
|
||||||
|
\setlength{\parsep}{0pt}
|
||||||
|
\setlength{\itemsep}{-4pt}
|
||||||
|
\renewcommand{\makelabel}{\entrylabel}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{\end{list}}
|
||||||
|
\newenvironment{Indent}
|
||||||
|
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
|
||||||
|
\item[]\ignorespaces}
|
||||||
|
{\unskip\end{list}}
|
||||||
|
\setlength{\parindent}{0cm}
|
||||||
|
\setlength{\parskip}{0.2cm}
|
||||||
|
\addtocounter{secnumdepth}{1}
|
||||||
|
\sloppy
|
||||||
|
\usepackage[T1]{fontenc}
|
8
manual/manual-api/slsDetectorUsersDocs/latex/files.tex
Normal file
8
manual/manual-api/slsDetectorUsersDocs/latex/files.tex
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
\subsection{File List}
|
||||||
|
Here is a list of all files with brief descriptions:\begin{CompactList}
|
||||||
|
\item\contentsline{section}{\hyperlink{detectorData_8h}{detector\-Data.h} }{\pageref{detectorData_8h}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{mainClient_8cpp}{main\-Client.cpp} }{\pageref{mainClient_8cpp}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp} }{\pageref{mainReceiver_8cpp}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{slsDetectorUsers_8h}{sls\-Detector\-Users.h} }{\pageref{slsDetectorUsers_8h}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{slsReceiverUsers_8h}{sls\-Receiver\-Users.h} }{\pageref{slsReceiverUsers_8h}}{}
|
||||||
|
\end{CompactList}
|
26
manual/manual-api/slsDetectorUsersDocs/latex/index.tex
Normal file
26
manual/manual-api/slsDetectorUsersDocs/latex/index.tex
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
\subsection*{API for SLS detectors data acquisition}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition
|
||||||
|
|
||||||
|
The architecture of the acquisitions system is intended as follows: \begin{itemize}
|
||||||
|
\item A socket server running on the detector (or more than one in some special cases) \item C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS \item the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities) \item the possibility of running all commands from command line. In order to ensure a fast operation of this so called \char`\"{}text client\char`\"{} the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored \item a Root library for data postprocessing and detector calibration (energy, angle).\end{itemize}
|
||||||
|
\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.
|
||||||
|
|
||||||
|
\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.
|
||||||
|
|
||||||
|
\hyperlink{classdetectorData}{detector\-Data} is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.
|
||||||
|
|
||||||
|
You can find examples of how this classes can be instatiated in \hyperlink{mainClient_8cpp}{main\-Client.cpp} and \hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp}
|
||||||
|
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Authors:]\href{mailto:anna.bergamaschi@psi.ch}{\tt Anna Bergamaschi}, \href{mailto:dhanya.maliakal@psi.ch}{\tt Dhanya Maliakal} \end{Desc}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Version:]0.2 \subsubsection*{Currently supported detectors}\end{Desc}
|
||||||
|
\begin{itemize}
|
||||||
|
\item MYTHEN \item GOTTHARD controls \item GOTTHARD data receiver \paragraph*{Coming soon}\end{itemize}
|
||||||
|
\begin{itemize}
|
||||||
|
\item EIGER \end{itemize}
|
@ -0,0 +1,79 @@
|
|||||||
|
\hypertarget{mainClient_8cpp}{
|
||||||
|
\subsection{main\-Client.cpp File Reference}
|
||||||
|
\label{mainClient_8cpp}\index{mainClient.cpp@{mainClient.cpp}}
|
||||||
|
}
|
||||||
|
{\tt \#include $<$iostream$>$}\par
|
||||||
|
{\tt \#include \char`\"{}sls\-Detector\-Users.h\char`\"{}}\par
|
||||||
|
{\tt \#include \char`\"{}detector\-Data.h\char`\"{}}\par
|
||||||
|
\subsubsection*{Functions}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
int \hyperlink{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a}{data\-Callback} (\hyperlink{classdetectorData}{detector\-Data} $\ast$p\-Data, int iframe, void $\ast$p\-Arg)
|
||||||
|
\item
|
||||||
|
int \hyperlink{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97}{main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]})
|
||||||
|
\end{CompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Detailed Description}
|
||||||
|
This file is an example of how to implement the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class You can compile it linking it to the sls\-Detector library
|
||||||
|
|
||||||
|
gcc \hyperlink{mainClient_8cpp}{main\-Client.cpp} -L lib -l Sls\-Detector -lm -lpthread
|
||||||
|
|
||||||
|
where lib is the location of lib\-Sls\-Detector.so
|
||||||
|
|
||||||
|
Definition in file \hyperlink{mainClient_8cpp-source}{main\-Client.cpp}.
|
||||||
|
|
||||||
|
\subsubsection{Function Documentation}
|
||||||
|
\hypertarget{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a}{
|
||||||
|
\index{mainClient.cpp@{main\-Client.cpp}!dataCallback@{dataCallback}}
|
||||||
|
\index{dataCallback@{dataCallback}!mainClient.cpp@{main\-Client.cpp}}
|
||||||
|
\paragraph[dataCallback]{\setlength{\rightskip}{0pt plus 5cm}int data\-Callback (\hyperlink{classdetectorData}{detector\-Data} $\ast$ {\em p\-Data}, int {\em iframe}, void $\ast$ {\em p\-Arg})}\hfill}
|
||||||
|
\label{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a}
|
||||||
|
|
||||||
|
|
||||||
|
Definition of the data callback which simply prints out the number of points received and teh frame number
|
||||||
|
|
||||||
|
Definition at line 19 of file main\-Client.cpp.
|
||||||
|
|
||||||
|
References detector\-Data::npoints, and detector\-Data::npy.
|
||||||
|
|
||||||
|
Referenced by main().\hypertarget{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97}{
|
||||||
|
\index{mainClient.cpp@{main\-Client.cpp}!main@{main}}
|
||||||
|
\index{main@{main}!mainClient.cpp@{main\-Client.cpp}}
|
||||||
|
\paragraph[main]{\setlength{\rightskip}{0pt plus 5cm}int main (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}\hfill}
|
||||||
|
\label{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97}
|
||||||
|
|
||||||
|
|
||||||
|
example of a main program using the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class
|
||||||
|
|
||||||
|
if specified, argv\mbox{[}2\mbox{]} is used as detector ID (default is 0)
|
||||||
|
|
||||||
|
\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} is instantiated
|
||||||
|
|
||||||
|
if specified, argv\mbox{[}1\mbox{]} is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)
|
||||||
|
|
||||||
|
Setting the detector online (should be by default
|
||||||
|
|
||||||
|
Load setup file if argv\mbox{[}2\mbox{]} specified
|
||||||
|
|
||||||
|
defining the detector size
|
||||||
|
|
||||||
|
registering data callback
|
||||||
|
|
||||||
|
checking detector status and exiting if not idle
|
||||||
|
|
||||||
|
checking and setting detector settings
|
||||||
|
|
||||||
|
Settings exposure time to 10ms
|
||||||
|
|
||||||
|
Settings exposure time to 100ms
|
||||||
|
|
||||||
|
Settingsnumber of frames to 30
|
||||||
|
|
||||||
|
start measurement
|
||||||
|
|
||||||
|
returning when acquisition is finished or data are avilable
|
||||||
|
|
||||||
|
Definition at line 26 of file main\-Client.cpp.
|
||||||
|
|
||||||
|
References data\-Callback(), sls\-Detector\-Users::get\-Command(), sls\-Detector\-Users::get\-Detector\-Developer(), sls\-Detector\-Users::get\-Detector\-Settings(), sls\-Detector\-Users::get\-Detector\-Size(), sls\-Detector\-Users::get\-Detector\-Status(), sls\-Detector\-Users::read\-Configuration\-File(), sls\-Detector\-Users::register\-Data\-Callback(), sls\-Detector\-Users::retrieve\-Detector\-Setup(), sls\-Detector\-Users::run\-Status\-Type(), sls\-Detector\-Users::set\-Detector\-Size(), sls\-Detector\-Users::set\-Exposure\-Period(), sls\-Detector\-Users::set\-Exposure\-Time(), sls\-Detector\-Users::set\-Number\-Of\-Frames(), sls\-Detector\-Users::set\-Online(), sls\-Detector\-Users::set\-Settings(), and sls\-Detector\-Users::start\-Measurement().
|
@ -0,0 +1,35 @@
|
|||||||
|
\hypertarget{mainReceiver_8cpp}{
|
||||||
|
\subsection{main\-Receiver.cpp File Reference}
|
||||||
|
\label{mainReceiver_8cpp}\index{mainReceiver.cpp@{mainReceiver.cpp}}
|
||||||
|
}
|
||||||
|
{\tt \#include \char`\"{}sls\-Receiver\-Users.h\char`\"{}}\par
|
||||||
|
{\tt \#include $<$iostream$>$}\par
|
||||||
|
\subsubsection*{Functions}
|
||||||
|
\begin{CompactItemize}
|
||||||
|
\item
|
||||||
|
int \hyperlink{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97}{main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]})
|
||||||
|
\end{CompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Detailed Description}
|
||||||
|
This file is an example of how to implement the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class You can compile it linking it to the sls\-Detector library
|
||||||
|
|
||||||
|
gcc \hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp} -L lib -l Sls\-Detector -lm -lpthread
|
||||||
|
|
||||||
|
where lib is the location of lib\-Sls\-Detector.so
|
||||||
|
|
||||||
|
Definition in file \hyperlink{mainReceiver_8cpp-source}{main\-Receiver.cpp}.
|
||||||
|
|
||||||
|
\subsubsection{Function Documentation}
|
||||||
|
\hypertarget{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97}{
|
||||||
|
\index{mainReceiver.cpp@{main\-Receiver.cpp}!main@{main}}
|
||||||
|
\index{main@{main}!mainReceiver.cpp@{main\-Receiver.cpp}}
|
||||||
|
\paragraph[main]{\setlength{\rightskip}{0pt plus 5cm}int main (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}\hfill}
|
||||||
|
\label{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 25 of file main\-Receiver.cpp.
|
||||||
|
|
||||||
|
References sls\-Receiver\-Users::start(), and sls\-Receiver\-Users::stop().
|
@ -0,0 +1,4 @@
|
|||||||
|
\subsection{Namespace List}
|
||||||
|
Here is a list of all namespaces with brief descriptions:\begin{CompactList}
|
||||||
|
\item\contentsline{section}{\hyperlink{namespacestd}{std} }{\pageref{namespacestd}}{}
|
||||||
|
\end{CompactList}
|
@ -0,0 +1,6 @@
|
|||||||
|
\hypertarget{namespacestd}{
|
||||||
|
\subsection{std Namespace Reference}
|
||||||
|
\label{namespacestd}\index{std@{std}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
57
manual/manual-api/slsDetectorUsersDocs/latex/refman.tex
Normal file
57
manual/manual-api/slsDetectorUsersDocs/latex/refman.tex
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
\documentclass[a4paper]{article}
|
||||||
|
\usepackage{makeidx}
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{float}
|
||||||
|
\usepackage{textcomp}
|
||||||
|
\usepackage{alltt}
|
||||||
|
\usepackage{times}
|
||||||
|
\ifx\pdfoutput\undefined
|
||||||
|
\usepackage[ps2pdf,
|
||||||
|
pagebackref=true,
|
||||||
|
colorlinks=true,
|
||||||
|
linkcolor=blue
|
||||||
|
]{hyperref}
|
||||||
|
\usepackage{pspicture}
|
||||||
|
\else
|
||||||
|
\usepackage[pdftex,
|
||||||
|
pagebackref=true,
|
||||||
|
colorlinks=true,
|
||||||
|
linkcolor=blue
|
||||||
|
]{hyperref}
|
||||||
|
\fi
|
||||||
|
\usepackage{doxygen}
|
||||||
|
\makeindex
|
||||||
|
\setcounter{tocdepth}{1}
|
||||||
|
\renewcommand{\footrulewidth}{0.4pt}
|
||||||
|
\begin{document}
|
||||||
|
\begin{titlepage}
|
||||||
|
\vspace*{7cm}
|
||||||
|
\begin{center}
|
||||||
|
{\Large Reference Manual}\\
|
||||||
|
\vspace*{1cm}
|
||||||
|
{\large Generated by Doxygen 1.4.7}\\
|
||||||
|
\vspace*{0.5cm}
|
||||||
|
{\small Mon May 26 17:07:05 2014}\\
|
||||||
|
\end{center}
|
||||||
|
\end{titlepage}
|
||||||
|
\pagenumbering{roman}
|
||||||
|
\tableofcontents
|
||||||
|
\pagenumbering{arabic}
|
||||||
|
\section{Main Page}
|
||||||
|
\label{index}\hypertarget{index}{}\input{index}
|
||||||
|
\section{Namespace Documentation}
|
||||||
|
\input{namespacestd}
|
||||||
|
\section{Class Documentation}
|
||||||
|
\input{classdetectorData}
|
||||||
|
\input{classslsDetectorUsers}
|
||||||
|
\input{classslsReceiverUsers}
|
||||||
|
\section{File Documentation}
|
||||||
|
\input{detectorData_8h}
|
||||||
|
\input{mainClient_8cpp}
|
||||||
|
\input{mainReceiver_8cpp}
|
||||||
|
\input{slsDetectorUsers_8h}
|
||||||
|
\input{slsReceiverUsers_8h}
|
||||||
|
\printindex
|
||||||
|
\end{document}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user