Merge branch 'developer' into rxrmetadata

This commit is contained in:
maliakal_d 2020-09-02 18:07:22 +02:00
commit 7bb9696151
21 changed files with 371 additions and 146 deletions

View File

@ -6,6 +6,33 @@ open an issue in our our `github repo
<https://github.com/slsdetectorgroup/slsDetectorPackage>`_. <https://github.com/slsdetectorgroup/slsDetectorPackage>`_.
------------------------------------
Setting exposure time
------------------------------------
Setting and reading back exposure time can be done either using a Python datetime.timedelta
or by setting the time in seconds.
::
# Set exposure time to 1.2 seconds
>>> d.exptime = 1.2
# Setting exposure time using timedelta
import datetime as dt
>>> d.exptime = dt.timedelta(seconds = 1.2)
# With timedelta any arbitrary combination of units can be used
>>> t = dt.timedelta(microseconds = 100, seconds = 5.3, minutes = .3)
# To set exposure time for individual detector one have to resort
# to the C++ style API.
# Sets exposure time to 1.2 seconds for module 0, 6 and 12
>>> d.setExptime(1.2, [0, 6, 12])
>>> d.setExptime(dt.timedelta(seconds = 1.2), [0, 6, 12])
------------------------------------ ------------------------------------
Converting numbers to hex Converting numbers to hex
------------------------------------ ------------------------------------
@ -17,13 +44,13 @@ using the built in hex() function.
.. code-block :: python .. code-block :: python
from slsdet import Detector from slsdet import Detector
d = Detector() >>> d = Detector()
>>> d.patwait0 = 0xaa >>> d.patwait0 = 0xaa
>>> d.patwait0 >>> d.patwait0
170 170
# Convert to string # Convert to string
>>> (d.patwait0) >>> hex(d.patwait0)
'0xaa' '0xaa'
For multiple values one can use a list comprehension to loop over the values. For multiple values one can use a list comprehension to loop over the values.

View File

@ -669,17 +669,27 @@ class Detector(CppDetectorApi):
Modified only when using an intermediate process after receiver. \n Modified only when using an intermediate process after receiver. \n
Must be different for every detector (and udp port). \n Must be different for every detector (and udp port). \n
Multi command will automatically increment for individual modules, use setRxZmqPort. Multi command will automatically increment for individual modules, use setRxZmqPort.
Exmaples
Examples
-------- --------
>>> d.rx_zmqport >>> d.rx_zmqport
[30001, 30002, 30003, 300004] [30001, 30002, 30003, 300004]
>>> d.rx_zmqport = ????? >>> d.rx_zmqport = 30001
>>> d.rx_zmqport = [30001, 30005] #Set ports for the two first detectors
""" """
return element_if_equal(self.getRxZmqPort()) return element_if_equal(self.getRxZmqPort())
@rx_zmqport.setter @rx_zmqport.setter
def rx_zmqport(self, port): def rx_zmqport(self, port):
self.setRxZmqPort(port) if isinstance(port, int):
self.setRxZmqPort(port, -1)
elif is_iterable(port):
for i, p in enumerate(port):
self.setRxZmqPort(p, i)
else:
raise ValueError("Unknown argument type")
@property @property
def zmqport(self): def zmqport(self):
@ -687,7 +697,13 @@ class Detector(CppDetectorApi):
@zmqport.setter @zmqport.setter
def zmqport(self, port): def zmqport(self, port):
self.setClientZmqPort(port) if isinstance(port, int):
self.setClientZmqPort(port, -1)
elif is_iterable(port):
for i, p in enumerate(port):
self.setClientZmqPort(p, i)
else:
raise ValueError("Unknown argument type")
@property @property
def rx_zmqip(self): def rx_zmqip(self):
@ -709,7 +725,7 @@ class Detector(CppDetectorApi):
@rx_zmqip.setter @rx_zmqip.setter
def rx_zmqip(self, ip): def rx_zmqip(self, ip):
self.setRxZmqIP(ip) self.setRxZmqIP(IpAddr(ip))
@property @property
def zmqip(self): def zmqip(self):
@ -717,7 +733,7 @@ class Detector(CppDetectorApi):
@zmqip.setter @zmqip.setter
def zmqip(self, ip): def zmqip(self, ip):
self.setClientZmqIp(ip) self.setClientZmqIp(IpAddr(ip))
@property @property
def udp_dstip(self): def udp_dstip(self):
@ -755,6 +771,30 @@ class Detector(CppDetectorApi):
def udp_dstmac2(self, mac): def udp_dstmac2(self, mac):
self.setDestinationUDPMAC2(MacAddr(mac)) self.setDestinationUDPMAC2(MacAddr(mac))
@property
def udp_srcmac(self):
return element_if_equal(self.getSourceUDPMAC())
@udp_srcmac.setter
def udp_srcmac(self, mac):
if isinstance(mac, (list, tuple)):
for i, m in enumerate(mac):
self.setSourceUDPMAC(MacAddr(m), [i])
else:
self.setSourceUDPMAC(MacAddr(mac))
@property
def udp_srcmac2(self):
return element_if_equal(self.getSourceUDPMAC2())
@udp_srcmac2.setter
def udp_srcmac2(self, mac):
if isinstance(mac, (list, tuple)):
for i, m in enumerate(mac):
self.setSourceUDPMAC2(MacAddr(m), [i])
else:
self.setSourceUDPMAC2(MacAddr(mac))
@property @property
def udp_srcip(self): def udp_srcip(self):
return element_if_equal(self.getSourceUDPIP()) return element_if_equal(self.getSourceUDPIP())
@ -769,7 +809,7 @@ class Detector(CppDetectorApi):
@udp_srcip2.setter @udp_srcip2.setter
def udp_srcip2(self, ip): def udp_srcip2(self, ip):
self.setSourceUDPIP2(ip) self.setSourceUDPIP2(IpAddr(ip))
@property @property
def udp_dstport(self): def udp_dstport(self):

