Callback rxheader (#502)

* gui message doesnt show if it has a '>' symbol in error msg

* minor refactoring for readability (size_t calc fifo size)

* refactoring listening udp socket code: activated and datastream dont create udp sockets anyway, rc<=- should be discarded in any case

* wip

* refactoring memory structure access

* wip: bugfix write header + data to binary

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* portRoi no roi effecto on progress

* fail at receiver progress, wip

* segfaults for char pointer in struct

* reference to header to get header and data

* refactoring

* use const defined for size of header of fifo

* updated release notes

* remove pointer in callback for sls_receiver_header pointer

* passing reference header for callback instead of copying it
This commit is contained in:
Dhanya Thattil 2022-07-22 16:15:21 +02:00 committed by GitHub
parent 4117cda79b
commit d132ad8d02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 34 additions and 35 deletions

View File

@ -68,7 +68,7 @@ class Receiver : private virtual slsDetectorDefs {
* - pointer to data * - pointer to data
* - image size in bytes * - image size in bytes
*/ */
void registerCallBackRawDataReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataReady(void (*func)(sls_receiver_header&,
char *, size_t, void *), char *, size_t, void *),
void *arg); void *arg);
@ -81,7 +81,7 @@ class Receiver : private virtual slsDetectorDefs {
* Can be modified to the new size to be written/streamed. (only smaller * Can be modified to the new size to be written/streamed. (only smaller
* value allowed). * value allowed).
*/ */
void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header&,
char *, size_t &, char *, size_t &,
void *), void *),
void *arg); void *arg);

View File

@ -72,13 +72,13 @@ void ClientInterface::registerCallBackAcquisitionFinished(void (*func)(uint64_t,
} }
void ClientInterface::registerCallBackRawDataReady( void ClientInterface::registerCallBackRawDataReady(
void (*func)(sls_receiver_header *, char *, size_t, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t, void *), void *arg) {
rawDataReadyCallBack = func; rawDataReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
} }
void ClientInterface::registerCallBackRawDataModifyReady( void ClientInterface::registerCallBackRawDataModifyReady(
void (*func)(sls_receiver_header *, char *, size_t &, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t &, void *), void *arg) {
rawDataModifyReadyCallBack = func; rawDataModifyReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
} }

View File

