fixed conflict

This commit is contained in:
bergamaschi 2019-08-21 16:28:45 +02:00
commit 2ef9aa0ea0
196 changed files with 5524 additions and 4229 deletions

4
.gitignore vendored
View File

@ -12,6 +12,10 @@ build
RELEASE.txt RELEASE.txt
Testing/ Testing/
ctbDict.cpp
ctbDict.h
*.pyc *.pyc
*/__pycache__/* */__pycache__/*

View File

@ -42,6 +42,7 @@ option (SLS_USE_TESTS "TESTS" OFF)
option (SLS_USE_INTEGRATION_TESTS "Integration Tests" OFF) option (SLS_USE_INTEGRATION_TESTS "Integration Tests" OFF)
option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF) option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF)
option(SLS_USE_PYTHON "Python bindings" OFF) option(SLS_USE_PYTHON "Python bindings" OFF)
option(SLS_BUILD_DOCS "Documentations" OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
@ -151,8 +152,7 @@ if (SLS_USE_RECEIVER)
if (SLS_USE_HDF5) if (SLS_USE_HDF5)
find_package(HDF5 1.10 COMPONENTS CXX REQUIRED) find_package(HDF5 1.10 COMPONENTS CXX REQUIRED)
endif (SLS_USE_HDF5) endif (SLS_USE_HDF5)
add_subdirectory(slsReceiverSoftware) add_subdirectory(slsReceiverSoftware)
add_subdirectory(manual/manual-api)
endif (SLS_USE_RECEIVER) endif (SLS_USE_RECEIVER)
if (SLS_USE_GUI) if (SLS_USE_GUI)
@ -181,10 +181,11 @@ configure_file( .clang-tidy
) )
add_subdirectory(sample) #add_subdirectory(sample)
add_subdirectory(docs)
if(SLS_BUILD_DOCS)
add_subdirectory(docs)
endif(SLS_BUILD_DOCS)

View File

@ -1,17 +1,17 @@
INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h
SRC= $(SRC:.h=.cpp) ctbDict.cpp SRC= $(INCS:.h=.cpp) ctbDict.cpp
LINKDEF=ctbLinkDef.h LINKDEF=ctbLinkDef.h
ZMQLIB=../slsReceiverSoftware/include ZMQLIB=../slsReceiverSoftware/include
LIBRARYCBF=$(CBFLIBDIR)/lib/*.o LIBRARYCBF=$(CBFLIBDIR)/lib/*.o
INCDIR=-I../slsReceiverSoftware/include/ -I../slsDetectorSoftware/include/ -I../slsSupportLib/include/ -I../slsDetectorCalibration -I../slsDetectorCalibration/dataStructures -I$(CBFLIBDIR)/include -I../slsDetectorCalibration/interpolations INCDIR=-I../slsReceiverSoftware/include/ -I../slsDetectorSoftware/include/ -I../slsSupportLib/include/ -I../slsDetectorCalibration -I../slsDetectorCalibration/dataStructures -I$(CBFLIBDIR)/include -I../slsDetectorCalibration/interpolations
LDFLAG=-L../bin -lSlsDetector -lSlsSupport -L/usr/lib64/ -lpthread -lm -lstdc++ -lzmq -pthread -lrt -ltiff -L$(ZMQLIB) -L$(CBFLIBDIR)/lib/ -std=c++11 LDFLAG=-L../build/bin -lSlsDetector -lSlsSupport -L/usr/lib64/ -lpthread -lm -lstdc++ -lzmq -pthread -lrt -ltiff -L$(ZMQLIB) -L$(CBFLIBDIR)/lib/ -std=c++11
# #
MAIN=ctbGui.cpp MAIN=ctbGui.cpp
DESTDIR?=../bin DESTDIR?=../build/bin
OBJS = $(SRC:.cpp=.o) $(MAIN:.cpp=.o) OBJS = $(SRC:.cpp=.o) $(MAIN:.cpp=.o)
@ -30,13 +30,13 @@ ctbDict.cpp: $(INCS) $(LINKDEF)
%.o : %.cpp %.o : %.cpp
echo $@ echo $@
g++ -DMYROOT `source root-config --cflags --glibs` -lMinuit -DCTB $(LDFLAG) -o $@ -c $< $(INCDIR) g++ -DMYROOT `root-config --cflags --glibs` -lMinuit -DCTB $(LDFLAG) -o $@ -c $< $(INCDIR)
#$(CXX) -o $@ -c $< $(INCLUDES) $(DFLAGS) -fPIC $(EPICSFLAGS) -lpthread #$(FLAGS) #$(CXX) -o $@ -c $< $(INCLUDES) $(DFLAGS) -fPIC $(EPICSFLAGS) -lpthread #$(FLAGS)
$(DESTDIR)/ctbGui: $(OBJS) $(LINKDEF) $(DESTDIR)/ctbGui: $(OBJS) $(LINKDEF)
g++ -DMYROOT `source root-config --cflags --glibs` -lMinuit -DCTB $(LDFLAG) -o ctbGui $(INCDIR) $(OBJS) ../slsDetectorCalibration/tiffIO.cpp g++ -DMYROOT `root-config --cflags --glibs` -lMinuit -DCTB $(LDFLAG) -o ctbGui $(INCDIR) $(OBJS) ../slsDetectorCalibration/tiffIO.cpp
mv ctbGui $(DESTDIR) mv ctbGui $(DESTDIR)
clean: clean:

View File

@ -597,12 +597,12 @@ hframe=new TGHorizontalFrame(this, 800,50);
acqThread = new TThread("acqThread", acqThread = new TThread("acqThread",
ctbAcquisition::ThreadHandle,(void*)this); ctbAcquisition::ThreadHandle,(void*)this);
// acqThread->Run(); // acqThread->Run();
cout <<"Registering progress callback" << endl; // cout <<"Registering progress callback" << endl;
try { // try {
myDet->registerProgressCallback(&progressCallback,(void*)this); // myDet->registerProgressCallback(&progressCallback,(void*)this);
} catch (...) { // } catch (...) {
cout << "Do nothing for this error" << endl; // cout << "Do nothing for this error" << endl;
} // }
cout <<"Registering data callback" << endl; cout <<"Registering data callback" << endl;
try{ try{

View File

@ -120,11 +120,11 @@ class ExperimentalDetector(multiDetectorApi):
# File # File
@property @property
def fname(self): def fname(self):
return element_if_equal(self.getFileName()) return element_if_equal(self.getFileNamePrefix())
@fname.setter @fname.setter
def fname(self, file_name): def fname(self, file_name):
self.setFileName(file_name) self.setFileNamePrefix(file_name)
@property @property
def fpath(self): def fpath(self):

View File

@ -20,22 +20,8 @@ class DetectorPythonInterface {
int getMultiDetectorId() { return multi_detector_id; } int getMultiDetectorId() { return multi_detector_id; }
// get image size as [nrow, ncols] return as a pair of ints
std::pair<int, int> getImageSize() {
std::pair<int, int> image_size{0, 0};
image_size.first = det.getMaxNumberOfChannelsPerDetector(
slsDetectorDefs::dimension::Y);
image_size.second = det.getMaxNumberOfChannelsPerDetector(
slsDetectorDefs::dimension::X);
return image_size;
}
void setImageSize(const int rows, const int cols) {
det.setMaxNumberOfChannelsPerDetector(slsDetectorDefs::dimension::Y,
rows);
det.setMaxNumberOfChannelsPerDetector(slsDetectorDefs::dimension::X,
cols);
}
// blocking command, acquire set number of frames // blocking command, acquire set number of frames
void acquire() { det.acquire(); } void acquire() { det.acquire(); }
@ -113,7 +99,7 @@ class DetectorPythonInterface {
void setFileFormat(const std::string &format); void setFileFormat(const std::string &format);
std::string getFileFormat(); std::string getFileFormat();
std::string checkOnline() { return det.checkOnline(); } // std::string checkOnline() { return det.checkOnline(); }
bool isChipPowered() { return det.powerChip(); } bool isChipPowered() { return det.powerChip(); }
void powerChip(const bool value) { det.powerChip(value); } void powerChip(const bool value) { det.powerChip(value); }
@ -150,13 +136,9 @@ class DetectorPythonInterface {
slsDetectorDefs::dacIndex dacNameToEnum(std::string dac_name); slsDetectorDefs::dacIndex dacNameToEnum(std::string dac_name);
std::pair<int, int> getDetectorGeometry() {
std::pair<int, int> g;
det.getNumberOfDetectors(g.first, g.second);
return g;
}
int getNumberOfDetectors() { return det.getNumberOfDetectors(); }
int getNumberOfDetectors() { return det.size(); }
std::string getRunStatus() { std::string getRunStatus() {
auto s = det.getRunStatus(); auto s = det.getRunStatus();
@ -234,7 +216,7 @@ class DetectorPythonInterface {
} }
void setRateCorrection(std::vector<double> tau) { void setRateCorrection(std::vector<double> tau) {
for (int i = 0; i < det.getNumberOfDetectors(); ++i) for (size_t i = 0; i < det.size(); ++i)
det.setRateCorrection(tau[i], i); det.setRateCorrection(tau[i], i);
} }
@ -282,21 +264,21 @@ class DetectorPythonInterface {
return det.setPatternWaitTime(level, -1, detPos); return det.setPatternWaitTime(level, -1, detPos);
} }
bool getFlippedDataX(int i) { // bool getFlippedDataX(int i) {
return det.getFlippedData(slsDetectorDefs::dimension::X, i); // return det.getFlippedData(slsDetectorDefs::dimension::X, i);
} // }
bool getFlippedDataY(int i) { // bool getFlippedDataY(int i) {
return det.getFlippedData(slsDetectorDefs::dimension::Y, i); // return det.getFlippedData(slsDetectorDefs::dimension::Y, i);
} // }
void setFlippedDataX(int i, bool value) { // void setFlippedDataX(int i, bool value) {
det.setFlippedData(slsDetectorDefs::dimension::X, value, i); // det.setFlippedData(slsDetectorDefs::dimension::X, value, i);
} // }
void setFlippedDataY(int i, bool value) { // void setFlippedDataY(int i, bool value) {
det.setFlippedData(slsDetectorDefs::dimension::Y, value, i); // det.setFlippedData(slsDetectorDefs::dimension::Y, value, i);
} // }
/*** Frame and file settings ***/ /*** Frame and file settings ***/
void setFileName(std::string fname) { det.setFileName(fname); } void setFileName(std::string fname) { det.setFileName(fname); }
@ -334,7 +316,7 @@ class DetectorPythonInterface {
std::vector<double> getMeasuredPeriod() { std::vector<double> getMeasuredPeriod() {
std::vector<double> mp; std::vector<double> mp;
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
auto t = det.getTimeLeft(slsDetectorDefs::MEASURED_PERIOD, i); auto t = det.getTimeLeft(slsDetectorDefs::MEASURED_PERIOD, i);
mp.push_back(static_cast<double>(t) * 1E-9); mp.push_back(static_cast<double>(t) * 1E-9);
} }
@ -342,7 +324,7 @@ class DetectorPythonInterface {
} }
std::vector<double> getMeasuredSubPeriod() { std::vector<double> getMeasuredSubPeriod() {
std::vector<double> mp; std::vector<double> mp;
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
auto t = det.getTimeLeft(slsDetectorDefs::MEASURED_SUBPERIOD, i); auto t = det.getTimeLeft(slsDetectorDefs::MEASURED_SUBPERIOD, i);
mp.push_back(static_cast<double>(t) * 1E-9); mp.push_back(static_cast<double>(t) * 1E-9);
} }
@ -505,12 +487,12 @@ class DetectorPythonInterface {
} }
int getNumberOfGates() { // int getNumberOfGates() {
return det.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, -1); // return det.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, -1);
} // }
void setNumberOfGates(const int t) { // void setNumberOfGates(const int t) {
det.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, t); // det.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, t);
} // }
// time in ns // time in ns
int64_t getDelay() { int64_t getDelay() {
@ -538,19 +520,19 @@ class DetectorPythonInterface {
det.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER, nframes); det.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER, nframes);
} }
std::string getTimingMode() { // std::string getTimingMode() {
return det.externalCommunicationType( // return det.externalCommunicationType(
det.setExternalCommunicationMode()); // det.setExternalCommunicationMode());
} // }
void setTimingMode(const std::string mode) { // void setTimingMode(const std::string mode) {
det.setExternalCommunicationMode(det.externalCommunicationType(mode)); // det.setExternalCommunicationMode(det.externalCommunicationType(mode));
} // }
void freeSharedMemory() { det.freeSharedMemory(); } void freeSharedMemory() { det.freeSharedMemory(); }
std::vector<std::string> getDetectorType() { std::vector<std::string> getDetectorType() {
std::vector<std::string> detector_type; std::vector<std::string> detector_type;
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
detector_type.push_back(det.getDetectorTypeAsString(i)); detector_type.push_back(det.getDetectorTypeAsString(i));
} }
return detector_type; return detector_type;
@ -577,8 +559,8 @@ class DetectorPythonInterface {
// detectors return a vector of strings // detectors return a vector of strings
std::vector<int> getReceiverStreamingPort() { std::vector<int> getReceiverStreamingPort() {
std::vector<int> vec; std::vector<int> vec;
vec.reserve(det.getNumberOfDetectors()); vec.reserve(det.size());
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
vec.push_back(det.getReceiverStreamingPort(i)); vec.push_back(det.getReceiverStreamingPort(i));
} }
return vec; return vec;
@ -590,8 +572,8 @@ class DetectorPythonInterface {
std::vector<int> getReceiverUDPPort() { std::vector<int> getReceiverUDPPort() {
std::vector<int> vec; std::vector<int> vec;
vec.reserve(det.getNumberOfDetectors()); vec.reserve(det.size());
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
vec.push_back(det.getReceiverUDPPort(i)); vec.push_back(det.getReceiverUDPPort(i));
} }
return vec; return vec;
@ -599,8 +581,8 @@ class DetectorPythonInterface {
std::vector<int> getReceiverUDPPort2() { std::vector<int> getReceiverUDPPort2() {
std::vector<int> vec; std::vector<int> vec;
vec.reserve(det.getNumberOfDetectors()); vec.reserve(det.size());
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
vec.push_back(det.getReceiverUDPPort2(i)); vec.push_back(det.getReceiverUDPPort2(i));
} }
return vec; return vec;
@ -990,7 +972,7 @@ void DetectorPythonInterface::setReadoutFlag(const std::string flag_name) {
std::vector<double> DetectorPythonInterface::getRateCorrection() { std::vector<double> DetectorPythonInterface::getRateCorrection() {
std::vector<double> rate_corr; std::vector<double> rate_corr;
for (int i = 0; i < det.getNumberOfDetectors(); ++i) { for (size_t i = 0; i < det.size(); ++i) {
rate_corr.push_back(det.getRateCorrection(i)); rate_corr.push_back(det.getRateCorrection(i));
} }
return rate_corr; return rate_corr;

View File

@ -18,16 +18,13 @@ void init_experimental(py::module &m) {
// Acq related // Acq related
.def("acquire", &Detector::acquire) .def("acquire", &Detector::acquire)
.def("startReceiver", &Detector::startReceiver, py::arg() = Positions{}) .def("clearAcquiringFlag", &Detector::clearAcquiringFlag)
.def("stopReceiver", &Detector::stopReceiver, py::arg() = Positions{})
.def("getAcquiringFlag", &Detector::getAcquiringFlag)
.def("setAcquiringFlag", &Detector::setAcquiringFlag)
.def("getReceiverStatus", &Detector::getReceiverStatus, .def("getReceiverStatus", &Detector::getReceiverStatus,
py::arg() = Positions{}) py::arg() = Positions{})
// Configuration // Configuration
.def("free", &Detector::freeSharedMemory) .def("free", &Detector::freeSharedMemory)
.def("setConfig", &Detector::setConfig) .def("loadConfig", &Detector::loadConfig)
.def("getHostname", &Detector::getHostname, py::arg() = Positions{}) .def("getHostname", &Detector::getHostname, py::arg() = Positions{})
// Bits and registers // Bits and registers
@ -35,7 +32,7 @@ void init_experimental(py::module &m) {
py::arg() = Positions{}) py::arg() = Positions{})
.def("clearBit", &Detector::clearBit, py::arg(), py::arg(), .def("clearBit", &Detector::clearBit, py::arg(), py::arg(),
py::arg() = Positions{}) py::arg() = Positions{})
.def("getRegister", &Detector::getRegister, py::arg(), .def("readRegister", &Detector::readRegister, py::arg(),
py::arg() = Positions{}) py::arg() = Positions{})
.def("getStartingFrameNumber", &Detector::getStartingFrameNumber, .def("getStartingFrameNumber", &Detector::getStartingFrameNumber,
@ -44,10 +41,10 @@ void init_experimental(py::module &m) {
py::arg(), py::arg() = Positions{}) py::arg(), py::arg() = Positions{})
// File // File
.def("getFileName", &Detector::getFileName) .def("getFileNamePrefix", &Detector::getFileNamePrefix)
.def("setFileName", &Detector::setFileName, py::arg()) .def("setFileNamePrefix", &Detector::setFileNamePrefix, py::arg(),py::arg() = Positions{})
.def("getFilePath", &Detector::getFilePath) .def("getFilePath", &Detector::getFilePath)
.def("setFilePath", &Detector::setFilePath, py::arg()) .def("setFilePath", &Detector::setFilePath, py::arg(),py::arg() = Positions{})
.def("setFileWrite", &Detector::setFileWrite, py::arg(), .def("setFileWrite", &Detector::setFileWrite, py::arg(),
py::arg() = Positions{}) py::arg() = Positions{})
.def("getFileWrite", &Detector::getFileWrite, py::arg() = Positions{}) .def("getFileWrite", &Detector::getFileWrite, py::arg() = Positions{})

View File

@ -110,7 +110,7 @@ PYBIND11_MODULE(_sls_detector, m) {
.def("readConfigurationFile", .def("readConfigurationFile",
&DetectorPythonInterface::readConfigurationFile) &DetectorPythonInterface::readConfigurationFile)
.def("readParametersFile", &DetectorPythonInterface::readParametersFile) .def("readParametersFile", &DetectorPythonInterface::readParametersFile)
.def("checkOnline", &DetectorPythonInterface::checkOnline) // .def("checkOnline", &DetectorPythonInterface::checkOnline)
.def("setReadoutClockSpeed", .def("setReadoutClockSpeed",
&DetectorPythonInterface::setReadoutClockSpeed) &DetectorPythonInterface::setReadoutClockSpeed)
.def("getReadoutClockSpeed", .def("getReadoutClockSpeed",
@ -173,8 +173,8 @@ PYBIND11_MODULE(_sls_detector, m) {
.def("getCycles", &DetectorPythonInterface::getCycles) .def("getCycles", &DetectorPythonInterface::getCycles)
.def("setCycles", &DetectorPythonInterface::setCycles) .def("setCycles", &DetectorPythonInterface::setCycles)
.def("getNumberOfGates", &DetectorPythonInterface::getNumberOfGates) // .def("getNumberOfGates", &DetectorPythonInterface::getNumberOfGates)
.def("setNumberOfGates", &DetectorPythonInterface::setNumberOfGates) // .def("setNumberOfGates", &DetectorPythonInterface::setNumberOfGates)
.def("getDelay", &DetectorPythonInterface::getDelay) .def("getDelay", &DetectorPythonInterface::getDelay)
.def("setDelay", &DetectorPythonInterface::setDelay) .def("setDelay", &DetectorPythonInterface::setDelay)
@ -183,8 +183,8 @@ PYBIND11_MODULE(_sls_detector, m) {
.def("setNumberOfStorageCells", &DetectorPythonInterface::setNumberOfStorageCells) .def("setNumberOfStorageCells", &DetectorPythonInterface::setNumberOfStorageCells)
.def("getNumberOfStorageCells", &DetectorPythonInterface::getNumberOfStorageCells) .def("getNumberOfStorageCells", &DetectorPythonInterface::getNumberOfStorageCells)
.def("getTimingMode", &DetectorPythonInterface::getTimingMode) // .def("getTimingMode", &DetectorPythonInterface::getTimingMode)
.def("setTimingMode", &DetectorPythonInterface::setTimingMode) // .def("setTimingMode", &DetectorPythonInterface::setTimingMode)
.def("getDetectorType", &DetectorPythonInterface::getDetectorType) .def("getDetectorType", &DetectorPythonInterface::getDetectorType)
@ -282,10 +282,10 @@ PYBIND11_MODULE(_sls_detector, m) {
&DetectorPythonInterface::getReceiverCurrentFrameIndex) &DetectorPythonInterface::getReceiverCurrentFrameIndex)
.def("getGapPixels", &DetectorPythonInterface::getGapPixels) .def("getGapPixels", &DetectorPythonInterface::getGapPixels)
.def("setGapPixels", &DetectorPythonInterface::setGapPixels) .def("setGapPixels", &DetectorPythonInterface::setGapPixels)
.def("getFlippedDataX", &DetectorPythonInterface::getFlippedDataX) // .def("getFlippedDataX", &DetectorPythonInterface::getFlippedDataX)
.def("getFlippedDataY", &DetectorPythonInterface::getFlippedDataY) // .def("getFlippedDataY", &DetectorPythonInterface::getFlippedDataY)
.def("setFlippedDataX", &DetectorPythonInterface::setFlippedDataX) // .def("setFlippedDataX", &DetectorPythonInterface::setFlippedDataX)
.def("setFlippedDataY", &DetectorPythonInterface::setFlippedDataY) // .def("setFlippedDataY", &DetectorPythonInterface::setFlippedDataY)
.def("getServerLock", &DetectorPythonInterface::getServerLock) .def("getServerLock", &DetectorPythonInterface::getServerLock)
.def("setServerLock", &DetectorPythonInterface::setServerLock) .def("setServerLock", &DetectorPythonInterface::setServerLock)
@ -332,14 +332,10 @@ PYBIND11_MODULE(_sls_detector, m) {
py::arg("level"), py::arg("duration"), py::arg("det_id") = -1) py::arg("level"), py::arg("duration"), py::arg("det_id") = -1)
.def("getPatternWaitTime", &DetectorPythonInterface::getPatternWaitTime, .def("getPatternWaitTime", &DetectorPythonInterface::getPatternWaitTime,
py::arg("level"), py::arg("det_id") = -1) py::arg("level"), py::arg("det_id") = -1);
.def("getImageSize", &DetectorPythonInterface::getImageSize)
.def("setImageSize", &DetectorPythonInterface::setImageSize)
.def("getNumberOfDetectors",
&DetectorPythonInterface::getNumberOfDetectors)
.def("getDetectorGeometry",
&DetectorPythonInterface::getDetectorGeometry);

View File

@ -40,7 +40,7 @@ auto main() -> int {
std::cout << "res.squash(-1): " << res.squash(-1) << '\n'; std::cout << "res.squash(-1): " << res.squash(-1) << '\n';
std::cout << "res3.squash(-1): " << res3.squash(-1) << '\n'; std::cout << "res3.squash(-1): " << res3.squash(-1) << '\n';
std::vector<int> ivec{1, 3, 5}; Result<int> ivec{1, 3, 5};
Result<sls::time::ns> nres(ivec); Result<sls::time::ns> nres(ivec);
// for (const auto& i : ivec) // for (const auto& i : ivec)

View File

@ -9,7 +9,8 @@ class moenchCommonMode : public commonModeSubtraction {
/** constructor - initalizes a commonModeSubtraction with 4 different regions of interest /** constructor - initalizes a commonModeSubtraction with 4 different regions of interest
\param nn number of samples for the moving average \param nn number of samples for the moving average
*/ */
moenchCommonMode(int nn=1000) : commonModeSubtraction(0){} ;
moenchCommonMode(int nn=0) : commonModeSubtraction(0){} ;
/* /\** add value to common mode as a function of the pixel value, subdividing the region of interest in the 4 supercolumns of 40 columns each; */ /* /\** add value to common mode as a function of the pixel value, subdividing the region of interest in the 4 supercolumns of 40 columns each; */

View File

@ -54,7 +54,7 @@
<enum>QTabWidget::North</enum> <enum>QTabWidget::North</enum>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>1</number>
</property> </property>
<property name="elideMode"> <property name="elideMode">
<enum>Qt::ElideLeft</enum> <enum>Qt::ElideLeft</enum>
@ -132,102 +132,20 @@
<string>Region of Interest</string> <string>Region of Interest</string>
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0"> <item row="1" column="0">
<widget class="QPushButton" name="btnAddRoi"> <widget class="QLabel" name="label_2">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize">
<size>
<width>130</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string> Add ROI Slot </string> <string>X Min:</string>
</property>
<property name="icon">
<iconset resource="../include/icons.qrc">
<normaloff>:/icons/images/add.png</normaloff>:/icons/images/add.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="4"> <item row="1" column="8">
<widget class="QPushButton" name="btnGetRoi">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>130</width>
<height>0</height>
</size>
</property>
<property name="text">
<string> Get ROI </string>
</property>
<property name="icon">
<iconset resource="../include/icons.qrc">
<normaloff>:/icons/images/download.png</normaloff>:/icons/images/download.png</iconset>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="btnSetRoi">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>130</width>
<height>0</height>
</size>
</property>
<property name="text">
<string> Set ROI </string>
</property>
<property name="icon">
<iconset resource="../include/icons.qrc">
<normaloff>:/icons/images/upload.png</normaloff>:/icons/images/upload.png</iconset>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QPushButton" name="btnClearRoi"> <widget class="QPushButton" name="btnClearRoi">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
@ -237,12 +155,12 @@
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>130</width> <width>0</width>
<height>0</height> <height>35</height>
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string> Clear ROI </string> <string>Clear ROI </string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../include/icons.qrc"> <iconset resource="../include/icons.qrc">
@ -250,45 +168,159 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="5"> <item row="1" column="1">
<widget class="QSpinBox" name="spinXmin">
<property name="minimumSize">
<size>
<width>160</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>1279</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="1" column="7">
<spacer name="horizontalSpacer_5"> <spacer name="horizontalSpacer_5">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>40</width>
<height>20</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="1" column="0" colspan="7"> <item row="1" column="3">
<widget class="QScrollArea" name="scrollArea"> <widget class="QLabel" name="label_3">
<property name="frameShape"> <property name="sizePolicy">
<enum>QFrame::NoFrame</enum> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="widgetResizable"> <property name="text">
<bool>true</bool> <string>X Max:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="4">
<widget class="QSpinBox" name="spinXmax">
<property name="minimumSize">
<size>
<width>160</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>1279</number>
</property>
<property name="value">
<number>-1</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Readout: </string>
</property>
</widget>
</item>
<item row="2" column="3">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="6">
<widget class="QPushButton" name="btnSetRoi">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>Set ROI </string>
</property>
<property name="icon">
<iconset resource="../include/icons.qrc">
<normaloff>:/icons/images/refresh.png</normaloff>:/icons/images/refresh.png</iconset>
</property>
</widget>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" colspan="4">
<widget class="QComboBox" name="comboReadout">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>160</width>
<height>0</height>
</size>
</property> </property>
<widget class="QWidget" name="roiWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>735</width>
<height>235</height>
</rect>
</property>
<layout class="QGridLayout" name="gridRoi">
<property name="horizontalSpacing">
<number>1</number>
</property>
<property name="verticalSpacing">
<number>15</number>
</property>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -399,7 +431,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Detector Control Port:</string> <string>Readout Control Port:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -910,7 +942,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Detector UDP MAC:</string> <string>Readout UDP MAC:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -929,7 +961,7 @@
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>Detector:</string> <string>Readout:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -968,7 +1000,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Detector UDP IP:</string> <string>Readout UDP IP:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -981,7 +1013,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Detector Stop Port:</string> <string>Readout Stop Port:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1402,11 +1434,11 @@ Exposure Time of a sub frame. Only for Eiger in 32 bit mode
<tabstops> <tabstops>
<tabstop>tabAdvancedSettings</tabstop> <tabstop>tabAdvancedSettings</tabstop>
<tabstop>spinSetAllTrimbits</tabstop> <tabstop>spinSetAllTrimbits</tabstop>
<tabstop>btnAddRoi</tabstop> <tabstop>comboReadout</tabstop>
<tabstop>spinXmin</tabstop>
<tabstop>spinXmax</tabstop>
<tabstop>btnSetRoi</tabstop> <tabstop>btnSetRoi</tabstop>
<tabstop>btnGetRoi</tabstop>
<tabstop>btnClearRoi</tabstop> <tabstop>btnClearRoi</tabstop>
<tabstop>scrollArea</tabstop>
<tabstop>comboDetector</tabstop> <tabstop>comboDetector</tabstop>
<tabstop>spinControlPort</tabstop> <tabstop>spinControlPort</tabstop>
<tabstop>spinStopPort</tabstop> <tabstop>spinStopPort</tabstop>

View File

@ -2000,16 +2000,10 @@ Displays minimum, maximum and sum of values for each plot.
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>&lt;nobr&gt; <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Sets the pace at which the receiver streams out images. Images in between the timeout or frequency are not sent out.&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Time Interval&lt;/span&gt;: Streaming time interval when an image should be streamed. &lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Every nth Image&lt;/span&gt;: Only every nth image is streamed. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
Streaming Interval between 2 plots. Default is time interval with 200 ms.
&lt;/nobr&gt;&lt;br&gt;&lt;br&gt;&lt;nobr&gt;
&lt;b&gt;Time Interval&lt;/b&gt;: Streaming time interval when an image should be streamed.
&lt;/nobr&gt;&lt;br&gt;&lt;nobr&gt;
&lt;b&gt;Every nth Image&lt;/b&gt;: Only every nth image is streamed.
&lt;/nobr&gt;</string>
</property> </property>
<property name="title"> <property name="title">
<string>Interval between Plots</string> <string>Receiver Streaming Frequency / Timer</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>

View File

@ -74,7 +74,6 @@ class qDrawPlot : public QWidget, private Ui::PlotObject {
void SetupPlots(); void SetupPlots();
void GetStatistics(double &min, double &max, double &sum); void GetStatistics(double &min, double &max, double &sum);
void DetachHists(); void DetachHists();
static void GetProgressCallBack(double currentProgress, void *this_pointer);
static void GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer); static void GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer);
static void GetDataCallBack(detectorData *data, uint64_t frameIndex, uint32_t subFrameIndex, void *this_pointer); static void GetDataCallBack(detectorData *data, uint64_t frameIndex, uint32_t subFrameIndex, void *this_pointer);
std::string AcquireThread(); std::string AcquireThread();

View File

@ -29,7 +29,6 @@ private slots:
void SetRxrUDPMAC(); void SetRxrUDPMAC();
void SetRxrZMQPort(int port); void SetRxrZMQPort(int port);
void SetRxrZMQIP(); void SetRxrZMQIP();
void AddROISlot();
void GetROI(); void GetROI();
void ClearROI(); void ClearROI();
void SetROI(); void SetROI();
@ -56,22 +55,12 @@ private:
void GetRxrUDPMAC(); void GetRxrUDPMAC();
void GetRxrZMQPort(); void GetRxrZMQPort();
void GetRxrZMQIP(); void GetRxrZMQIP();
void ClearROIWidgets();
void GetAllTrimbits(); void GetAllTrimbits();
void GetNumStoragecells(); void GetNumStoragecells();
void GetSubExposureTime(); void GetSubExposureTime();
void GetSubDeadTime(); void GetSubDeadTime();
multiSlsDetector *myDet; multiSlsDetector *myDet;
/** ROI */
std::vector <QLabel*> lblFromX;
std::vector <QSpinBox*> spinFromX;
std::vector <QLabel*> lblFromY;
std::vector <QSpinBox*> spinFromY;
std::vector <QLabel*> lblToX;
std::vector <QSpinBox*> spinToX;
std::vector <QLabel*> lblToY;
std::vector <QSpinBox*> spinToY;
}; };

View File

@ -64,7 +64,6 @@ void qDrawPlot::SetupWidgetWindow() {
SetupPlots(); SetupPlots();
SetDataCallBack(true); SetDataCallBack(true);
myDet->registerAcquisitionFinishedCallback(&(GetAcquisitionFinishedCallBack), this); myDet->registerAcquisitionFinishedCallback(&(GetAcquisitionFinishedCallBack), this);
myDet->registerProgressCallback(&(GetProgressCallBack), this);
// future watcher to watch result of AcquireThread only because it uses signals/slots to handle acquire exception // future watcher to watch result of AcquireThread only because it uses signals/slots to handle acquire exception
acqResultWatcher = new QFutureWatcher<std::string>(); acqResultWatcher = new QFutureWatcher<std::string>();
@ -80,8 +79,9 @@ void qDrawPlot::SetupPlots() {
setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal)); setFont(QFont("Sans Serif", qDefs::Q_FONT_SIZE, QFont::Normal));
// default image size // default image size
nPixelsX = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X); slsDetectorDefs::xy res = myDet->getNumberOfChannels();
nPixelsY = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y); nPixelsX = res.x;
nPixelsY = res.y;
switch(detType) { switch(detType) {
case slsDetectorDefs::MOENCH: case slsDetectorDefs::MOENCH:
npixelsy_jctb = (myDet->setTimer(slsDetectorDefs::ANALOG_SAMPLES, -1) * 2)/25;// for moench 03 npixelsy_jctb = (myDet->setTimer(slsDetectorDefs::ANALOG_SAMPLES, -1) * 2)/25;// for moench 03
@ -90,8 +90,11 @@ void qDrawPlot::SetupPlots() {
break; break;
case slsDetectorDefs::EIGER: case slsDetectorDefs::EIGER:
if (myDet->getQuad()) { if (myDet->getQuad()) {
nPixelsX = (myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::X) / 2) - 1; nPixelsX /= 2;
nPixelsY = myDet->getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::Y) * 2; nPixelsY *= 2;
if (nPixelsX != nPixelsY) {
--nPixelsX;
}
} }
break; break;
default: default:
@ -586,11 +589,6 @@ std::string qDrawPlot::AcquireThread() {
return std::string(""); return std::string("");
} }
void qDrawPlot::GetProgressCallBack(double currentProgress, void *this_pointer) {
((qDrawPlot *)this_pointer)->progress = currentProgress;
FILE_LOG(logDEBUG) << "Progress Call back successful";
}
void qDrawPlot::GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer) { void qDrawPlot::GetAcquisitionFinishedCallBack(double currentProgress, int detectorStatus, void *this_pointer) {
((qDrawPlot *)this_pointer)->AcquisitionFinished(currentProgress, detectorStatus); ((qDrawPlot *)this_pointer)->AcquisitionFinished(currentProgress, detectorStatus);
FILE_LOG(logDEBUG) << "Acquisition Finished Call back successful"; FILE_LOG(logDEBUG) << "Acquisition Finished Call back successful";
@ -602,6 +600,7 @@ void qDrawPlot::GetDataCallBack(detectorData *data, uint64_t frameIndex, uint32_
} }
void qDrawPlot::AcquisitionFinished(double currentProgress, int detectorStatus) { void qDrawPlot::AcquisitionFinished(double currentProgress, int detectorStatus) {
progress = currentProgress;
std::string status = slsDetectorDefs::runStatusType(static_cast<slsDetectorDefs::runStatus>(detectorStatus)); std::string status = slsDetectorDefs::runStatusType(static_cast<slsDetectorDefs::runStatus>(detectorStatus));
if (detectorStatus == slsDetectorDefs::ERROR) { if (detectorStatus == slsDetectorDefs::ERROR) {

View File

@ -10,18 +10,7 @@ qTabAdvanced::qTabAdvanced(QWidget *parent, multiSlsDetector *detector)
FILE_LOG(logDEBUG) << "Advanced ready"; FILE_LOG(logDEBUG) << "Advanced ready";
} }
qTabAdvanced::~qTabAdvanced() { qTabAdvanced::~qTabAdvanced() {}
for (size_t i = 0; i < lblFromX.size(); ++i) {
delete lblFromX[i];
delete lblFromY[i];
delete lblToX[i];
delete lblToY[i];
delete spinFromX[i];
delete spinFromY[i];
delete spinToX[i];
delete spinToY[i];
}
}
void qTabAdvanced::SetupWidgetWindow() { void qTabAdvanced::SetupWidgetWindow() {
// enabling according to det type // enabling according to det type
@ -93,9 +82,8 @@ void qTabAdvanced::Initialization() {
// roi // roi
if (tab_roi->isEnabled()) { if (tab_roi->isEnabled()) {
connect(btnAddRoi, SIGNAL(clicked()), this, SLOT(AddROISlot())); connect(comboReadout, SIGNAL(currentIndexChanged(int)), this, SLOT(GetROI()));
connect(btnSetRoi, SIGNAL(clicked()), this, SLOT(SetROI())); connect(btnSetRoi, SIGNAL(clicked()), this, SLOT(SetROI()));
connect(btnGetRoi, SIGNAL(clicked()), this, SLOT(GetROI()));
connect(btnClearRoi, SIGNAL(clicked()), this, SLOT(ClearROI())); connect(btnClearRoi, SIGNAL(clicked()), this, SLOT(ClearROI()));
} }
@ -122,14 +110,20 @@ void qTabAdvanced::PopulateDetectors() {
FILE_LOG(logDEBUG) << "Populating detectors"; FILE_LOG(logDEBUG) << "Populating detectors";
disconnect(comboDetector, SIGNAL(currentIndexChanged(int)), this, disconnect(comboDetector, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetDetector(int))); SLOT(SetDetector(int)));
disconnect(comboReadout, SIGNAL(currentIndexChanged(int)), this, SLOT(GetROI()));
comboDetector->clear(); comboDetector->clear();
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) comboReadout->clear();
for (unsigned int i = 0; i < myDet->size(); ++i) {
comboDetector->addItem(QString(myDet->getHostname(i).c_str())); comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
comboReadout->addItem(QString(myDet->getHostname(i).c_str()));
}
comboDetector->setCurrentIndex(0); comboDetector->setCurrentIndex(0);
comboReadout->setCurrentIndex(0);
connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, connect(comboDetector, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetDetector(int))); SLOT(SetDetector(int)));
connect(comboReadout, SIGNAL(currentIndexChanged(int)), this, SLOT(GetROI()));
} }
void qTabAdvanced::GetControlPort() { void qTabAdvanced::GetControlPort() {
@ -332,7 +326,7 @@ void qTabAdvanced::SetDetector(int index) {
GetRxrZMQPort(); GetRxrZMQPort();
GetRxrZMQIP(); GetRxrZMQIP();
myDet->printReceiverConfiguration(logDEBUG); FILE_LOG(logDEBUG) << myDet->printReceiverConfiguration();
} }
void qTabAdvanced::SetControlPort(int port) { void qTabAdvanced::SetControlPort(int port) {
@ -462,173 +456,33 @@ void qTabAdvanced::SetRxrZMQIP() {
&qTabAdvanced::GetRxrZMQIP) &qTabAdvanced::GetRxrZMQIP)
} }
void qTabAdvanced::AddROISlot() {
FILE_LOG(logDEBUG) << "Add ROI Slot";
QLabel *lFromX = new QLabel("x min:");
QLabel *lFromY = new QLabel("y min:");
QLabel *lToX = new QLabel("x max:");
QLabel *lToY = new QLabel("y max:");
QSpinBox *sFromX = new QSpinBox();
QSpinBox *sFromY = new QSpinBox();
QSpinBox *sToX = new QSpinBox();
QSpinBox *sToY = new QSpinBox();
lFromX->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
lFromY->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
lToX->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
lToY->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sFromX->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sFromY->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sToX->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sToY->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
lFromX->setFixedWidth(50);
lFromY->setFixedWidth(50);
lToX->setFixedWidth(50);
lToY->setFixedWidth(50);
sFromX->setFixedWidth(80);
sFromY->setFixedWidth(80);
sToX->setFixedWidth(80);
sToY->setFixedWidth(80);
sFromX->setFixedHeight(19);
sFromY->setFixedHeight(19);
sToX->setFixedHeight(19);
sToY->setFixedHeight(19);
sFromX->setMaximum(myDet->getTotalNumberOfChannels(slsDetectorDefs::X) - 1);
sToX->setMaximum(myDet->getTotalNumberOfChannels(slsDetectorDefs::X) - 1);
sFromY->setMaximum(myDet->getTotalNumberOfChannels(slsDetectorDefs::Y) - 1);
sToY->setMaximum(myDet->getTotalNumberOfChannels(slsDetectorDefs::Y) - 1);
sFromX->setMinimum(-1);
sToX->setMinimum(-1);
sFromY->setMinimum(-1);
sToY->setMinimum(-1);
sFromX->setValue(-1);
sFromY->setValue(-1);
sToX->setValue(-1);
sToY->setValue(-1);
lblFromX.push_back(lFromX);
lblFromY.push_back(lFromY);
lblToX.push_back(lToX);
lblToY.push_back(lToY);
spinFromX.push_back(sFromX);
spinFromY.push_back(sFromY);
spinToX.push_back(sToX);
spinToY.push_back(sToY);
int nroi = (int)lblFromX.size();
gridRoi->addWidget(lblFromX[nroi], nroi, 0, Qt::AlignTop);
gridRoi->addWidget(spinFromX[nroi], nroi, 1, Qt::AlignTop);
// FIXME: gridRoi->addItem(new
// QSpacerItem(40,20,QSizePolicy::Expanding,QSizePolicy::Fixed),
// nroi,2,Qt::AlignTop);
gridRoi->addWidget(lblToX[nroi], nroi, 3, Qt::AlignTop);
gridRoi->addWidget(spinToX[nroi], nroi, 4, Qt::AlignTop);
// FIXME: gridRoi->addItem(new
// QSpacerItem(40,20,QSizePolicy::Expanding,QSizePolicy::Fixed),
// nroi,5,Qt::AlignTop);
gridRoi->addWidget(lblFromY[nroi], nroi, 6, Qt::AlignTop);
gridRoi->addWidget(spinFromY[nroi], nroi, 7, Qt::AlignTop);
// FIXME: gridRoi->addItem(new
// QSpacerItem(40,20,QSizePolicy::Expanding,QSizePolicy::Fixed),
// nroi,8,Qt::AlignTop);
gridRoi->addWidget(lblToY[nroi], nroi, 9, Qt::AlignTop);
gridRoi->addWidget(spinToY[nroi], nroi, 10, Qt::AlignTop);
lblFromX[nroi]->show();
spinFromX[nroi]->show();
lblToX[nroi]->show();
spinToX[nroi]->show();
lblFromY[nroi]->show();
spinFromY[nroi]->show();
lblToY[nroi]->show();
spinToY[nroi]->show();
FILE_LOG(logDEBUG) << "ROI Inputs added";
}
void qTabAdvanced::GetROI() { void qTabAdvanced::GetROI() {
FILE_LOG(logDEBUG) << "Getting ROI"; FILE_LOG(logDEBUG) << "Getting ROI";
ClearROIWidgets();
try { try {
int nroi = 0; slsDetectorDefs::ROI roi = myDet->getROI(comboReadout->currentIndex());
const slsDetectorDefs::ROI *roi = myDet->getROI(nroi); spinXmin->setValue(roi.xmin);
if (roi != nullptr) { spinXmax->setValue(roi.xmax);
for (int i = 0; i < nroi; ++i) {
AddROISlot();
spinFromX[i]->setValue(roi[i].xmin);
spinFromY[i]->setValue(roi[i].ymin);
spinToX[i]->setValue(roi[i].xmax);
spinToY[i]->setValue(roi[i].ymax);
}
FILE_LOG(logDEBUG) << "ROIs populated: " << nroi;
}
} CATCH_DISPLAY ("Could not get ROI.", "qTabAdvanced::GetROI") } CATCH_DISPLAY ("Could not get ROI.", "qTabAdvanced::GetROI")
} }
void qTabAdvanced::ClearROIWidgets() {
FILE_LOG(logDEBUG) << "Clear ROI Widgets";
// hide widgets
QLayoutItem *item;
while ((item = gridRoi->takeAt(0))) {
if (item->widget()) {
item->widget()->hide();
gridRoi->removeWidget(item->widget());
}
}
// delete widgets
for (size_t i = 0; i < lblFromX.size(); ++i) {
delete lblFromX[i];
delete spinFromX[i];
delete lblToX[i];
delete spinToY[i];
delete lblFromY[i];
delete spinFromY[i];
delete lblToY[i];
delete spinToY[i];
}
lblFromX.clear();
spinFromX.clear();
lblToX.clear();
spinToY.clear();
lblFromY.clear();
spinFromY.clear();
lblToY.clear();
spinToY.clear();
}
void qTabAdvanced::ClearROI() { void qTabAdvanced::ClearROI() {
FILE_LOG(logINFO) << "Clearing ROI"; FILE_LOG(logINFO) << "Clearing ROI";
if (QMessageBox::warning( spinXmin->setValue(-1);
this, "Clear ROI", spinXmax->setValue(-1);
"Are you sure you want to clear all the ROI in detector?", SetROI();
QMessageBox::Yes | QMessageBox::No, FILE_LOG(logDEBUG) << "ROIs cleared";
QMessageBox::No) == QMessageBox::Yes) {
ClearROIWidgets();
SetROI();
FILE_LOG(logDEBUG) << "ROIs cleared";
}
} }
void qTabAdvanced::SetROI() { void qTabAdvanced::SetROI() {
// get roi from widgets
int nroi = (int)lblFromX.size(); slsDetectorDefs::ROI roi;
slsDetectorDefs::ROI roi[nroi]; roi.xmin = spinXmin->value();
for (int i = 0; i < nroi; ++i) { roi.xmax = spinXmax->value();
roi[i].xmin = spinFromX[i]->value();
roi[i].ymin = spinFromY[i]->value();
roi[i].xmax = spinToX[i]->value();
roi[i].ymax = spinToY[i]->value();
}
// set roi // set roi
FILE_LOG(logINFO) << "Setting ROI:" << nroi; FILE_LOG(logINFO) << "Setting ROI: [" << roi.xmin << ", " << roi.xmax << "]";
try { try {
myDet->setROI(nroi, roi, -1); myDet->setROI(roi, comboReadout->currentIndex());
} CATCH_DISPLAY ("Could not set these ROIs.", } CATCH_DISPLAY ("Could not set these ROIs.",
"qTabAdvanced::SetROI") "qTabAdvanced::SetROI")

View File

@ -80,8 +80,8 @@ void qTabDataOutput::PopulateDetectors() {
comboDetector->clear(); comboDetector->clear();
comboDetector->addItem("All"); comboDetector->addItem("All");
if (myDet->getNumberOfDetectors() > 1) { if (myDet->size() > 1) {
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) for (unsigned int i = 0; i < myDet->size(); ++i)
comboDetector->addItem(QString(myDet->getHostname(i).c_str())); comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
} }
} }

View File

@ -55,7 +55,7 @@ void qTabDebugging::PopulateDetectors() {
FILE_LOG(logDEBUG) << "Populating detectors"; FILE_LOG(logDEBUG) << "Populating detectors";
comboDetector->clear(); comboDetector->clear();
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) { for (unsigned int i = 0; i < myDet->size(); ++i) {
comboDetector->addItem(QString(myDet->getHostname(i).c_str())); comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
} }
} }

View File

@ -124,8 +124,8 @@ void qTabDeveloper::PopulateDetectors() {
comboDetector->clear(); comboDetector->clear();
comboDetector->addItem("All"); comboDetector->addItem("All");
if (myDet->getNumberOfDetectors() > 1) { if (myDet->size() > 1) {
for (int i = 0; i < myDet->getNumberOfDetectors(); ++i) for (unsigned int i = 0; i < myDet->size(); ++i)
comboDetector->addItem(QString(myDet->getHostname(i).c_str())); comboDetector->addItem(QString(myDet->getHostname(i).c_str()));
} }
comboDetector->setCurrentIndex(0); comboDetector->setCurrentIndex(0);

View File

@ -201,9 +201,9 @@ void qTabMeasurement::GetTimingMode() {
try { try {
auto oldMode = comboTimingMode->currentIndex(); auto oldMode = comboTimingMode->currentIndex();
auto retval = myDet->setExternalCommunicationMode(); auto retval = myDet->setTimingMode();
switch(retval) { switch(retval) {
case slsDetectorDefs::GET_EXTERNAL_COMMUNICATION_MODE: case slsDetectorDefs::GET_TIMING_MODE:
qDefs::Message(qDefs::WARNING, "Timing Mode is inconsistent for all detectors.", "qTabMeasurement::GetTimingMode"); qDefs::Message(qDefs::WARNING, "Timing Mode is inconsistent for all detectors.", "qTabMeasurement::GetTimingMode");
break; break;
case slsDetectorDefs::AUTO_TIMING: case slsDetectorDefs::AUTO_TIMING:
@ -229,7 +229,7 @@ void qTabMeasurement::SetTimingMode(int val) {
FILE_LOG(logINFO) << "Setting timing mode:" << comboTimingMode->currentText().toAscii().data(); FILE_LOG(logINFO) << "Setting timing mode:" << comboTimingMode->currentText().toAscii().data();
try { try {
myDet->setExternalCommunicationMode(static_cast<slsDetectorDefs::externalCommunicationMode>(val)); myDet->setTimingMode(static_cast<slsDetectorDefs::timingMode>(val));
EnableWidgetsforTimingMode(); EnableWidgetsforTimingMode();
} CATCH_HANDLE("Could not set timing mode.", "qTabMeasurement::SetTimingMode", this, &qTabMeasurement::GetTimingMode) } CATCH_HANDLE("Could not set timing mode.", "qTabMeasurement::SetTimingMode", this, &qTabMeasurement::GetTimingMode)
} }

View File

@ -1,2 +1,5 @@
add_subdirectory(ctbDetectorServer)
add_subdirectory(eigerDetectorServer) add_subdirectory(eigerDetectorServer)
add_subdirectory(gotthardDetectorServer)
add_subdirectory(jungfrauDetectorServer) add_subdirectory(jungfrauDetectorServer)
#add_subdirectory(moenchDetectorServer)

View File

@ -1 +0,0 @@
../slsDetectorServer/AD7689.h

View File

@ -1 +0,0 @@
../slsDetectorServer/AD9257.h

View File

@ -1 +0,0 @@
../slsDetectorServer/ALTERA_PLL.h

View File

@ -0,0 +1,31 @@
add_executable(ctbDetectorServer
slsDetectorFunctionList.c
../slsDetectorServer/slsDetectorServer.c
../slsDetectorServer/slsDetectorServer_funcs.c
../slsDetectorServer/communication_funcs.c
)
include_directories(
../slsDetectorServer/
../../slsSupportLib/include
)
target_include_directories(ctbDetectorServer
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
)
target_compile_definitions(ctbDetectorServer
PUBLIC CHIPTESTBOARDD VIRTUAL STOP_SERVER
)
target_link_libraries(ctbDetectorServer
PUBLIC pthread rt
)
set_target_properties(ctbDetectorServer PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
install(TARGETS ctbDetectorServer
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@ -1 +0,0 @@
../slsDetectorServer/I2C.h

View File

@ -1 +0,0 @@
../slsDetectorServer/INA226.h

View File

@ -1 +0,0 @@
../slsDetectorServer/LTC2620.h

View File

@ -1 +0,0 @@
../slsDetectorServer/MAX1932.h

View File

@ -1,14 +1,17 @@
current_dir = $(shell pwd)
main_server = ../slsDetectorServer/
support_lib = ../../slsSupportLib/include/
CROSS = bfin-uclinux- CROSS = bfin-uclinux-
CC = $(CROSS)gcc CC = $(CROSS)gcc
CFLAGS += -Wall -DCHIPTESTBOARDD -DSTOP_SERVER #-DDEBUG1 #-DJCTB -DVERBOSEI #-DVERBOSE CFLAGS += -Wall -DCHIPTESTBOARDD -DSTOP_SERVER -I$(main_server) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
LDLIBS += -lm -lstdc++ LDLIBS += -lm
PROGS = ctbDetectorServer PROGS = ctbDetectorServer
DESTDIR ?= bin DESTDIR ?= bin
INSTMODE = 0777 INSTMODE = 0777
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c SRCS = $(main_server)communication_funcs.c $(main_server)slsDetectorServer.c $(main_server)slsDetectorServer_funcs.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.c=.o) OBJS = $(SRCS:.c=.o)
all: clean versioning $(PROGS) all: clean versioning $(PROGS)
#all: clean $(PROGS) #all: clean $(PROGS)
@ -29,7 +32,7 @@ $(PROGS): $(OBJS)
rm *.gdb rm *.gdb
clean: clean:
rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_server)*.o

View File

@ -1,27 +0,0 @@
CC = gcc
CFLAGS += -Wall -DCHIPTESTBOARDD -DVIRTUAL -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE
LDLIBS += -lm -lstdc++ -pthread
PROGS = ctbDetectorServer_virtual
DESTDIR ?= bin
INSTMODE = 0777
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.c=.o)
all: clean versioning $(PROGS)
boot: $(OBJS)
versioning:
@echo `tput setaf 6; ./updateGitVersion.sh; tput sgr0;`
$(PROGS): $(OBJS)
# echo $(OBJS)
mkdir -p $(DESTDIR)
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
mv $(PROGS) $(DESTDIR)
clean:
rm -rf $(DESTDIR)/$(PROGS) *.o

View File

@ -1 +0,0 @@
../slsDetectorServer/UDPPacketHeaderGenerator.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/ansi.h

View File

@ -1 +0,0 @@
../slsDetectorServer/blackfin.h

View File

@ -1 +0,0 @@
../slsDetectorServer/common.h

View File

@ -1 +0,0 @@
../slsDetectorServer/commonServerFunctions.h

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.h

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs_UDP.h

View File

@ -1 +0,0 @@
../slsDetectorServer/logger.h

View File

@ -1 +0,0 @@
../slsDetectorServer/programfpga.h

View File

@ -1,6 +1,6 @@
#include "slsDetectorFunctionList.h" #include "slsDetectorFunctionList.h"
#include "versionAPI.h" #include "versionAPI.h"
#include "logger.h" #include "clogger.h"
#include "communication_funcs_UDP.h" #include "communication_funcs_UDP.h"
#include "UDPPacketHeaderGenerator.h" #include "UDPPacketHeaderGenerator.h"
@ -1444,9 +1444,9 @@ int setHighVoltage(int val){
/* parameters - timing, extsig */ /* parameters - timing, extsig */
void setTiming( enum externalCommunicationMode arg){ void setTiming( enum timingMode arg){
if(arg != GET_EXTERNAL_COMMUNICATION_MODE){ if(arg != GET_TIMING_MODE){
switch((int)arg){ switch((int)arg){
case AUTO_TIMING: case AUTO_TIMING:
FILE_LOG(logINFO, ("Set Timing: Auto\n")); FILE_LOG(logINFO, ("Set Timing: Auto\n"));
@ -1464,7 +1464,7 @@ void setTiming( enum externalCommunicationMode arg){
} }
enum externalCommunicationMode getTiming() { enum timingMode getTiming() {
if (bus_r(EXT_SIGNAL_REG) == EXT_SIGNAL_MSK) if (bus_r(EXT_SIGNAL_REG) == EXT_SIGNAL_MSK)
return TRIGGER_EXPOSURE; return TRIGGER_EXPOSURE;
return AUTO_TIMING; return AUTO_TIMING;

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorFunctionList.h

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer.c

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_defs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/versionAPI.h

View File

@ -1,4 +1,4 @@
#include "logger.h" #include "clogger.h"
#include "Beb.h" #include "Beb.h"
#include "FebRegisterDefs.h" #include "FebRegisterDefs.h"
#include "xparameters.h" #include "xparameters.h"
@ -1010,8 +1010,8 @@ int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_nu
unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets
FILE_LOG(logDEBUG1, ("----Beb_RequestNImages Start----\n")); FILE_LOG(logDEBUG1, ("----Beb_RequestNImages Start----\n"));
FILE_LOG(logDEBUG1, ("beb_number:%X, ten_gig:%X,dst_number:%X, npackets:%X, " FILE_LOG(logINFO, ("beb_number:%d, ten_gig:%d,dst_number:%d, npackets:%d, "
"Beb_bit_mode:%X, header_size:%X, nimages:%d, test_just_send_out_packets_no_wait:%X\n", "Beb_bit_mode:%d, header_size:%d, nimages:%d, test_just_send_out_packets_no_wait:%d\n",
beb_number, ten_gig, dst_number, npackets, Beb_bit_mode, header_size, beb_number, ten_gig, dst_number, npackets, Beb_bit_mode, header_size,
nimages, test_just_send_out_packets_no_wait)); nimages, test_just_send_out_packets_no_wait));

View File

@ -1,8 +1,13 @@
set(src set(src
slsDetectorFunctionList.c slsDetectorFunctionList.c
slsDetectorServer.c ../slsDetectorServer/slsDetectorServer.c
slsDetectorServer_funcs.c ../slsDetectorServer/slsDetectorServer_funcs.c
communication_funcs.c ../slsDetectorServer/communication_funcs.c
)
include_directories(
../slsDetectorServer
../../slsSupportLib/include
) )
add_executable(eigerDetectorServerMaster add_executable(eigerDetectorServerMaster

View File

@ -1,7 +1,7 @@
#include "FebControl.h" #include "FebControl.h"
#include "FebRegisterDefs.h" #include "FebRegisterDefs.h"
#include "slsDetectorServer_defs.h" #include "slsDetectorServer_defs.h"
#include "logger.h" #include "clogger.h"
#include "Beb.h" #include "Beb.h"
#include <unistd.h> #include <unistd.h>

View File

@ -1,7 +1,7 @@
#include "FebInterface.h" #include "FebInterface.h"
#include "LocalLinkInterface.h" #include "LocalLinkInterface.h"
#include "xparameters.h" #include "xparameters.h"
#include "logger.h" #include "clogger.h"
#include <unistd.h> #include <unistd.h>

View File

@ -1,6 +1,6 @@
#include "LocalLinkInterface.h" #include "LocalLinkInterface.h"
#include "HardwareMMappingDefs.h" #include "HardwareMMappingDefs.h"
#include "logger.h" #include "clogger.h"
#include <unistd.h> #include <unistd.h>
#include <sys/mman.h> #include <sys/mman.h>

View File

@ -1,16 +1,18 @@
CC = powerpc-4xx-softfloat-gcc current_dir = $(shell pwd)
BLACKFIN_CC = bfin-uclinux-gcc main_server = ../slsDetectorServer/
CFLAGS += -Wall -DEIGERD -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE -DPCCOMPILE -DMARTIN support_lib = ../../slsSupportLib/include/
LDLIBS += -lm -lstdc++
CROSS = powerpc-4xx-softfloat-
BLACKFIN_CC = bfin-uclinux-gcc
CC = $(CROSS)gcc
CFLAGS += -Wall -DEIGERD -DSTOP_SERVER -I$(main_server) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
LDLIBS += -lm
PROGS = eigerDetectorServer PROGS = eigerDetectorServer
DESTDIR ?= bin DESTDIR ?= bin
INSTMODE = 0777 INSTMODE = 0777
SRCS = $(main_server)communication_funcs.c $(main_server)slsDetectorServer.c $(main_server)slsDetectorServer_funcs.c slsDetectorFunctionList.c HardwareIO.c LocalLinkInterface.c FebInterface.c FebControl.c Beb.c
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c HardwareIO.c LocalLinkInterface.c FebInterface.c FebControl.c Beb.c OBJS = $(SRCS:.c=.o)
OBJS = $(SRC_CLNT:.c=.o)
all: clean versioning $(PROGS) #hv9m_blackfin_server all: clean versioning $(PROGS) #hv9m_blackfin_server
@ -26,16 +28,16 @@ versioning:
$(PROGS): $(OBJS) $(PROGS): $(OBJS)
# echo $(OBJS) # echo $(OBJS)
mkdir -p $(DESTDIR) mkdir -p $(DESTDIR)
$(CC) -o $@ $(SRC_CLNT) $(CFLAGS) $(LDLIBS) $(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
mv $(PROGS) $(DESTDIR) mv $(PROGS) $(DESTDIR)
hv9m_blackfin_server:9mhvserial_bf.c hv9m_blackfin_server:9mhvserial_bf.c
$(BLACKFIN_CC) -o hv9m_blackfin_server 9mhvserial_bf.c -Wall #-DVERBOSE $(BLACKFIN_CC) -o hv9m_blackfin_server 9mhvserial_bf.c -Wall #-DVERBOSE
mv hv9m_blackfin_server $(DESTDIR) mv hv9m_blackfin_server $(DESTDIR)
rm hv9m_blackfin_server.gdb rm hv9m_blackfin_server.gdb $(main_server)*.o
clean: clean:
rm -rf $(DESTDIR)/$(PROGS) *.o $(DESTDIR)/hv9m_blackfin_server rm -rf $(DESTDIR)/$(PROGS) *.o $(DESTDIR)/hv9m_blackfin_server $(main_server)*.o

View File

@ -1 +0,0 @@
../../slsSupportLib/include/ansi.h

View File

@ -1 +0,0 @@
../slsDetectorServer/common.h

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.h

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs_UDP.h

View File

@ -1 +0,0 @@
../slsDetectorServer/logger.h

View File

@ -1,6 +1,6 @@
#include "slsDetectorFunctionList.h" #include "slsDetectorFunctionList.h"
#include "versionAPI.h" #include "versionAPI.h"
#include "logger.h" #include "clogger.h"
#include "common.h" #include "common.h"
#ifndef VIRTUAL #ifndef VIRTUAL
@ -1193,9 +1193,9 @@ int setHighVoltage(int val) {
/* parameters - timing, extsig */ /* parameters - timing, extsig */
void setTiming( enum externalCommunicationMode arg) { void setTiming( enum timingMode arg) {
enum externalCommunicationMode ret=GET_EXTERNAL_COMMUNICATION_MODE; enum timingMode ret=GET_TIMING_MODE;
if (arg != GET_EXTERNAL_COMMUNICATION_MODE) { if (arg != GET_TIMING_MODE) {
switch((int)arg) { switch((int)arg) {
case AUTO_TIMING: ret = 0; break; case AUTO_TIMING: ret = 0; break;
case TRIGGER_EXPOSURE: ret = 2; break; case TRIGGER_EXPOSURE: ret = 2; break;
@ -1211,8 +1211,8 @@ void setTiming( enum externalCommunicationMode arg) {
} }
enum externalCommunicationMode getTiming() { enum timingMode getTiming() {
enum externalCommunicationMode ret = GET_EXTERNAL_COMMUNICATION_MODE; enum timingMode ret = GET_TIMING_MODE;
ret = eiger_triggermode; ret = eiger_triggermode;
switch((int)ret) { switch((int)ret) {
case 0: ret = AUTO_TIMING; break; case 0: ret = AUTO_TIMING; break;

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorFunctionList.h

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer.c

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_defs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/versionAPI.h

View File

@ -1 +0,0 @@
../slsDetectorServer/AD9252.h

View File

@ -1 +0,0 @@
../slsDetectorServer/AD9257.h

View File

@ -0,0 +1,31 @@
add_executable(gotthardDetectorServer
slsDetectorFunctionList.c
../slsDetectorServer/slsDetectorServer.c
../slsDetectorServer/slsDetectorServer_funcs.c
../slsDetectorServer/communication_funcs.c
)
include_directories(
../slsDetectorServer/
../../slsSupportLib/include
)
target_include_directories(gotthardDetectorServer
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
)
target_compile_definitions(gotthardDetectorServer
PUBLIC GOTTHARDD VIRTUAL STOP_SERVER
)
target_link_libraries(gotthardDetectorServer
PUBLIC pthread rt
)
set_target_properties(gotthardDetectorServer PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
install(TARGETS gotthardDetectorServer
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@ -1 +0,0 @@
../slsDetectorServer/LTC2620.h

View File

@ -1,14 +1,17 @@
CROSS = bfin-uclinux- current_dir = $(shell pwd)
CC = $(CROSS)gcc main_server = ../slsDetectorServer/
CFLAGS += -Wall -DGOTTHARDD -DSTOP_SERVER # -DVERBOSE support_lib = ../../slsSupportLib/include/
LDLIBS += -lm -lstdc++
CROSS = bfin-uclinux-
CC = $(CROSS)gcc
CFLAGS += -Wall -DGOTTHARDD -DSTOP_SERVER -I$(main_server) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
LDLIBS += -lm
PROGS = gotthardDetectorServer PROGS = gotthardDetectorServer
DESTDIR ?= bin DESTDIR ?= bin
INSTMODE = 0777 INSTMODE = 0777
SRCS = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c SRCS = $(main_server)communication_funcs.c $(main_server)slsDetectorServer.c $(main_server)slsDetectorServer_funcs.c slsDetectorFunctionList.c
OBJS = $(SRCS:%.c=%.o) OBJS = $(SRCS:.c=.o)
all: clean versioning $(PROGS) all: clean versioning $(PROGS)
@ -29,7 +32,7 @@ $(PROGS): $(OBJS)
rm *.gdb rm *.gdb
clean: clean:
rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_server)*.o

View File

@ -1,27 +0,0 @@
CC = gcc
CFLAGS += -Wall -DGOTTHARDD -DVIRTUAL -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE
LDLIBS += -lm -lstdc++ -pthread
PROGS = gotthardDetectorServer_virtual
DESTDIR ?= bin
INSTMODE = 0777
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.c=.o)
all: clean versioning $(PROGS)
boot: $(OBJS)
versioning:
@echo `tput setaf 6; ./updateGitVersion.sh; tput sgr0;`
$(PROGS): $(OBJS)
# echo $(OBJS)
mkdir -p $(DESTDIR)
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
mv $(PROGS) $(DESTDIR)
clean:
rm -rf $(DESTDIR)/$(PROGS) *.o

View File

@ -1 +0,0 @@
../../slsSupportLib/include/ansi.h

View File

@ -1 +0,0 @@
../slsDetectorServer/blackfin.h

View File

@ -1 +0,0 @@
../slsDetectorServer/common.h

View File

@ -1 +0,0 @@
../slsDetectorServer/commonServerFunctions.h

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/communication_funcs.h

View File

@ -1 +0,0 @@
../slsDetectorServer/logger.h

View File

@ -1,13 +1,12 @@
#include "slsDetectorFunctionList.h" #include "slsDetectorFunctionList.h"
#include "versionAPI.h" #include "versionAPI.h"
#include "logger.h" #include "clogger.h"
#include "RegisterDefs.h" #include "RegisterDefs.h"
#ifndef VIRTUAL
#include "AD9257.h" // commonServerFunctions.h, blackfin.h, ansi.h #include "AD9257.h" // commonServerFunctions.h, blackfin.h, ansi.h
#include "AD9252.h" // old board compatibility #include "AD9252.h" // old board compatibility
#include "LTC2620.h" // dacs #include "LTC2620.h" // dacs
#else #ifdef VIRTUAL
#include "blackfin.h" #include "blackfin.h"
#include <pthread.h> #include <pthread.h>
#include <time.h> #include <time.h>
@ -33,12 +32,10 @@ int detectorFirstServer = 1;
int dacValues[NDAC] = {0}; int dacValues[NDAC] = {0};
enum detectorSettings thisSettings = UNINITIALIZED; enum detectorSettings thisSettings = UNINITIALIZED;
enum externalSignalFlag signalMode = 0; enum externalSignalFlag signalMode = 0;
int digitalTestBit = 0;
// roi configuration // roi configuration
int adcConfigured = -1; int adcConfigured = -1;
ROI rois[MAX_ROIS]; ROI rois;
int nROI = 0;
int ipPacketSize = 0; int ipPacketSize = 0;
int udpPacketSize = 0; int udpPacketSize = 0;
@ -247,12 +244,7 @@ int detectorTest( enum digitalTestMode arg, int ival) {
return OK; return OK;
#endif #endif
switch(arg){ switch(arg){
case DIGITAL_BIT_TEST: case IMAGE_TEST: return testImage(ival);
if (ival > -1) {
digitalTestBit = (ival == 0) ? 0 : 1;
FILE_LOG(logINFO, ("Digital Test bit set: %d\n", digitalTestBit));
}
return digitalTestBit;
case DETECTOR_FIRMWARE_TEST: return testFpga(); case DETECTOR_FIRMWARE_TEST: return testFpga();
case DETECTOR_BUS_TEST: return testBus(); case DETECTOR_BUS_TEST: return testBus();
default: default:
@ -262,6 +254,19 @@ int detectorTest( enum digitalTestMode arg, int ival) {
return OK; return OK;
} }
int testImage(int ival) {
uint32_t addr = MULTI_PURPOSE_REG;
if (ival >= 0) {
if (ival == 0) {
FILE_LOG(logINFO, ("Switching on Image Test\n"));
bus_w (addr, bus_r(addr) & ~DGTL_TST_MSK);
} else {
FILE_LOG(logINFO, ("Switching off Image Test\n"));
bus_w (addr, bus_r(addr) | DGTL_TST_MSK);
}
}
return ((bus_r(addr) & DGTL_TST_MSK) >> DGTL_TST_OFST);
}
/* Ids */ /* Ids */
@ -397,7 +402,9 @@ void setupDetector() {
bus_w(TEMP_SPI_OUT_REG, 0x0); bus_w(TEMP_SPI_OUT_REG, 0x0);
// roi, gbit readout // roi, gbit readout
setROIADC(-1); // set adcsyncreg, daqreg, chipofinterestreg, cleanfifos, rois.xmin = -1;
rois.xmax = -1;
setROI(rois);// set adcsyncreg, daqreg, chipofinterestreg, cleanfifos,
setGbitReadout(); setGbitReadout();
// master, slave (25um) // master, slave (25um)
@ -726,95 +733,49 @@ int setDynamicRange(int dr){
return DYNAMIC_RANGE; return DYNAMIC_RANGE;
} }
ROI* setROI(int n, ROI arg[], int *retvalsize, int *ret) { int setROI(ROI arg) {
// set ROI int adc = -1;
if(n >= 0){ if (arg.xmin == -1) {
// print FILE_LOG(logINFO, ("Clearing ROI\n"));
if (!n) { rois.xmin = -1;
FILE_LOG(logINFO, ("Clearing ROI\n")); rois.xmax = -1;
} else { } else {
FILE_LOG(logINFO, ("Setting ROI:\n")); FILE_LOG(logINFO, ("Setting ROI:(%d, %d)\n", arg.xmin, arg.xmax));
int i = 0; // validation
for (i = 0; i < n; ++i) { // xmin divisible by 256 and less than 1280
FILE_LOG(logINFO, ("\t(%d, %d)\n", arg[i].xmin, arg[i].xmax)); if (((arg.xmin % NCHAN_PER_ADC) != 0) || (arg.xmin >= (NCHAN * NCHIP))) {
} FILE_LOG(logERROR, ("Could not set roi. xmin is invalid\n"));
return FAIL;
} }
// only one ROI allowed per module // xmax must be 255 more than xmin
if (n > 1) { if (arg.xmax != (arg.xmin + NCHAN_PER_ADC - 1)) {
FILE_LOG(logERROR, ("\tCannot set more than 1 ROI per module\n")); FILE_LOG(logERROR, ("Could not set roi. xmax is invalid\n"));
*ret = FAIL; return FAIL;
*retvalsize = nROI;
return rois;
} }
rois.xmin = arg.xmin;
rois.xmax = arg.xmax;
adc = arg.xmin / NCHAN_PER_ADC;
}
FILE_LOG(logINFO, ("\tAdc to be configured: %d\n", adc));
FILE_LOG(logINFO, ("\tROI to be configured: (%d, %d)\n",
(adc == -1) ? 0 : (rois.xmin),
(adc == -1) ? (NCHIP * NCHAN - 1) : (rois.xmax)));
//clear all rois //set adc of interest
nROI = 0; setROIADC(adc);
return OK;
}
// find adc number and recorrect channel limits ROI getROI() {
int adc = -1; FILE_LOG(logINFO, ("Getting ROI:\n"));
if (n) {
// all channels
if ((arg[0].xmin <= 0) && (arg[0].xmax >= NCHIP * NCHAN))
adc = -1;
// single adc
else {
//adc = mid value/numchans
adc = ((((arg[0].xmax) + (arg[0].xmin))/2) / (NCHAN * NCHIPS_PER_ADC));
// incorrect adc
if((adc < 0) || (adc > 4)) {
FILE_LOG(logERROR, ("\tadc value greater than 5. deleting roi\n"));
adc = -1;
}
// recorrect roi values
else {
rois[0].xmin = adc * (NCHAN * NCHIPS_PER_ADC);
rois[0].xmax = (adc + 1) * (NCHAN * NCHIPS_PER_ADC) - 1;
rois[0].ymin = -1;
rois[0].ymax = -1;
nROI = 1;
}
}
}
if (adc == -1)
nROI = 0;
FILE_LOG(logINFO, ("\tAdc to be configured: %d\n", adc));
FILE_LOG(logINFO, ("\tROI to be configured: (%d, %d)\n",
(adc == -1) ? 0 : (rois[0].xmin),
(adc == -1) ? (NCHIP * NCHAN - 1) : (rois[0].xmax)));
// could not set roi
if((n != 0) && ((arg[0].xmin != rois[0].xmin)||
(arg[0].xmax != rois[0].xmax)||
(arg[0].ymin != rois[0].ymin)||
(arg[0].ymax != rois[0].ymax))) {
*ret = FAIL;
FILE_LOG(logERROR, ("\tCould not set given ROI\n"));
}
if(n != nROI) {
*ret = FAIL;
FILE_LOG(logERROR, ("\tCould not set or clear ROIs\n"));
}
//set adc of interest
setROIADC(adc);
} else FILE_LOG(logINFO, ("Getting ROI:\n"));
// print // print
if (!nROI) { if (rois.xmin == -1) {
FILE_LOG(logINFO, ("\tROI: None\n")); FILE_LOG(logINFO, ("\tROI: None\n"));
} else { } else {
FILE_LOG(logINFO, ("ROI:\n")); FILE_LOG(logINFO, ("ROI: (%d,%d)\n", rois.xmin, rois.xmax));
int i = 0;
for (i = 0; i < nROI; ++i) {
FILE_LOG(logINFO, ("\t(%d, %d)\n", rois[i].xmin, rois[i].xmax));
}
} }
*retvalsize = nROI;
return rois; return rois;
} }
@ -1271,10 +1232,10 @@ int setHighVoltage(int val){
/* parameters - timing, extsig */ /* parameters - timing, extsig */
void setTiming( enum externalCommunicationMode arg){ void setTiming( enum timingMode arg){
u_int32_t addr = EXT_SIGNAL_REG; u_int32_t addr = EXT_SIGNAL_REG;
if (arg != GET_EXTERNAL_COMMUNICATION_MODE){ if (arg != GET_TIMING_MODE){
switch((int)arg){ switch((int)arg){
case AUTO_TIMING: case AUTO_TIMING:
FILE_LOG(logINFO, ("Set Timing: Auto\n")); FILE_LOG(logINFO, ("Set Timing: Auto\n"));
@ -1296,7 +1257,7 @@ void setTiming( enum externalCommunicationMode arg){
} }
} }
enum externalCommunicationMode getTiming() { enum timingMode getTiming() {
u_int32_t regval = bus_r(EXT_SIGNAL_REG); u_int32_t regval = bus_r(EXT_SIGNAL_REG);
switch (regval) { switch (regval) {
case EXT_SIGNAL_TRGGR_IN_RSNG_VAL: case EXT_SIGNAL_TRGGR_IN_RSNG_VAL:
@ -1397,13 +1358,6 @@ int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t
(long long unsigned int)destmac)); (long long unsigned int)destmac));
FILE_LOG(logINFO, ("\tDest. Port : %d (0x%08x)\n",udpport, udpport)); FILE_LOG(logINFO, ("\tDest. Port : %d (0x%08x)\n",udpport, udpport));
// set/ unset the digital test bit
if (digitalTestBit)
bus_w (addr, bus_r(addr) | DGTL_TST_MSK);
else
bus_w (addr, bus_r(addr) & ~DGTL_TST_MSK);
FILE_LOG(logDEBUG1, ("\tDigital Test Bit. MultiPurpose reg: 0x%x\n", bus_r(addr)));
//reset mac //reset mac
bus_w (addr, bus_r(addr) | RST_MSK); bus_w (addr, bus_r(addr) | RST_MSK);
FILE_LOG(logDEBUG1, ("\tReset Mac. MultiPurpose reg: 0x%x\n", bus_r(addr))); FILE_LOG(logDEBUG1, ("\tReset Mac. MultiPurpose reg: 0x%x\n", bus_r(addr)));
@ -1501,7 +1455,7 @@ int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t
*/ */
FILE_LOG(logINFOBLUE, ("Sending an image to counter the packet numbers\n")); FILE_LOG(logINFOBLUE, ("Sending an image to counter the packet numbers\n"));
// remember old parameters // remember old parameters
enum externalCommunicationMode oldtiming = getTiming(); enum timingMode oldtiming = getTiming();
uint64_t oldframes = setTimer(FRAME_NUMBER, -1); uint64_t oldframes = setTimer(FRAME_NUMBER, -1);
uint64_t oldcycles = setTimer(CYCLES_NUMBER, -1); uint64_t oldcycles = setTimer(CYCLES_NUMBER, -1);
uint64_t oldPeriod = setTimer(FRAME_PERIOD, -1); uint64_t oldPeriod = setTimer(FRAME_PERIOD, -1);
@ -1564,107 +1518,6 @@ int getAdcConfigured(){
} }
/* gotthard specific - loadimage, read/reset counter block */
void loadImage(enum imageType index, short int imageVals[]){
u_int32_t addr = DARK_IMAGE_REG;
if (index == GAIN_IMAGE)
addr = GAIN_IMAGE_REG;
int dataBytes = calculateDataBytes();
volatile u_int16_t *ptr = (u_int16_t*)(CSP0BASE + addr * 2);
memcpy((char*)ptr, (char*)imageVals, dataBytes);
FILE_LOG(logINFO, ("Loaded %s image at 0x%p\n",
(index == GAIN_IMAGE) ? "Gain" : "Dark", (void*) ptr));
}
int readCounterBlock(int startACQ, short int counterVals[]){
FILE_LOG(logINFO, ("Reading Counter Block with start Acq :%d\n", startACQ));
// stop any current acquisition
if (runBusy()) {
if (stopStateMachine() == FAIL)
return FAIL;
// waiting for the last frame read to be done
while(runBusy())
usleep(500);
FILE_LOG(logDEBUG1, ("State machine stopped\n"));
}
// copy memory
u_int32_t addr = COUNTER_MEMORY_REG;
volatile u_int16_t *ptr = (u_int16_t*)(CSP0BASE + addr * 2);
int dataBytes = calculateDataBytes();
memcpy((char*)counterVals, (char*)ptr, dataBytes);
// unreset counter
addr = MULTI_PURPOSE_REG;
bus_w(addr, (bus_r(addr) &~ RST_CNTR_MSK));
FILE_LOG(logDEBUG1, ("\tUnsetting reset Counter. Multi Purpose Reg: 0x%x\n", bus_r(addr)));
// start state machine
if (startACQ == 1){
startStateMachine();
if (runBusy()) {
FILE_LOG(logINFO, ("State machine RUNNING\n"));
} else {
FILE_LOG(logINFO, ("State machine IDLE\n"));
}
}
return OK;
}
int resetCounterBlock(int startACQ){
FILE_LOG(logINFO, ("Resetting Counter Block with start Acq :%d\n", startACQ));
// stop any current acquisition
if (runBusy()) {
if (stopStateMachine() == FAIL)
return FAIL;
// waiting for the last frame read to be done
while(runBusy())
usleep(500);
FILE_LOG(logDEBUG1, ("State machine stopped\n"));
}
// reset counter
u_int32_t addr = MULTI_PURPOSE_REG;
bus_w(addr, (bus_r(addr) | RST_CNTR_MSK));
FILE_LOG(logDEBUG1, ("\tResetting Counter. Multi Purpose Reg: 0x%x\n", bus_r(addr)));
// copy memory
addr = COUNTER_MEMORY_REG;
volatile u_int16_t *ptr = (u_int16_t*)(CSP0BASE + addr * 2);
int dataBytes = calculateDataBytes();
char *counterVals = NULL;
counterVals = realloc(counterVals, dataBytes);
memcpy((char*)counterVals, (char*)ptr, dataBytes);
// unreset counter
addr = MULTI_PURPOSE_REG;
bus_w(addr, (bus_r(addr) &~ RST_CNTR_MSK));
FILE_LOG(logDEBUG1, ("\tUnsetting reset Counter. Multi Purpose Reg: 0x%x\n", bus_r(addr)));
// start state machine
if (startACQ == 1){
startStateMachine();
if (runBusy()) {
FILE_LOG(logINFO, ("State machine RUNNING\n"));
} else {
FILE_LOG(logINFO, ("State machine IDLE\n"));
}
}
if (sizeof(counterVals) <= 0){
FILE_LOG(logERROR, ("\tSize of counterVals: %d\n", (int)sizeof(counterVals)));
return FAIL;
}
return OK;
}
/* aquisition */ /* aquisition */
int startStateMachine(){ int startStateMachine(){

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorFunctionList.h

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer.c

View File

@ -24,6 +24,7 @@ enum DACINDEX {VREF_DS, VCASCN_PB, VCASCP_PB, VOUT_CM, VCASC_OUT, VIN
#define NCHIP (10) #define NCHIP (10)
#define NDAC (8) #define NDAC (8)
#define NCHIPS_PER_ADC (2) #define NCHIPS_PER_ADC (2)
#define NCHAN_PER_ADC (256)
#define DYNAMIC_RANGE (16) #define DYNAMIC_RANGE (16)
#define NUM_BITS_PER_PIXEL (DYNAMIC_RANGE / 8) #define NUM_BITS_PER_PIXEL (DYNAMIC_RANGE / 8)
#define DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL) #define DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.c

View File

@ -1 +0,0 @@
../slsDetectorServer/slsDetectorServer_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_defs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/sls_detector_funcs.h

View File

@ -1 +0,0 @@
../../slsSupportLib/include/versionAPI.h

View File

@ -1 +0,0 @@
../slsDetectorServer/AD9257.h

View File

@ -1 +0,0 @@
../slsDetectorServer/ALTERA_PLL.h

View File

@ -1,8 +1,13 @@
add_executable(jungfrauDetectorServer add_executable(jungfrauDetectorServer
slsDetectorFunctionList.c slsDetectorFunctionList.c
slsDetectorServer.c ../slsDetectorServer/slsDetectorServer.c
slsDetectorServer_funcs.c ../slsDetectorServer/slsDetectorServer_funcs.c
communication_funcs.c ../slsDetectorServer/communication_funcs.c
)
include_directories(
../slsDetectorServer/
../../slsSupportLib/include
) )
target_include_directories(jungfrauDetectorServer target_include_directories(jungfrauDetectorServer

View File

@ -1 +0,0 @@
../slsDetectorServer/LTC2620.h

View File

@ -1 +0,0 @@
../slsDetectorServer/MAX1932.h

View File

@ -1,14 +1,17 @@
current_dir = $(shell pwd)
main_server = ../slsDetectorServer/
support_lib = ../../slsSupportLib/include/
CROSS = bfin-uclinux- CROSS = bfin-uclinux-
CC = $(CROSS)gcc CC = $(CROSS)gcc
CFLAGS += -Wall -DJUNGFRAUD -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE CFLAGS += -Wall -DJUNGFRAUD -DSTOP_SERVER -I$(main_server) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
LDLIBS += -lm -lstdc++ LDLIBS += -lm
PROGS = jungfrauDetectorServer PROGS = jungfrauDetectorServer
DESTDIR ?= bin DESTDIR ?= bin
INSTMODE = 0777 INSTMODE = 0777
SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c slsDetectorFunctionList.c SRCS = $(main_server)communication_funcs.c $(main_server)slsDetectorServer.c $(main_server)slsDetectorServer_funcs.c slsDetectorFunctionList.c
OBJS = $(SRC_CLNT:.c=.o) OBJS = $(SRCS:.c=.o)
all: clean versioning $(PROGS) all: clean versioning $(PROGS)
@ -23,12 +26,12 @@ versioning:
$(PROGS): $(OBJS) $(PROGS): $(OBJS)
# echo $(OBJS) # echo $(OBJS)
mkdir -p $(DESTDIR) mkdir -p $(DESTDIR)
$(CC) -o $@ $^ $(CFLAGS) $(LDLIBS) $(CC) -o $@ $^ $(CFLAGS) $(LDLIBS)
mv $(PROGS) $(DESTDIR) mv $(PROGS) $(DESTDIR)
rm *.gdb rm *.gdb
clean: clean:
rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_server)*.o

Some files were not shown because too many files have changed in this diff Show More