View File

@ -52,6 +52,9 @@
<height>25</height> <height>25</height>
</size> </size>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="minimum"> <property name="minimum">
<double>-1.000000000000000</double> <double>-1.000000000000000</double>
</property> </property>

View File

@ -98,6 +98,9 @@
<height>25</height> <height>25</height>
</size> </size>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="minimum"> <property name="minimum">
<number>-1</number> <number>-1</number>
</property> </property>

View File

@ -463,6 +463,9 @@ Compression using Root. Available only for Gotthard in Expert Mode.
<height>25</height> <height>25</height>
</size> </size>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="suffix"> <property name="suffix">
<string>ns</string> <string>ns</string>
</property> </property>

View File

@ -180,6 +180,9 @@
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;High Voltage. Range: 60 - 200V. Swich off high voltage by setting to 0.&lt;/p&gt;&lt;p&gt;-1 corresponds to different values from detectors.&lt;/p&gt;&lt;p&gt;#highvoltage#&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;High Voltage. Range: 60 - 200V. Swich off high voltage by setting to 0.&lt;/p&gt;&lt;p&gt;-1 corresponds to different values from detectors.&lt;/p&gt;&lt;p&gt;#highvoltage#&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="minimum"> <property name="minimum">
<number>-1</number> <number>-1</number>
</property> </property>

View File

@ -2169,7 +2169,7 @@ Displays minimum, maximum and sum of values for each plot.
<item row="0" column="2"> <item row="0" column="2">
<widget class="QStackedWidget" name="stackedTimeInterval"> <widget class="QStackedWidget" name="stackedTimeInterval">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>1</number>
</property> </property>
<widget class="QWidget" name="pageTimeGap"> <widget class="QWidget" name="pageTimeGap">
<layout class="QHBoxLayout" name="horizontalLayout_14"> <layout class="QHBoxLayout" name="horizontalLayout_14">
@ -2181,6 +2181,9 @@ Displays minimum, maximum and sum of values for each plot.
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="decimals"> <property name="decimals">
<number>3</number> <number>3</number>
</property> </property>
@ -2249,6 +2252,9 @@ Displays minimum, maximum and sum of values for each plot.
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="keyboardTracking">
<bool>false</bool>
</property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>1</number>
</property> </property>

View File

