From 7a607c6dd186b861ca119e3e8cc8995ec42069dc Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 18 Feb 2022 16:08:04 +0100 Subject: [PATCH] refactored --- .../slsDetectorFunctionList.c | 49 +++++++++---------- slsReceiverSoftware/src/HDF5DataFile.cpp | 8 +-- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 1d9661987..11e72443f 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -2352,14 +2352,12 @@ void *start_timer(void *arg) { } LOG(logDEBUG1, ("npixels:%d pixelsperpacket:%d\n", npixels, pixelsPerPacket)); - uint8_t *source = (uint8_t *)imageData; + uint8_t *src = (uint8_t *)imageData; for (int i = 0; i < npixels; ++i) { if (i > 0 && i % pixelsPerPacket == 0) { ++pixelVal; } - uint8_t temp = 0; - switch (dr) { case 4: *((uint8_t *)(imageData + i)) = @@ -2375,29 +2373,28 @@ void *start_timer(void *arg) { eiger_virtual_test_mode ? 0xFE : (uint8_t)pixelVal; break; case 12: - // first 12 bit pixel - // first 8 byte - *source = eiger_virtual_test_mode ? 0xFE : (uint8_t)(i & 0xFF); - ++source; - - // second 8 byte (first nibble) - temp = - eiger_virtual_test_mode ? 0xF : (uint8_t)((i >> 8) & 0xF); - - // second 12bit pixel - ++i; - - // second 8 byte (second nibble) - *source = eiger_virtual_test_mode - ? 0xE - : temp | ((uint8_t)(i & 0xF) << 4); - ++source; - - // third byte - *source = - eiger_virtual_test_mode ? 0xFF : (uint8_t)((i >> 4) & 0xFF); - ++source; - + if (eiger_virtual_test_mode) { + // first 12 bit pixel + // first 8 byte + *src++ = 0xFE; + // second 12bit pixel + ++i; + // second 8 byte + *src++ = 0xEF; + // third byte + *src++ = 0xFF; + } else { + // first 12 bit pixel + // first 8 byte + *src++ = (uint8_t)(i & 0xFF); + // second 8 byte (first nibble) + *src = (uint8_t)((i++ >> 8u) & 0xF); + // second 12bit pixel + // second 8 byte (second nibble) + *src++ |= ((uint8_t)(i & 0xF) << 4u); + // third byte + *src++ = (uint8_t)((i >> 4u) & 0xFF); + } break; case 16: *((uint16_t *)(imageData + i * sizeof(uint16_t))) = diff --git a/slsReceiverSoftware/src/HDF5DataFile.cpp b/slsReceiverSoftware/src/HDF5DataFile.cpp index 7924da1a4..98aefa7b5 100644 --- a/slsReceiverSoftware/src/HDF5DataFile.cpp +++ b/slsReceiverSoftware/src/HDF5DataFile.cpp @@ -251,11 +251,11 @@ void HDF5DataFile::WriteToFile(char *buffer, const int buffersize, void HDF5DataFile::Convert12to16Bit(uint16_t *dst, uint8_t *src) { for (int i = 0; i < EIGER_NUM_PIXELS; ++i) { - *dst = (*src++ & 0xFF); - *dst++ |= ((*src & 0xF) << 8); + *dst = (uint16_t)(*src++ & 0xFF); + *dst++ |= (uint16_t)((*src & 0xF) << 8u); ++i; - *dst = ((*src++ & 0xF0) >> 4); - *dst++ |= ((*src++ & 0xFF) << 4); + *dst = (uint16_t)((*src++ & 0xF0) >> 4u); + *dst++ |= (uint16_t)((*src++ & 0xFF) << 4u); } }