@ -42,13 +42,13 @@ class ClientInterface : private virtual slsDetectorDefs {
void registerCallBackAcquisitionFinished(void (*func)(uint64_t, void *), void registerCallBackAcquisitionFinished(void (*func)(uint64_t, void *),
void *arg); void *arg);
/** params: sls_receiver_header pointer, pointer to data, image size */ /** params: sls_receiver_header, pointer to data, image size */
void registerCallBackRawDataReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataReady(void (*func)(sls_receiver_header&,
char *, size_t, void *), char *, size_t, void *),
void *arg); void *arg);
/** params: sls_receiver_header pointer, pointer to data, reference to image size */ /** params: sls_receiver_header, pointer to data, reference to image size */
void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header&,
char *, size_t &, char *, size_t &,
void *), void *),
void *arg); void *arg);
@ -190,9 +190,9 @@ class ClientInterface : private virtual slsDetectorDefs {
void *pStartAcquisition{nullptr}; void *pStartAcquisition{nullptr};
void (*acquisitionFinishedCallBack)(uint64_t, void *) = nullptr; void (*acquisitionFinishedCallBack)(uint64_t, void *) = nullptr;
void *pAcquisitionFinished{nullptr}; void *pAcquisitionFinished{nullptr};
void (*rawDataReadyCallBack)(sls_receiver_header *, char *, size_t, void (*rawDataReadyCallBack)(sls_receiver_header&, char *, size_t,
void *) = nullptr; void *) = nullptr;
void (*rawDataModifyReadyCallBack)(sls_receiver_header *, char *, size_t &, void (*rawDataModifyReadyCallBack)(sls_receiver_header&, char *, size_t &,
void *) = nullptr; void *) = nullptr;
void *pRawDataReady{nullptr}; void *pRawDataReady{nullptr};

View File

@ -349,12 +349,12 @@ void DataProcessor::ProcessAnImage(sls_receiver_header & header, size_t &size, s
try { try {
// normal call back // normal call back
if (rawDataReadyCallBack != nullptr) { if (rawDataReadyCallBack != nullptr) {
rawDataReadyCallBack(&header, data, size, pRawDataReady); rawDataReadyCallBack(header, data, size, pRawDataReady);
} }
// call back with modified size // call back with modified size
else if (rawDataModifyReadyCallBack != nullptr) { else if (rawDataModifyReadyCallBack != nullptr) {
rawDataModifyReadyCallBack(&header, data, size, pRawDataReady); rawDataModifyReadyCallBack(header, data, size, pRawDataReady);
} }
} catch (const std::exception &e) { } catch (const std::exception &e) {
throw RuntimeError("Get Data Callback Error: " + throw RuntimeError("Get Data Callback Error: " +
@ -414,13 +414,13 @@ bool DataProcessor::CheckCount() {
} }
void DataProcessor::registerCallBackRawDataReady( void DataProcessor::registerCallBackRawDataReady(
void (*func)(sls_receiver_header *, char *, size_t, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t, void *), void *arg) {
rawDataReadyCallBack = func; rawDataReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
} }
void DataProcessor::registerCallBackRawDataModifyReady( void DataProcessor::registerCallBackRawDataModifyReady(
void (*func)(sls_receiver_header *, char *, size_t &, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t &, void *), void *arg) {
rawDataModifyReadyCallBack = func; rawDataModifyReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
} }

View File

@ -82,14 +82,14 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
MasterAttributes *attr, MasterAttributes *attr,
std::mutex *hdf5LibMutex); std::mutex *hdf5LibMutex);
/** params: sls_receiver_header pointer, pointer to data, image size */ /** params: sls_receiver_header, pointer to data, image size */
void registerCallBackRawDataReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataReady(void (*func)(sls_receiver_header&,
char *, size_t, void *), char *, size_t, void *),
void *arg); void *arg);
/** params: sls_receiver_header pointer, pointer to data, reference to image /** params: sls_receiver_header, pointer to data, reference to image
* size */ * size */
void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header&,
char *, size_t &, char *, size_t &,
void *), void *),
void *arg); void *arg);
@ -192,7 +192,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
* dataPointer is the pointer to the data * dataPointer is the pointer to the data
* dataSize in bytes is the size of the data in bytes. * dataSize in bytes is the size of the data in bytes.
*/ */
void (*rawDataReadyCallBack)(sls_receiver_header *, char *, size_t, void (*rawDataReadyCallBack)(sls_receiver_header&, char *, size_t,
void *) = nullptr; void *) = nullptr;
/** /**
@ -203,7 +203,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
* revDatasize is the reference of data size in bytes. Can be modified to * revDatasize is the reference of data size in bytes. Can be modified to
* the new size to be written/streamed. (only smaller value). * the new size to be written/streamed. (only smaller value).
*/ */
void (*rawDataModifyReadyCallBack)(sls_receiver_header *, char *, size_t &, void (*rawDataModifyReadyCallBack)(sls_receiver_header&, char *, size_t &,
void *) = nullptr; void *) = nullptr;
void *pRawDataReady{nullptr}; void *pRawDataReady{nullptr};

View File

