refactored

This commit is contained in:
2022-02-18 16:08:04 +01:00
parent 83ff4ab112
commit 7a607c6dd1
2 changed files with 27 additions and 30 deletions

View File

@ -2352,14 +2352,12 @@ void *start_timer(void *arg) {
} }
LOG(logDEBUG1, LOG(logDEBUG1,
("npixels:%d pixelsperpacket:%d\n", npixels, pixelsPerPacket)); ("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) { for (int i = 0; i < npixels; ++i) {
if (i > 0 && i % pixelsPerPacket == 0) { if (i > 0 && i % pixelsPerPacket == 0) {
++pixelVal; ++pixelVal;
} }
uint8_t temp = 0;
switch (dr) { switch (dr) {
case 4: case 4:
*((uint8_t *)(imageData + i)) = *((uint8_t *)(imageData + i)) =
@ -2375,29 +2373,28 @@ void *start_timer(void *arg) {
eiger_virtual_test_mode ? 0xFE : (uint8_t)pixelVal; eiger_virtual_test_mode ? 0xFE : (uint8_t)pixelVal;
break; break;
case 12: case 12:
// first 12 bit pixel if (eiger_virtual_test_mode) {
// first 8 byte // first 12 bit pixel
*source = eiger_virtual_test_mode ? 0xFE : (uint8_t)(i & 0xFF); // first 8 byte
++source; *src++ = 0xFE;
// second 12bit pixel
// second 8 byte (first nibble) ++i;
temp = // second 8 byte
eiger_virtual_test_mode ? 0xF : (uint8_t)((i >> 8) & 0xF); *src++ = 0xEF;
// third byte
// second 12bit pixel *src++ = 0xFF;
++i; } else {
// first 12 bit pixel
// second 8 byte (second nibble) // first 8 byte
*source = eiger_virtual_test_mode *src++ = (uint8_t)(i & 0xFF);
? 0xE // second 8 byte (first nibble)
: temp | ((uint8_t)(i & 0xF) << 4); *src = (uint8_t)((i++ >> 8u) & 0xF);
++source; // second 12bit pixel
// second 8 byte (second nibble)
// third byte *src++ |= ((uint8_t)(i & 0xF) << 4u);
*source = // third byte
eiger_virtual_test_mode ? 0xFF : (uint8_t)((i >> 4) & 0xFF); *src++ = (uint8_t)((i >> 4u) & 0xFF);
++source; }
break; break;
case 16: case 16:
*((uint16_t *)(imageData + i * sizeof(uint16_t))) = *((uint16_t *)(imageData + i * sizeof(uint16_t))) =

View File

@ -251,11 +251,11 @@ void HDF5DataFile::WriteToFile(char *buffer, const int buffersize,
void HDF5DataFile::Convert12to16Bit(uint16_t *dst, uint8_t *src) { void HDF5DataFile::Convert12to16Bit(uint16_t *dst, uint8_t *src) {
for (int i = 0; i < EIGER_NUM_PIXELS; ++i) { for (int i = 0; i < EIGER_NUM_PIXELS; ++i) {
*dst = (*src++ & 0xFF); *dst = (uint16_t)(*src++ & 0xFF);
*dst++ |= ((*src & 0xF) << 8); *dst++ |= (uint16_t)((*src & 0xF) << 8u);
++i; ++i;
*dst = ((*src++ & 0xF0) >> 4); *dst = (uint16_t)((*src++ & 0xF0) >> 4u);
*dst++ |= ((*src++ & 0xFF) << 4); *dst++ |= (uint16_t)((*src++ & 0xFF) << 4u);
} }
} }