mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 03:40:04 +02:00
gui 12 bit mode done
This commit is contained in:
parent
40a9dce7e0
commit
d2731c77a3
@ -97,6 +97,11 @@
|
|||||||
<string>65535</string>
|
<string>65535</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>4095</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>255</string>
|
<string>255</string>
|
||||||
|
@ -69,5 +69,11 @@ class qTabSettings : public QWidget, private Ui::TabSettingsObject {
|
|||||||
enum { DYNAMIC, FORCE_SWITCH_G1, FORCE_SWITCH_G2, FIX_G1, FIX_G2, FIX_G0 };
|
enum { DYNAMIC, FORCE_SWITCH_G1, FORCE_SWITCH_G2, FIX_G1, FIX_G2, FIX_G0 };
|
||||||
bool isVisibleFixG0{false};
|
bool isVisibleFixG0{false};
|
||||||
|
|
||||||
enum { DYNAMICRANGE_32, DYNAMICRANGE_16, DYNAMICRANGE_8, DYNAMICRANGE_4 };
|
enum {
|
||||||
|
DYNAMICRANGE_32,
|
||||||
|
DYNAMICRANGE_16,
|
||||||
|
DYNAMICRANGE_12,
|
||||||
|
DYNAMICRANGE_8,
|
||||||
|
DYNAMICRANGE_4
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -1064,6 +1064,7 @@ void qDrawPlot::toDoublePixelData(double *dest, char *source, int size,
|
|||||||
// mythen3 / gotthard2 debugging
|
// mythen3 / gotthard2 debugging
|
||||||
int discardBits = numDiscardBits;
|
int discardBits = numDiscardBits;
|
||||||
|
|
||||||
|
uint16_t temp = 0;
|
||||||
switch (dr) {
|
switch (dr) {
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
@ -1083,6 +1084,28 @@ void qDrawPlot::toDoublePixelData(double *dest, char *source, int size,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 12:
|
||||||
|
for (ichan = 0; ichan < size; ++ichan) {
|
||||||
|
// first 12 bit pixel
|
||||||
|
// lsb (8 bytes)
|
||||||
|
temp = (*((u_int8_t *)source)) & 0xFF;
|
||||||
|
++source;
|
||||||
|
// msb (4 bytes)
|
||||||
|
temp |= (((*((u_int8_t *)source)) & 0xF) << 8);
|
||||||
|
dest[ichan] = (double)temp;
|
||||||
|
|
||||||
|
// second 12bit pixel
|
||||||
|
++ichan;
|
||||||
|
// lsb (4 bytes)
|
||||||
|
temp = (((*((u_int8_t *)source)) & 0xF0) >> 4);
|
||||||
|
++source;
|
||||||
|
// msb (8 bytes)
|
||||||
|
temp |= (((*((u_int8_t *)source)) & 0xFF) << 4);
|
||||||
|
++source;
|
||||||
|
dest[ichan] = (double)temp;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
if (detType == slsDetectorDefs::JUNGFRAU ||
|
if (detType == slsDetectorDefs::JUNGFRAU ||
|
||||||
detType == slsDetectorDefs::GOTTHARD2) {
|
detType == slsDetectorDefs::GOTTHARD2) {
|
||||||
|
@ -60,13 +60,19 @@ void qTabSettings::SetupWidgetWindow() {
|
|||||||
QStandardItemModel *model =
|
QStandardItemModel *model =
|
||||||
qobject_cast<QStandardItemModel *>(comboDynamicRange->model());
|
qobject_cast<QStandardItemModel *>(comboDynamicRange->model());
|
||||||
if (model) {
|
if (model) {
|
||||||
QModelIndex index;
|
|
||||||
QStandardItem *item;
|
QStandardItem *item;
|
||||||
index =
|
int dr = DYNAMICRANGE_4;
|
||||||
model->index(DYNAMICRANGE_4, comboDynamicRange->modelColumn(),
|
for (int i = 0; i != 2; ++i) {
|
||||||
|
// disable dr 4
|
||||||
|
QModelIndex index =
|
||||||
|
model->index(dr, comboDynamicRange->modelColumn(),
|
||||||
comboDynamicRange->rootModelIndex());
|
comboDynamicRange->rootModelIndex());
|
||||||
item = model->itemFromIndex(index);
|
item = model->itemFromIndex(index);
|
||||||
item->setEnabled(false);
|
item->setEnabled(false);
|
||||||
|
|
||||||
|
// disable dr 12
|
||||||
|
dr = DYNAMICRANGE_12;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (detType == slsDetectorDefs::EIGER) {
|
} else if (detType == slsDetectorDefs::EIGER) {
|
||||||
lblDynamicRange->setEnabled(true);
|
lblDynamicRange->setEnabled(true);
|
||||||
@ -305,6 +311,9 @@ void qTabSettings::GetDynamicRange() {
|
|||||||
case 16:
|
case 16:
|
||||||
comboDynamicRange->setCurrentIndex(DYNAMICRANGE_16);
|
comboDynamicRange->setCurrentIndex(DYNAMICRANGE_16);
|
||||||
break;
|
break;
|
||||||
|
case 12:
|
||||||
|
comboDynamicRange->setCurrentIndex(DYNAMICRANGE_12);
|
||||||
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
comboDynamicRange->setCurrentIndex(DYNAMICRANGE_8);
|
comboDynamicRange->setCurrentIndex(DYNAMICRANGE_8);
|
||||||
break;
|
break;
|
||||||
@ -333,6 +342,9 @@ void qTabSettings::SetDynamicRange(int index) {
|
|||||||
case DYNAMICRANGE_16:
|
case DYNAMICRANGE_16:
|
||||||
det->setDynamicRange(16);
|
det->setDynamicRange(16);
|
||||||
break;
|
break;
|
||||||
|
case DYNAMICRANGE_12:
|
||||||
|
det->setDynamicRange(12);
|
||||||
|
break;
|
||||||
case DYNAMICRANGE_8:
|
case DYNAMICRANGE_8:
|
||||||
det->setDynamicRange(8);
|
det->setDynamicRange(8);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user