@ -1748,7 +1748,7 @@ void Implementation::registerCallBackAcquisitionFinished(void (*func)(uint64_t,
} }
void Implementation::registerCallBackRawDataReady( void Implementation::registerCallBackRawDataReady(
void (*func)(sls_receiver_header *, char *, size_t, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t, void *), void *arg) {
rawDataReadyCallBack = func; rawDataReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)
@ -1756,7 +1756,7 @@ void Implementation::registerCallBackRawDataReady(
} }
void Implementation::registerCallBackRawDataModifyReady( void Implementation::registerCallBackRawDataModifyReady(
void (*func)(sls_receiver_header *, char *, size_t &, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t &, void *), void *arg) {
rawDataModifyReadyCallBack = func; rawDataModifyReadyCallBack = func;
pRawDataReady = arg; pRawDataReady = arg;
for (const auto &it : dataProcessor) for (const auto &it : dataProcessor)

View File

@ -266,13 +266,12 @@ class Implementation : private virtual slsDetectorDefs {
/** params: total frames caught */ /** params: total frames caught */
void registerCallBackAcquisitionFinished(void (*func)(uint64_t, void *), void registerCallBackAcquisitionFinished(void (*func)(uint64_t, void *),
void *arg); void *arg);
/** params: sls_receiver_header pointer, pointer to data, image size */ /** params: sls_receiver_header, pointer to data, image size */
void registerCallBackRawDataReady(void (*func)(sls_receiver_header *, void registerCallBackRawDataReady(void (*func)(sls_receiver_header&,
char *, size_t, void *), char *, size_t, void *),
void *arg); void *arg);
/** params: sls_receiver_header pointer, pointer to data, reference to image /** params: sls_receiver_header, pointer to data, reference to image size */
* size */ void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header&,
void registerCallBackRawDataModifyReady(void (*func)(sls_receiver_header *,
char *, size_t &, char *, size_t &,
void *), void *),
void *arg); void *arg);
@ -392,9 +391,9 @@ class Implementation : private virtual slsDetectorDefs {
void *pStartAcquisition{nullptr}; void *pStartAcquisition{nullptr};
void (*acquisitionFinishedCallBack)(uint64_t, void *){nullptr}; void (*acquisitionFinishedCallBack)(uint64_t, void *){nullptr};
void *pAcquisitionFinished{nullptr}; void *pAcquisitionFinished{nullptr};
void (*rawDataReadyCallBack)(sls_receiver_header *, char *, size_t, void (*rawDataReadyCallBack)(sls_receiver_header&, char *, size_t,
void *){nullptr}; void *){nullptr};
void (*rawDataModifyReadyCallBack)(sls_receiver_header *, char *, size_t &, void (*rawDataModifyReadyCallBack)(sls_receiver_header&, char *, size_t &,
void *){nullptr}; void *){nullptr};
void *pRawDataReady{nullptr}; void *pRawDataReady{nullptr};

View File

@ -70,9 +70,9 @@ void AcquisitionFinished(uint64_t framesCaught, void *objectPointer) {
* Prints in different colors(for each receiver process) the different headers * Prints in different colors(for each receiver process) the different headers
* for each image call back. * for each image call back.
*/ */
void GetData(slsDetectorDefs::sls_receiver_header *header, char *dataPointer, void GetData(slsDetectorDefs::sls_receiver_header& header, char *dataPointer,
size_t imageSize, void *objectPointer) { size_t imageSize, void *objectPointer) {
slsDetectorDefs::sls_detector_header detectorHeader = header->detHeader; slsDetectorDefs::sls_detector_header detectorHeader = header.detHeader;
PRINT_IN_COLOR( PRINT_IN_COLOR(
detectorHeader.modId ? detectorHeader.modId : detectorHeader.row, detectorHeader.modId ? detectorHeader.modId : detectorHeader.row,
@ -101,9 +101,9 @@ void GetData(slsDetectorDefs::sls_receiver_header *header, char *dataPointer,
* @param modifiedImageSize new data size in bytes after the callback. * @param modifiedImageSize new data size in bytes after the callback.
* This will be the size written/streamed. (only smaller value is allowed). * This will be the size written/streamed. (only smaller value is allowed).
*/ */
void GetData(slsDetectorDefs::sls_receiver_header *header, char *dataPointer, void GetData(slsDetectorDefs::sls_receiver_header& header, char *dataPointer,
size_t &modifiedImageSize, void *objectPointer) { size_t &modifiedImageSize, void *objectPointer) {
slsDetectorDefs::sls_detector_header detectorHeader = header->detHeader; slsDetectorDefs::sls_detector_header detectorHeader = header.detHeader;
PRINT_IN_COLOR( PRINT_IN_COLOR(
detectorHeader.modId ? detectorHeader.modId : detectorHeader.row, detectorHeader.modId ? detectorHeader.modId : detectorHeader.row,

View File

@ -141,12 +141,12 @@ void Receiver::registerCallBackAcquisitionFinished(void (*func)(uint64_t,
} }
void Receiver::registerCallBackRawDataReady( void Receiver::registerCallBackRawDataReady(
void (*func)(sls_receiver_header *, char *, size_t, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t, void *), void *arg) {
tcpipInterface->registerCallBackRawDataReady(func, arg); tcpipInterface->registerCallBackRawDataReady(func, arg);
} }
void Receiver::registerCallBackRawDataModifyReady( void Receiver::registerCallBackRawDataModifyReady(
void (*func)(sls_receiver_header *, char *, size_t &, void *), void *arg) { void (*func)(sls_receiver_header&, char *, size_t &, void *), void *arg) {
tcpipInterface->registerCallBackRawDataModifyReady(func, arg); tcpipInterface->registerCallBackRawDataModifyReady(func, arg);
} }