@ -18,17 +18,24 @@ class qTabAdvanced : public QWidget, private Ui::TabAdvancedObject {
void SetDetector(); void SetDetector();
void SetControlPort(int port); void SetControlPort(int port);
void SetStopPort(int port); void SetStopPort(int port);
void SetDetectorUDPIP(); void SetDetectorUDPIP(bool force = false);
void SetDetectorUDPMAC(); void ForceSetDetectorUDPIP();
void SetDetectorUDPMAC(bool force = false);
void ForceSetDetectorUDPMAC();
void SetCltZMQPort(int port); void SetCltZMQPort(int port);
void SetCltZMQIP(); void SetCltZMQIP(bool force = false);
void SetRxrHostname(); void ForceSetCltZMQIP();
void SetRxrHostname(bool force = false);
void ForceSetRxrHostname();
void SetRxrTCPPort(int port); void SetRxrTCPPort(int port);
void SetRxrUDPPort(int port); void SetRxrUDPPort(int port);
void SetRxrUDPIP(); void SetRxrUDPIP(bool force = false);
void SetRxrUDPMAC(); void ForceSetRxrUDPIP();
void SetRxrUDPMAC(bool force = false);
void ForceSetRxrUDPMAC();
void SetRxrZMQPort(int port); void SetRxrZMQPort(int port);
void SetRxrZMQIP(); void SetRxrZMQIP(bool force = false);
void ForceSetRxrZMQIP();
void GetROI(); void GetROI();
void ClearROI(); void ClearROI();
void SetROI(); void SetROI();

View File

@ -13,7 +13,8 @@ class qTabDataOutput : public QWidget, private Ui::TabDataOutputObject {
private slots: private slots:
void GetOutputDir(); void GetOutputDir();
void BrowseOutputDir(); void BrowseOutputDir();
void SetOutputDir(); void SetOutputDir(bool force = false);
void ForceSetOutputDir();
void SetFileFormat(int format); void SetFileFormat(int format);
void SetOverwriteEnable(bool enable); void SetOverwriteEnable(bool enable);
void SetTenGigaEnable(bool enable); void SetTenGigaEnable(bool enable);

View File

@ -31,7 +31,8 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
void SetDelay(); void SetDelay();
void SetBurstPeriod(); void SetBurstPeriod();
void SetFileWrite(bool val); void SetFileWrite(bool val);
void SetFileName(); void SetFileName(bool force = false);
void ForceSetFileName();
void SetRunIndex(int val); void SetRunIndex(int val);
void SetStartingFrameNumber(int val); void SetStartingFrameNumber(int val);
void UpdateProgress(); void UpdateProgress();

View File

@ -24,6 +24,12 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject {
void SetBinary(); void SetBinary();
void SetGapPixels(bool enable); void SetGapPixels(bool enable);
void SetTitles(); void SetTitles();
void isXMinModified();
void isXMaxModified();
void isYMinModified();
void isYMaxModified();
void isZMinModified();
void isZMaxModified();
void SetXRange(); void SetXRange();
void SetYRange(); void SetYRange();
void CheckAspectRatio(); void CheckAspectRatio();

View File

@ -26,7 +26,7 @@ void qDacWidget::SetupWidgetWindow(std::string name) {
void qDacWidget::Initialization() { void qDacWidget::Initialization() {
if (isDac) { if (isDac) {
connect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac())); connect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
} }
} }
@ -38,7 +38,7 @@ void qDacWidget::SetDetectorIndex(int id) {
void qDacWidget::GetDac() { void qDacWidget::GetDac() {
LOG(logDEBUG) << "Getting Dac " << index; LOG(logDEBUG) << "Getting Dac " << index;
disconnect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac())); disconnect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
try { try {
// dac units // dac units
auto retval = det->getDAC(index, 0, {detectorIndex}).squash(-1); auto retval = det->getDAC(index, 0, {detectorIndex}).squash(-1);
@ -52,7 +52,7 @@ void qDacWidget::GetDac() {
CATCH_DISPLAY(std::string("Could not get dac ") + std::to_string(index), CATCH_DISPLAY(std::string("Could not get dac ") + std::to_string(index),
"qDacWidget::GetDac") "qDacWidget::GetDac")
connect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac())); connect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
} }
void qDacWidget::SetDac() { void qDacWidget::SetDac() {

View File

@ -65,8 +65,7 @@ void qTabAdvanced::Initialization() {
// trimming // trimming
if (tab_trimming->isEnabled()) { if (tab_trimming->isEnabled()) {
// editingFinished to not set trimbits for every character input connect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this,
SLOT(SetAllTrimbits())); SLOT(SetAllTrimbits()));
} }
@ -79,23 +78,36 @@ void qTabAdvanced::Initialization() {
SLOT(SetStopPort(int))); SLOT(SetStopPort(int)));
connect(dispDetectorUDPIP, SIGNAL(editingFinished()), this, connect(dispDetectorUDPIP, SIGNAL(editingFinished()), this,
SLOT(SetDetectorUDPIP())); SLOT(SetDetectorUDPIP()));
connect(dispDetectorUDPIP, SIGNAL(returnPressed()), this,
SLOT(ForceSetDetectorUDPIP()));
connect(dispDetectorUDPMAC, SIGNAL(editingFinished()), this, connect(dispDetectorUDPMAC, SIGNAL(editingFinished()), this,
SLOT(SetDetectorUDPMAC())); SLOT(SetDetectorUDPMAC()));
connect(dispDetectorUDPMAC, SIGNAL(returnPressed()), this,
SLOT(ForceSetDetectorUDPMAC()));
connect(spinZMQPort, SIGNAL(valueChanged(int)), this, connect(spinZMQPort, SIGNAL(valueChanged(int)), this,
SLOT(SetCltZMQPort(int))); SLOT(SetCltZMQPort(int)));
connect(dispZMQIP, SIGNAL(editingFinished()), this, SLOT(SetCltZMQIP())); connect(dispZMQIP, SIGNAL(editingFinished()), this, SLOT(SetCltZMQIP()));
connect(dispZMQIP, SIGNAL(returnPressed()), this, SLOT(ForceSetCltZMQIP()));
connect(dispRxrHostname, SIGNAL(editingFinished()), this, connect(dispRxrHostname, SIGNAL(editingFinished()), this,
SLOT(SetRxrHostname())); SLOT(SetRxrHostname()));
connect(dispRxrHostname, SIGNAL(returnPressed()), this,
SLOT(ForceSetRxrHostname()));
connect(spinRxrTCPPort, SIGNAL(valueChanged(int)), this, connect(spinRxrTCPPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrTCPPort(int))); SLOT(SetRxrTCPPort(int)));
connect(spinRxrUDPPort, SIGNAL(valueChanged(int)), this, connect(spinRxrUDPPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrUDPPort(int))); SLOT(SetRxrUDPPort(int)));
connect(dispRxrUDPIP, SIGNAL(editingFinished()), this, SLOT(SetRxrUDPIP())); connect(dispRxrUDPIP, SIGNAL(editingFinished()), this, SLOT(SetRxrUDPIP()));
connect(dispRxrUDPIP, SIGNAL(returnPressed()), this,
SLOT(ForceSetRxrUDPIP()));
connect(dispRxrUDPMAC, SIGNAL(editingFinished()), this, connect(dispRxrUDPMAC, SIGNAL(editingFinished()), this,
SLOT(SetRxrUDPMAC())); SLOT(SetRxrUDPMAC()));
connect(dispRxrUDPMAC, SIGNAL(returnPressed()), this,
SLOT(ForceSetRxrUDPMAC()));
connect(spinRxrZMQPort, SIGNAL(valueChanged(int)), this, connect(spinRxrZMQPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrZMQPort(int))); SLOT(SetRxrZMQPort(int)));
connect(dispRxrZMQIP, SIGNAL(editingFinished()), this, SLOT(SetRxrZMQIP())); connect(dispRxrZMQIP, SIGNAL(editingFinished()), this, SLOT(SetRxrZMQIP()));
connect(dispRxrZMQIP, SIGNAL(returnPressed()), this,
SLOT(ForceSetRxrZMQIP()));
// roi // roi
if (tab_roi->isEnabled()) { if (tab_roi->isEnabled()) {
@ -421,27 +433,41 @@ void qTabAdvanced::SetStopPort(int port) {
&qTabAdvanced::GetStopPort) &qTabAdvanced::GetStopPort)
} }
void qTabAdvanced::SetDetectorUDPIP() { void qTabAdvanced::SetDetectorUDPIP(bool force) {
// return forces modification (inconsistency from command line)
if (dispDetectorUDPIP->isModified() || force) {
dispDetectorUDPIP->setModified(false);
std::string s = dispDetectorUDPIP->text().toAscii().constData(); std::string s = dispDetectorUDPIP->text().toAscii().constData();
LOG(logINFO) << "Setting Detector UDP IP:" << s; LOG(logINFO) << "Setting Detector UDP IP:" << s;
try { try {
det->setSourceUDPIP(sls::IpAddr{s}, {comboDetector->currentIndex()}); det->setSourceUDPIP(sls::IpAddr{s},
{comboDetector->currentIndex()});
} }
CATCH_HANDLE("Could not set Detector UDP IP.", CATCH_HANDLE("Could not set Detector UDP IP.",
"qTabAdvanced::SetDetectorUDPIP", this, "qTabAdvanced::SetDetectorUDPIP", this,
&qTabAdvanced::GetDetectorUDPIP) &qTabAdvanced::GetDetectorUDPIP)
} }
}
void qTabAdvanced::SetDetectorUDPMAC() { void qTabAdvanced::ForceSetDetectorUDPIP() { SetDetectorUDPIP(true); };
void qTabAdvanced::SetDetectorUDPMAC(bool force) {
// return forces modification (inconsistency from command line)
if (dispDetectorUDPMAC->isModified() || force) {
dispDetectorUDPMAC->setModified(false);
std::string s = dispDetectorUDPMAC->text().toAscii().constData(); std::string s = dispDetectorUDPMAC->text().toAscii().constData();
LOG(logINFO) << "Setting Detector UDP MAC:" << s; LOG(logINFO) << "Setting Detector UDP MAC:" << s;
try { try {
det->setSourceUDPMAC(sls::MacAddr{s}, {comboDetector->currentIndex()}); det->setSourceUDPMAC(sls::MacAddr{s},
{comboDetector->currentIndex()});
} }
CATCH_HANDLE("Could not set Detector UDP MAC.", CATCH_HANDLE("Could not set Detector UDP MAC.",
"qTabAdvanced::SetDetectorUDPMAC", this, "qTabAdvanced::SetDetectorUDPMAC", this,
&qTabAdvanced::GetDetectorUDPMAC) &qTabAdvanced::GetDetectorUDPMAC)
} }
}
void qTabAdvanced::ForceSetDetectorUDPMAC() { SetDetectorUDPMAC(true); }
void qTabAdvanced::SetCltZMQPort(int port) { void qTabAdvanced::SetCltZMQPort(int port) {
LOG(logINFO) << "Setting Client ZMQ Port:" << port; LOG(logINFO) << "Setting Client ZMQ Port:" << port;
@ -453,28 +479,43 @@ void qTabAdvanced::SetCltZMQPort(int port) {
&qTabAdvanced::GetCltZMQPort) &qTabAdvanced::GetCltZMQPort)
} }
void qTabAdvanced::SetCltZMQIP() { void qTabAdvanced::SetCltZMQIP(bool force) {
// return forces modification (inconsistency from command line)
if (dispZMQIP->isModified() || force) {
dispZMQIP->setModified(false);
std::string s = dispZMQIP->text().toAscii().constData(); std::string s = dispZMQIP->text().toAscii().constData();
LOG(logINFO) << "Setting Client ZMQ IP:" << s; LOG(logINFO) << "Setting Client ZMQ IP:" << s;
try { try {
det->setClientZmqIp(sls::IpAddr{s}, {comboDetector->currentIndex()}); det->setClientZmqIp(sls::IpAddr{s},
{comboDetector->currentIndex()});
}
CATCH_HANDLE("Could not set Client ZMQ IP.",
"qTabAdvanced::SetCltZMQIP", this,
&qTabAdvanced::GetCltZMQIP)
} }
CATCH_HANDLE("Could not set Client ZMQ IP.", "qTabAdvanced::SetCltZMQIP",
this, &qTabAdvanced::GetCltZMQIP)
} }
void qTabAdvanced::SetRxrHostname() { void qTabAdvanced::ForceSetCltZMQIP() { SetCltZMQIP(true); }
std::string s = dispZMQIP->text().toAscii().constData();
void qTabAdvanced::SetRxrHostname(bool force) {
// return forces modification (inconsistency from command line)
if (dispRxrHostname->isModified() || force) {
dispRxrHostname->setModified(false);
std::string s = dispRxrHostname->text().toAscii().constData();
LOG(logINFO) << "Setting Receiver Hostname:" << s; LOG(logINFO) << "Setting Receiver Hostname:" << s;
try { try {
det->setRxHostname(s, {comboDetector->currentIndex()}); det->setRxHostname(s, {comboDetector->currentIndex()});
} }
CATCH_HANDLE("Could not set Client ZMQ IP.", "qTabAdvanced::SetRxrHostname", CATCH_HANDLE("Could not set Client ZMQ IP.",
this, &qTabAdvanced::GetRxrHostname) "qTabAdvanced::SetRxrHostname", this,
&qTabAdvanced::GetRxrHostname)
// update all network widgets (receiver mainly) // update all network widgets (receiver mainly)
SetDetector(); SetDetector();
} }
}
void qTabAdvanced::ForceSetRxrHostname() { SetRxrHostname(true); }
void qTabAdvanced::SetRxrTCPPort(int port) { void qTabAdvanced::SetRxrTCPPort(int port) {
LOG(logINFO) << "Setting Receiver TCP Port:" << port; LOG(logINFO) << "Setting Receiver TCP Port:" << port;
@ -496,18 +537,28 @@ void qTabAdvanced::SetRxrUDPPort(int port) {
&qTabAdvanced::GetRxrUDPPort) &qTabAdvanced::GetRxrUDPPort)
} }
void qTabAdvanced::SetRxrUDPIP() { void qTabAdvanced::SetRxrUDPIP(bool force) {
// return forces modification (inconsistency from command line)
if (dispRxrUDPIP->isModified() || force) {
dispRxrUDPIP->setModified(false);
std::string s = dispRxrUDPIP->text().toAscii().constData(); std::string s = dispRxrUDPIP->text().toAscii().constData();
LOG(logINFO) << "Setting Receiver UDP IP:" << s; LOG(logINFO) << "Setting Receiver UDP IP:" << s;
try { try {
det->setDestinationUDPIP(sls::IpAddr{s}, det->setDestinationUDPIP(sls::IpAddr{s},
{comboDetector->currentIndex()}); {comboDetector->currentIndex()});
} }
CATCH_HANDLE("Could not set Receiver UDP IP.", "qTabAdvanced::SetRxrUDPIP", CATCH_HANDLE("Could not set Receiver UDP IP.",
this, &qTabAdvanced::GetRxrUDPIP) "qTabAdvanced::SetRxrUDPIP", this,
&qTabAdvanced::GetRxrUDPIP)
}
} }
void qTabAdvanced::SetRxrUDPMAC() { void qTabAdvanced::ForceSetRxrUDPIP() { SetRxrUDPIP(true); }
void qTabAdvanced::SetRxrUDPMAC(bool force) {
// return forces modification (inconsistency from command line)
if (dispRxrUDPMAC->isModified() || force) {
dispRxrUDPMAC->setModified(false);
std::string s = dispRxrUDPMAC->text().toAscii().constData(); std::string s = dispRxrUDPMAC->text().toAscii().constData();
LOG(logINFO) << "Setting Receiver UDP MAC:" << s; LOG(logINFO) << "Setting Receiver UDP MAC:" << s;
try { try {
@ -518,6 +569,9 @@ void qTabAdvanced::SetRxrUDPMAC() {
"qTabAdvanced::SetRxrUDPMAC", this, "qTabAdvanced::SetRxrUDPMAC", this,
&qTabAdvanced::GetRxrUDPMAC) &qTabAdvanced::GetRxrUDPMAC)
} }
}
void qTabAdvanced::ForceSetRxrUDPMAC() { SetRxrUDPMAC(true); }
void qTabAdvanced::SetRxrZMQPort(int port) { void qTabAdvanced::SetRxrZMQPort(int port) {
LOG(logINFO) << "Setting Receiver ZMQ Port:" << port; LOG(logINFO) << "Setting Receiver ZMQ Port:" << port;
@ -529,15 +583,22 @@ void qTabAdvanced::SetRxrZMQPort(int port) {
&qTabAdvanced::GetRxrZMQPort) &qTabAdvanced::GetRxrZMQPort)
} }
void qTabAdvanced::SetRxrZMQIP() { void qTabAdvanced::SetRxrZMQIP(bool force) {
// return forces modification (inconsistency from command line)
if (dispRxrZMQIP->isModified() || force) {
dispRxrZMQIP->setModified(false);
std::string s = dispRxrZMQIP->text().toAscii().constData(); std::string s = dispRxrZMQIP->text().toAscii().constData();
LOG(logINFO) << "Setting Receiver ZMQ IP:" << s; LOG(logINFO) << "Setting Receiver ZMQ IP:" << s;
try { try {
det->setRxZmqIP(sls::IpAddr{s}, {comboDetector->currentIndex()}); det->setRxZmqIP(sls::IpAddr{s}, {comboDetector->currentIndex()});
} }
CATCH_HANDLE("Could not set Receiver ZMQ IP.", "qTabAdvanced::SetRxrZMQIP", CATCH_HANDLE("Could not set Receiver ZMQ IP.",
this, &qTabAdvanced::GetRxrZMQIP) "qTabAdvanced::SetRxrZMQIP", this,
&qTabAdvanced::GetRxrZMQIP)
} }
}
void qTabAdvanced::ForceSetRxrZMQIP() { SetRxrZMQIP(true); }
void qTabAdvanced::GetROI() { void qTabAdvanced::GetROI() {
LOG(logDEBUG) << "Getting ROI"; LOG(logDEBUG) << "Getting ROI";
@ -575,7 +636,7 @@ void qTabAdvanced::SetROI() {
void qTabAdvanced::GetAllTrimbits() { void qTabAdvanced::GetAllTrimbits() {
LOG(logDEBUG) << "Getting all trimbits value"; LOG(logDEBUG) << "Getting all trimbits value";
disconnect(spinSetAllTrimbits, SIGNAL(editingFinished()), this, disconnect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
SLOT(SetAllTrimbits())); SLOT(SetAllTrimbits()));
try { try {
@ -584,7 +645,7 @@ void qTabAdvanced::GetAllTrimbits() {
} }
CATCH_DISPLAY("Could not get all trimbits.", "qTabAdvanced::GetAllTrimbits") CATCH_DISPLAY("Could not get all trimbits.", "qTabAdvanced::GetAllTrimbits")
connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this, connect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
SLOT(SetAllTrimbits())); SLOT(SetAllTrimbits()));
} }

View File

@ -54,6 +54,8 @@ void qTabDataOutput::Initialization() {
SLOT(GetOutputDir())); SLOT(GetOutputDir()));
connect(dispOutputDir, SIGNAL(editingFinished()), this, connect(dispOutputDir, SIGNAL(editingFinished()), this,
SLOT(SetOutputDir())); SLOT(SetOutputDir()));
connect(dispOutputDir, SIGNAL(returnPressed()), this,
SLOT(ForceSetOutputDir()));
connect(btnOutputBrowse, SIGNAL(clicked()), this, SLOT(BrowseOutputDir())); connect(btnOutputBrowse, SIGNAL(clicked()), this, SLOT(BrowseOutputDir()));
connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this, connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetFileFormat(int))); SLOT(SetFileFormat(int)));
@ -69,7 +71,7 @@ void qTabDataOutput::Initialization() {
SLOT(EnableRateCorrection())); SLOT(EnableRateCorrection()));
connect(btnGroupRate, SIGNAL(buttonClicked(int)), this, connect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
connect(spinCustomDeadTime, SIGNAL(editingFinished()), this, connect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
} }
// flags, speed // flags, speed
@ -169,7 +171,10 @@ void qTabDataOutput::BrowseOutputDir() {
dispOutputDir->setText(directory); dispOutputDir->setText(directory);
} }
void qTabDataOutput::SetOutputDir() { void qTabDataOutput::SetOutputDir(bool force) {
// return forces modification (inconsistency from command line)
if (dispOutputDir->isModified() || force) {
dispOutputDir->setModified(false);
QString path = dispOutputDir->text(); QString path = dispOutputDir->text();
LOG(logDEBUG) << "Setting output directory to " LOG(logDEBUG) << "Setting output directory to "
<< path.toAscii().constData(); << path.toAscii().constData();
@ -197,6 +202,9 @@ void qTabDataOutput::SetOutputDir() {
&qTabDataOutput::GetOutputDir) &qTabDataOutput::GetOutputDir)
} }
} }
}
void qTabDataOutput::ForceSetOutputDir() { SetOutputDir(true); };
void qTabDataOutput::GetFileFormat() { void qTabDataOutput::GetFileFormat() {
LOG(logDEBUG) << "Getting File Format"; LOG(logDEBUG) << "Getting File Format";
@ -288,7 +296,7 @@ void qTabDataOutput::GetRateCorrection() {
SLOT(EnableRateCorrection())); SLOT(EnableRateCorrection()));
disconnect(btnGroupRate, SIGNAL(buttonClicked(int)), this, disconnect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
disconnect(spinCustomDeadTime, SIGNAL(editingFinished()), this, disconnect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
try { try {
spinCustomDeadTime->setValue(-1); spinCustomDeadTime->setValue(-1);
@ -305,7 +313,7 @@ void qTabDataOutput::GetRateCorrection() {
connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(EnableRateCorrection())); connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(EnableRateCorrection()));
connect(btnGroupRate, SIGNAL(buttonClicked(int)), this, connect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
connect(spinCustomDeadTime, SIGNAL(editingFinished()), this, connect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection())); SLOT(SetRateCorrection()));
} }

View File

@ -290,7 +290,7 @@ void qTabDeveloper::Initialization() {
SLOT(Refresh())); SLOT(Refresh()));
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, connect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage())); SLOT(SetHighVoltage()));
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage())); connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
} }
void qTabDeveloper::PopulateDetectors() { void qTabDeveloper::PopulateDetectors() {
@ -312,7 +312,7 @@ void qTabDeveloper::GetHighVoltage() {
if (!comboHV->isVisible() && !spinHV->isVisible()) if (!comboHV->isVisible() && !spinHV->isVisible())
return; return;
LOG(logDEBUG) << "Getting High Voltage"; LOG(logDEBUG) << "Getting High Voltage";
disconnect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage())); disconnect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this, disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage())); SLOT(SetHighVoltage()));
try { try {
@ -359,7 +359,7 @@ void qTabDeveloper::GetHighVoltage() {
} }
CATCH_DISPLAY("Could not get high voltage.", CATCH_DISPLAY("Could not get high voltage.",
"qTabDeveloper::GetHighVoltage") "qTabDeveloper::GetHighVoltage")
connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage())); connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
connect(comboHV, SIGNAL(currentIndexChanged(int)), this, connect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage())); SLOT(SetHighVoltage()));
} }

View File

@ -129,6 +129,8 @@ void qTabMeasurement::Initialization() {
} }
connect(chkFile, SIGNAL(toggled(bool)), this, SLOT(SetFileWrite(bool))); connect(chkFile, SIGNAL(toggled(bool)), this, SLOT(SetFileWrite(bool)));
connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName())); connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName()));
connect(dispFileName, SIGNAL(returnPressed()), this,
SLOT(ForceSetFileName()));
connect(spinIndex, SIGNAL(valueChanged(int)), this, SLOT(SetRunIndex(int))); connect(spinIndex, SIGNAL(valueChanged(int)), this, SLOT(SetRunIndex(int)));
if (startingFnumImplemented) { if (startingFnumImplemented) {
connect(spinStartingFrameNumber, SIGNAL(valueChanged(int)), this, connect(spinStartingFrameNumber, SIGNAL(valueChanged(int)), this,
@ -723,8 +725,12 @@ void qTabMeasurement::GetFileName() {
connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName())); connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName()));
} }
void qTabMeasurement::SetFileName() { void qTabMeasurement::SetFileName(bool force) {
std::string val = std::string(dispFileName->text().toAscii().constData()); // return forces modification (inconsistency from command line)
if (dispFileName->isModified() || force) {
dispFileName->setModified(false);
std::string val =
std::string(dispFileName->text().toAscii().constData());
LOG(logINFO) << "Setting File Name Prefix:" << val; LOG(logINFO) << "Setting File Name Prefix:" << val;
try { try {
det->setFileNamePrefix(val); det->setFileNamePrefix(val);
@ -735,6 +741,9 @@ void qTabMeasurement::SetFileName() {
emit FileNameChangedSignal(dispFileName->text()); emit FileNameChangedSignal(dispFileName->text());
} }
}
void qTabMeasurement::ForceSetFileName() { SetFileName(true); }
void qTabMeasurement::GetRunIndex() { void qTabMeasurement::GetRunIndex() {
LOG(logDEBUG) << "Getting Acquisition File index"; LOG(logDEBUG) << "Getting Acquisition File index";

View File

@ -87,9 +87,9 @@ void qTabPlot::Initialization() {
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this, connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(spinTimeGap, SIGNAL(editingFinished()), this, connect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(spinNthFrame, SIGNAL(editingFinished()), this, connect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
// navigation buttons for options // navigation buttons for options
@ -174,17 +174,17 @@ void qTabPlot::Initialization() {
connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange())); connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange())); connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(isXMinModified()));
connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange())); connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(isXMaxModified()));
connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange())); connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(isYMinModified()));
connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange())); connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(isYMaxModified()));
connect(chkAspectRatio, SIGNAL(toggled(bool)), this, connect(chkAspectRatio, SIGNAL(toggled(bool)), this,
SLOT(CheckAspectRatio())); SLOT(CheckAspectRatio()));
connect(chkZMin, SIGNAL(toggled(bool)), this, SLOT(SetZRange())); connect(chkZMin, SIGNAL(toggled(bool)), this, SLOT(SetZRange()));
connect(chkZMax, SIGNAL(toggled(bool)), this, SLOT(SetZRange())); connect(chkZMax, SIGNAL(toggled(bool)), this, SLOT(SetZRange()));
connect(dispZMin, SIGNAL(editingFinished()), this, SLOT(SetZRange())); connect(dispZMin, SIGNAL(editingFinished()), this, SLOT(isZMinModified()));
connect(dispZMax, SIGNAL(editingFinished()), this, SLOT(SetZRange())); connect(dispZMax, SIGNAL(editingFinished()), this, SLOT(isZMaxModified()));
} }
void qTabPlot::Select1DPlot(bool enable) { void qTabPlot::Select1DPlot(bool enable) {
@ -389,6 +389,48 @@ void qTabPlot::SetTitles() {
SLOT(SetTitles())); SLOT(SetTitles()));
} }
void qTabPlot::isXMinModified() {
if (dispXMin->isModified()) {
dispXMin->setModified(false);
SetXRange();
}
}
void qTabPlot::isXMaxModified() {
if (dispXMax->isModified()) {
dispXMax->setModified(false);
SetXRange();
}
}
void qTabPlot::isYMinModified() {
if (dispYMin->isModified()) {
dispYMin->setModified(false);
SetYRange();
}
}
void qTabPlot::isYMaxModified() {
if (dispYMax->isModified()) {
dispYMax->setModified(false);
SetYRange();
}
}
void qTabPlot::isZMinModified() {
if (dispZMin->isModified()) {
dispZMin->setModified(false);
SetZRange();
}
}
void qTabPlot::isZMaxModified() {
if (dispZMax->isModified()) {
dispZMax->setModified(false);
SetZRange();
}
}
void qTabPlot::SetXRange() { void qTabPlot::SetXRange() {
LOG(logDEBUG) << "Enable X axis range"; LOG(logDEBUG) << "Enable X axis range";
@ -452,10 +494,14 @@ void qTabPlot::MaintainAspectRatio(int dimension) {
disconnect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange())); disconnect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
disconnect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); disconnect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
disconnect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); disconnect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
disconnect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange())); disconnect(dispXMin, SIGNAL(editingFinished()), this,
disconnect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange())); SLOT(isXMinModified()));
disconnect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange())); disconnect(dispXMax, SIGNAL(editingFinished()), this,
disconnect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange())); SLOT(isXMaxModified()));
disconnect(dispYMin, SIGNAL(editingFinished()), this,
SLOT(isYMinModified()));
disconnect(dispYMax, SIGNAL(editingFinished()), this,
SLOT(isYMaxModified()));
// check all, fill all // check all, fill all
chkXMin->setChecked(true); chkXMin->setChecked(true);
@ -550,10 +596,10 @@ void qTabPlot::MaintainAspectRatio(int dimension) {
connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange())); connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange())); connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange())); connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(isXMinModified()));
connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange())); connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(isXMaxModified()));
connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange())); connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(isYMinModified()));
connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange())); connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(isYMaxModified()));
bool isRange[4]{true, true, true, true}; bool isRange[4]{true, true, true, true};
plot->SetXYRangeChanged(true, ranges, isRange); plot->SetXYRangeChanged(true, ranges, isRange);
@ -583,9 +629,9 @@ void qTabPlot::GetStreamingFrequency() {
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
disconnect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this, disconnect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
disconnect(spinTimeGap, SIGNAL(editingFinished()), this, disconnect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
disconnect(spinNthFrame, SIGNAL(editingFinished()), this, disconnect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
try { try {
int freq = det->getRxZmqFrequency().tsquash( int freq = det->getRxZmqFrequency().tsquash(
@ -621,9 +667,9 @@ void qTabPlot::GetStreamingFrequency() {
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this, connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(spinTimeGap, SIGNAL(editingFinished()), this, connect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
connect(spinNthFrame, SIGNAL(editingFinished()), this, connect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency())); SLOT(SetStreamingFrequency()));
} }

View File

@ -901,12 +901,13 @@ int setPeriod(int64_t val) {
LOG(logERROR, ("Invalid period: %lld ns\n", val)); LOG(logERROR, ("Invalid period: %lld ns\n", val));
return FAIL; return FAIL;
} }
val *= (1E-9 * systemFrequency);
if (burstMode == BURST_OFF) { if (burstMode == BURST_OFF) {
LOG(logINFO, ("Setting period %lld ns [Continuous mode]\n", val)); LOG(logINFO, ("Setting period %lld ns [Continuous mode]\n", val));
val *= (1E-9 * systemFrequency);
set64BitReg(val, SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG); set64BitReg(val, SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG);
} else { } else {
LOG(logINFO, ("Setting period %lld ns [Burst mode]\n", val)); LOG(logINFO, ("Setting period %lld ns [Burst mode]\n", val));
val *= (1E-9 * systemFrequency);
set64BitReg(val, ASIC_INT_PERIOD_LSB_REG, ASIC_INT_PERIOD_MSB_REG); set64BitReg(val, ASIC_INT_PERIOD_LSB_REG, ASIC_INT_PERIOD_MSB_REG);
} }
// validate for tolerance // validate for tolerance

View File

@ -46,8 +46,8 @@
#define DEFAULT_CURRENT_SOURCE (0) #define DEFAULT_CURRENT_SOURCE (0)
#define DEFAULT_TIMING_SOURCE (TIMING_INTERNAL) #define DEFAULT_TIMING_SOURCE (TIMING_INTERNAL)
#define DEFAULT_READOUT_C0 (8) //(108333336) // rdo_clk, 108 MHz #define DEFAULT_READOUT_C0 (6) //(144444448) // rdo_clk, 144 MHz
#define DEFAULT_READOUT_C1 (8) //(108333336) // rdo_x2_clk, 108 MHz #define DEFAULT_READOUT_C1 (6) //(144444448) // rdo_x2_clk, 144 MHz
#define DEFAULT_SYSTEM_C0 (5) //(144444448) // run_clk, 144 MHz #define DEFAULT_SYSTEM_C0 (5) //(144444448) // run_clk, 144 MHz
#define DEFAULT_SYSTEM_C1 (10) //(72222224) // chip_clk, 72 MHz #define DEFAULT_SYSTEM_C1 (10) //(72222224) // chip_clk, 72 MHz
#define DEFAULT_SYSTEM_C2 (5) //(144444448) // sync_clk, 144 MHz #define DEFAULT_SYSTEM_C2 (5) //(144444448) // sync_clk, 144 MHz

View File

@ -5,8 +5,8 @@
#define APIGUI 0x200804 #define APIGUI 0x200804
#define APICTB 0x200810 #define APICTB 0x200810
#define APIGOTTHARD 0x200810 #define APIGOTTHARD 0x200810
#define APIGOTTHARD2 0x200810
#define APIJUNGFRAU 0x200810 #define APIJUNGFRAU 0x200810
#define APIMOENCH 0x200810 #define APIMOENCH 0x200810
#define APIEIGER 0x200831 #define APIEIGER 0x200831
#define APIMYTHEN3 0x200901 #define APIMYTHEN3 0x200901
#define APIGOTTHARD2 0x200902