added TriggerMask in Setting
This commit is contained in:
parent
38f6cc41cb
commit
7b237fabcb
|
@ -6,6 +6,7 @@
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QWheelEvent>
|
#include <QWheelEvent>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
//^=======================================
|
//^=======================================
|
||||||
class RComboBox : public QComboBox{
|
class RComboBox : public QComboBox{
|
||||||
|
|
|
@ -18,7 +18,7 @@ SOLARISpanel::SOLARISpanel(Digitizer2Gen **digi, unsigned short nDigi,
|
||||||
QWidget *parent) : QWidget(parent){
|
QWidget *parent) : QWidget(parent){
|
||||||
|
|
||||||
setWindowTitle("SOLARIS Settings");
|
setWindowTitle("SOLARIS Settings");
|
||||||
setGeometry(0, 0, 1400, 800);
|
setGeometry(0, 0, 1350, 800);
|
||||||
|
|
||||||
printf("%s\n", __func__);
|
printf("%s\n", __func__);
|
||||||
|
|
||||||
|
@ -91,14 +91,35 @@ SOLARISpanel::SOLARISpanel(Digitizer2Gen **digi, unsigned short nDigi,
|
||||||
//---------- Set Panel
|
//---------- Set Panel
|
||||||
QGridLayout * mainLayout = new QGridLayout(this); this->setLayout(mainLayout);
|
QGridLayout * mainLayout = new QGridLayout(this); this->setLayout(mainLayout);
|
||||||
|
|
||||||
|
///=================================
|
||||||
|
int rowIndex = 0;
|
||||||
QPushButton * bnRefresh = new QPushButton("Refresh Settings", this);
|
QPushButton * bnRefresh = new QPushButton("Refresh Settings", this);
|
||||||
connect(bnRefresh, &QPushButton::clicked, this, &SOLARISpanel::UpdatePanel );
|
connect(bnRefresh, &QPushButton::clicked, this, &SOLARISpanel::RefreshSettings );
|
||||||
mainLayout->addWidget(bnRefresh, 0, 0);
|
mainLayout->addWidget(bnRefresh, rowIndex, 0);
|
||||||
|
|
||||||
|
QPushButton * bnSaveSetting = new QPushButton("Save Settings", this);
|
||||||
|
connect(bnSaveSetting, &QPushButton::clicked, this, &SOLARISpanel::SaveSettings);
|
||||||
|
mainLayout->addWidget(bnSaveSetting, rowIndex, 1);
|
||||||
|
|
||||||
|
QPushButton * bnLoadSetting = new QPushButton("Load Settings", this);
|
||||||
|
connect(bnLoadSetting, &QPushButton::clicked, this, &SOLARISpanel::LoadSettings);
|
||||||
|
mainLayout->addWidget(bnLoadSetting, rowIndex, 2);
|
||||||
|
|
||||||
|
QLabel * lbCoinTime = new QLabel("Coin. Time [ns]", this);
|
||||||
|
lbCoinTime->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
mainLayout->addWidget(lbCoinTime, rowIndex, 3);
|
||||||
|
|
||||||
|
RSpinBox * sbCoinTime = new RSpinBox(this);
|
||||||
|
mainLayout->addWidget(sbCoinTime, rowIndex, 4);
|
||||||
|
|
||||||
|
///=================================
|
||||||
|
rowIndex ++;
|
||||||
QLabel * info = new QLabel("Only simple trigger is avalible. For complex trigger scheme, please use the setting panel.", this);
|
QLabel * info = new QLabel("Only simple trigger is avalible. For complex trigger scheme, please use the setting panel.", this);
|
||||||
mainLayout->addWidget(info, 0, 1, 1, 4);
|
mainLayout->addWidget(info, rowIndex, 0, 1, 4);
|
||||||
|
|
||||||
QTabWidget * tabWidget = new QTabWidget(this); mainLayout->addWidget(tabWidget, 1, 0, 1, 5);
|
///=================================
|
||||||
|
rowIndex ++;
|
||||||
|
QTabWidget * tabWidget = new QTabWidget(this); mainLayout->addWidget(tabWidget, rowIndex, 0, 1, 5);
|
||||||
for( int detTypeID = 0; detTypeID < nDetType; detTypeID ++ ){
|
for( int detTypeID = 0; detTypeID < nDetType; detTypeID ++ ){
|
||||||
|
|
||||||
QTabWidget * tabSetting = new QTabWidget(tabWidget);
|
QTabWidget * tabSetting = new QTabWidget(tabWidget);
|
||||||
|
@ -183,8 +204,11 @@ void SOLARISpanel::CreateDetGroup(int SettingID, QList<int> detID, QGridLayout *
|
||||||
layout0->setAlignment(Qt::AlignLeft);
|
layout0->setAlignment(Qt::AlignLeft);
|
||||||
|
|
||||||
//@======================================== SpinBox and Display
|
//@======================================== SpinBox and Display
|
||||||
|
bool isDisableDetector = false;
|
||||||
for( int i = 1; i < (int) detID.size(); i ++){
|
for( int i = 1; i < (int) detID.size(); i ++){
|
||||||
|
|
||||||
|
isDisableDetector = false;
|
||||||
|
|
||||||
QLabel * lb = new QLabel(arrayLabel[i-1], this);
|
QLabel * lb = new QLabel(arrayLabel[i-1], this);
|
||||||
layout0->addWidget(lb, 2*i, 0, 2, 1);
|
layout0->addWidget(lb, 2*i, 0, 2, 1);
|
||||||
|
|
||||||
|
@ -213,6 +237,7 @@ void SOLARISpanel::CreateDetGroup(int SettingID, QList<int> detID, QGridLayout *
|
||||||
leDisplay[SettingID][digiID][chID]->setEnabled(false);
|
leDisplay[SettingID][digiID][chID]->setEnabled(false);
|
||||||
sbSetting[SettingID][digiID][chID]->setEnabled(false);
|
sbSetting[SettingID][digiID][chID]->setEnabled(false);
|
||||||
chkOnOff[SettingID][digiID][chID]->setEnabled(false);
|
chkOnOff[SettingID][digiID][chID]->setEnabled(false);
|
||||||
|
isDisableDetector = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
///========================= for SpinBox
|
///========================= for SpinBox
|
||||||
|
@ -291,6 +316,8 @@ void SOLARISpanel::CreateDetGroup(int SettingID, QList<int> detID, QGridLayout *
|
||||||
|
|
||||||
layout0->addWidget(cbTrigger[detTypeID][detID[0]], 8, 0, 1, 3);
|
layout0->addWidget(cbTrigger[detTypeID][detID[0]], 8, 0, 1, 3);
|
||||||
|
|
||||||
|
if( isDisableDetector ) cbTrigger[detTypeID][detID[0]]->setEnabled(false);
|
||||||
|
|
||||||
connect(cbTrigger[detTypeID][detID[0]], &RComboBox::currentIndexChanged, this , [=](int index){
|
connect(cbTrigger[detTypeID][detID[0]], &RComboBox::currentIndexChanged, this , [=](int index){
|
||||||
if( !enableSignalSlot) return;
|
if( !enableSignalSlot) return;
|
||||||
|
|
||||||
|
@ -299,6 +326,8 @@ void SOLARISpanel::CreateDetGroup(int SettingID, QList<int> detID, QGridLayout *
|
||||||
int digiID = (detID[i] >> 8 );
|
int digiID = (detID[i] >> 8 );
|
||||||
int chID = (detID[i] & 0xFF);
|
int chID = (detID[i] & 0xFF);
|
||||||
|
|
||||||
|
if( digi[digiID]->IsDummy() || !digi[digiID]->IsConnected() ) continue;
|
||||||
|
|
||||||
digi[digiID]->WriteValue(PHA::CH::AntiCoincidenceMask, "Disabled", chID);
|
digi[digiID]->WriteValue(PHA::CH::AntiCoincidenceMask, "Disabled", chID);
|
||||||
|
|
||||||
switch(index){
|
switch(index){
|
||||||
|
@ -346,10 +375,21 @@ void SOLARISpanel::CreateDetGroup(int SettingID, QList<int> detID, QGridLayout *
|
||||||
layout->addWidget(groupbox, row, col);
|
layout->addWidget(groupbox, row, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//^##############################################################
|
||||||
|
void SOLARISpanel::RefreshSettings(){
|
||||||
|
for( int i = 0 ; i < nDigi; i++){
|
||||||
|
if( digi[i]->IsDummy() || !digi[i]->IsConnected()){
|
||||||
|
digi[i]->ReadAllSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UpdatePanel();
|
||||||
|
}
|
||||||
|
|
||||||
void SOLARISpanel::UpdatePanel(){
|
void SOLARISpanel::UpdatePanel(){
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
||||||
|
printf("%s\n", __func__);
|
||||||
|
|
||||||
for( int SettingID = 0; SettingID < (int) SettingItems.size() ; SettingID ++){
|
for( int SettingID = 0; SettingID < (int) SettingItems.size() ; SettingID ++){
|
||||||
for( int DigiID = 0; DigiID < (int) mapping.size(); DigiID ++){
|
for( int DigiID = 0; DigiID < (int) mapping.size(); DigiID ++){
|
||||||
if( DigiID >= nDigi ) continue;;
|
if( DigiID >= nDigi ) continue;;
|
||||||
|
@ -389,8 +429,8 @@ void SOLARISpanel::UpdatePanel(){
|
||||||
for( int h = 1; h < detIDList[k].size(); h++){
|
for( int h = 1; h < detIDList[k].size(); h++){
|
||||||
int digiID = detIDList[k][h] >> 8;
|
int digiID = detIDList[k][h] >> 8;
|
||||||
int chID = (detIDList[k][h] & 0xFF);
|
int chID = (detIDList[k][h] & 0xFF);
|
||||||
bool ok;
|
|
||||||
triggerMap.push_back( QString::fromStdString(digi[digiID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, chID)).toULong(&ok, 16));
|
triggerMap.push_back(Utility::TenBase(digi[digiID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, chID)));
|
||||||
coincidentMask.push_back(digi[digiID]->GetSettingValue(PHA::CH::CoincidenceMask, chID));
|
coincidentMask.push_back(digi[digiID]->GetSettingValue(PHA::CH::CoincidenceMask, chID));
|
||||||
antiCoincidentMask.push_back(digi[digiID]->GetSettingValue(PHA::CH::AntiCoincidenceMask, chID));
|
antiCoincidentMask.push_back(digi[digiID]->GetSettingValue(PHA::CH::AntiCoincidenceMask, chID));
|
||||||
eventTriggerSource.push_back(digi[digiID]->GetSettingValue(PHA::CH::EventTriggerSource, chID));
|
eventTriggerSource.push_back(digi[digiID]->GetSettingValue(PHA::CH::EventTriggerSource, chID));
|
||||||
|
@ -414,12 +454,8 @@ void SOLARISpanel::UpdatePanel(){
|
||||||
//check 0-index settings
|
//check 0-index settings
|
||||||
if( isAcceptableSetting ){
|
if( isAcceptableSetting ){
|
||||||
if( eventTriggerSource[0] == "ChSelfTrigger" && coincidentMask[0] == "Disabled") {
|
if( eventTriggerSource[0] == "ChSelfTrigger" && coincidentMask[0] == "Disabled") {
|
||||||
|
|
||||||
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Self Trigger");
|
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Self Trigger");
|
||||||
}else if( eventTriggerSource[0] == "Disabled" && coincidentMask[0] == "Disabled" ) {
|
|
||||||
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Disabled");
|
|
||||||
}else if( eventTriggerSource[0] == "TRGIN" && coincidentMask[0] == "TRGIN") {
|
|
||||||
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Ext. Trigger");
|
|
||||||
}else if( eventTriggerSource[0] == "ChSelfTrigger" && coincidentMask[0] == "Disabled") {
|
|
||||||
|
|
||||||
unsigned long mask = 1ULL << (detIDList[k][1] & 0xFF);
|
unsigned long mask = 1ULL << (detIDList[k][1] & 0xFF);
|
||||||
|
|
||||||
|
@ -431,6 +467,12 @@ void SOLARISpanel::UpdatePanel(){
|
||||||
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Trigger e");
|
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Trigger e");
|
||||||
isTriggerE = true;
|
isTriggerE = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}else if( eventTriggerSource[0] == "Disabled" && coincidentMask[0] == "Disabled" ) {
|
||||||
|
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Disabled");
|
||||||
|
}else if( eventTriggerSource[0] == "TRGIN" && coincidentMask[0] == "TRGIN") {
|
||||||
|
cbTrigger[detTypeID][detIDList[k][0]]->setCurrentText("Ext. Trigger");
|
||||||
}else{
|
}else{
|
||||||
isAcceptableSetting = false;
|
isAcceptableSetting = false;
|
||||||
}
|
}
|
||||||
|
@ -483,3 +525,14 @@ void SOLARISpanel::UpdateThreshold(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//^#########################################
|
||||||
|
void SOLARISpanel::SaveSettings(){
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void SOLARISpanel::LoadSettings(){
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -40,6 +40,9 @@ public:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
|
void RefreshSettings();
|
||||||
|
void SaveSettings();
|
||||||
|
void LoadSettings();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void UpdatePanel();
|
void UpdatePanel();
|
||||||
|
|
|
@ -592,6 +592,9 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
FillSpinBoxValueFromMemory(spbCoinLength[ID][ch], PHA::CH::CoincidenceLength, index);
|
FillSpinBoxValueFromMemory(spbCoinLength[ID][ch], PHA::CH::CoincidenceLength, index);
|
||||||
FillSpinBoxValueFromMemory(spbADCVetoWidth[ID][ch], PHA::CH::ADCVetoWidth, index);
|
FillSpinBoxValueFromMemory(spbADCVetoWidth[ID][ch], PHA::CH::ADCVetoWidth, index);
|
||||||
|
|
||||||
|
unsigned long mask = Utility::TenBase(digi[ID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, cbChPick[ID]->currentData().toInt()));
|
||||||
|
leTriggerMask[ID][ch]->setText("0x" + QString::number(mask, 16));
|
||||||
|
|
||||||
enableSignalSlot = true;
|
enableSignalSlot = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -691,6 +694,39 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
rowID ++;
|
rowID ++;
|
||||||
SetupComboBox(cbbChVetoSrc[iDigi][ch], PHA::CH::ChannelVetoSource, -1, true, "Veto Source", layout5, rowID, 0);
|
SetupComboBox(cbbChVetoSrc[iDigi][ch], PHA::CH::ChannelVetoSource, -1, true, "Veto Source", layout5, rowID, 0);
|
||||||
|
|
||||||
|
QLabel * lbTrgMsk = new QLabel("Trigger Mask :");
|
||||||
|
lbTrgMsk->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
layout5->addWidget(lbTrgMsk, rowID, 2);
|
||||||
|
leTriggerMask[iDigi][ch] = new QLineEdit(this);
|
||||||
|
layout5->addWidget(leTriggerMask[iDigi][ch], rowID, 3);
|
||||||
|
|
||||||
|
connect(leTriggerMask[iDigi][ch], &QLineEdit::textChanged, this, [=](){
|
||||||
|
if( !enableSignalSlot ) return;
|
||||||
|
leTriggerMask[iDigi][ch]->setStyleSheet("color:blue;");
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(leTriggerMask[iDigi][ch], &QLineEdit::returnPressed, this, [=](){
|
||||||
|
if( !enableSignalSlot ) return;
|
||||||
|
int index = cbChPick[ID]->currentData().toInt();
|
||||||
|
|
||||||
|
QString SixteenBaseValue = "0x" + QString::number(Utility::TenBase(leTriggerMask[ID][ch]->text().toStdString()), 16);
|
||||||
|
leTriggerMask[ID][ch]->setText(SixteenBaseValue);
|
||||||
|
|
||||||
|
QString msg;
|
||||||
|
msg = QString::fromStdString(PHA::CH::ChannelsTriggerMask.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||||
|
msg += ",CH:" + (index == -1 ? "All" : QString::number(index));
|
||||||
|
msg += " = " + SixteenBaseValue;
|
||||||
|
|
||||||
|
if( digi[ID]->WriteValue(PHA::CH::ChannelsTriggerMask, SixteenBaseValue.toStdString(), index)){
|
||||||
|
SendLogMsg(msg + "|OK.");
|
||||||
|
leTriggerMask[ID][ch]->setStyleSheet("");
|
||||||
|
ShowSettingsToPanel();
|
||||||
|
}else{
|
||||||
|
SendLogMsg(msg + "|Fail.");
|
||||||
|
leTriggerMask[ID][ch]->setStyleSheet("color:red;");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//------------------------------
|
//------------------------------
|
||||||
rowID ++;
|
rowID ++;
|
||||||
SetupComboBox(cbbCoinMask[iDigi][ch], PHA::CH::CoincidenceMask, -1, true, "Coin. Mask", layout5, rowID, 0);
|
SetupComboBox(cbbCoinMask[iDigi][ch], PHA::CH::CoincidenceMask, -1, true, "Coin. Mask", layout5, rowID, 0);
|
||||||
|
@ -1494,9 +1530,7 @@ void DigiSettingsPanel::ReadTriggerMap(){
|
||||||
|
|
||||||
for( int ch = 0; ch < (int) digi[ID]->GetNChannels(); ch ++){
|
for( int ch = 0; ch < (int) digi[ID]->GetNChannels(); ch ++){
|
||||||
|
|
||||||
std::string ans = digi[ID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, ch);
|
unsigned long mask = Utility::TenBase(digi[ID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, ch));
|
||||||
bool ok;
|
|
||||||
unsigned long mask = QString::fromStdString(ans).toULong(&ok, 10);
|
|
||||||
//printf("Trigger Mask of ch-%2d : 0x%s |%s| \n", ch, QString::number(mask, 16).toStdString().c_str(), ans.c_str());
|
//printf("Trigger Mask of ch-%2d : 0x%s |%s| \n", ch, QString::number(mask, 16).toStdString().c_str(), ans.c_str());
|
||||||
|
|
||||||
for( int k = 0; k < (int) digi[ID]->GetNChannels(); k ++ ){
|
for( int k = 0; k < (int) digi[ID]->GetNChannels(); k ++ ){
|
||||||
|
@ -1773,8 +1807,27 @@ void DigiSettingsPanel::ShowSettingsToPanel(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------ Trigger Mask
|
||||||
|
if( cbChPick[ID]->currentData().toInt() < 0 ) {
|
||||||
|
unsigned long mask = Utility::TenBase(digi[ID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, 0));
|
||||||
|
|
||||||
|
bool isSame = true;
|
||||||
|
for(int ch = 1; ch < digi[ID]->GetNChannels() ; ch ++){
|
||||||
|
unsigned long haha = Utility::TenBase(digi[ID]->GetSettingValue(PHA::CH::ChannelsTriggerMask, ch));
|
||||||
|
if( mask != haha) {
|
||||||
|
isSame = false;
|
||||||
|
leTriggerMask[ID][MaxNumberOfChannel]->setText("Diff. value");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( isSame ) leTriggerMask[ID][MaxNumberOfChannel]->setText("0x" + QString::number(mask, 16));
|
||||||
|
}
|
||||||
|
|
||||||
enableSignalSlot = true;
|
enableSignalSlot = true;
|
||||||
|
|
||||||
|
ReadTriggerMap();
|
||||||
|
|
||||||
if( cbChPick[ID]->currentData().toInt() >= 0 ) return;
|
if( cbChPick[ID]->currentData().toInt() >= 0 ) return;
|
||||||
|
|
||||||
SyncComboBox(cbbOnOff, -1);
|
SyncComboBox(cbbOnOff, -1);
|
||||||
|
@ -1817,8 +1870,6 @@ void DigiSettingsPanel::ShowSettingsToPanel(){
|
||||||
SyncSpinBox(spbCoinLength , -1);
|
SyncSpinBox(spbCoinLength , -1);
|
||||||
SyncSpinBox(spbADCVetoWidth , -1);
|
SyncSpinBox(spbADCVetoWidth , -1);
|
||||||
|
|
||||||
ReadTriggerMap();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//^###########################################################################
|
//^###########################################################################
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
#include <QSignalMapper>
|
#include <QSignalMapper>
|
||||||
|
|
||||||
|
|
||||||
#include "ClassDigitizer2Gen.h"
|
#include "ClassDigitizer2Gen.h"
|
||||||
#include "CustomWidgets.h"
|
#include "CustomWidgets.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
|
@ -217,6 +216,8 @@ private:
|
||||||
RComboBox * cbbCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
RComboBox * cbbCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||||
RComboBox * cbbAntiCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
RComboBox * cbbAntiCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||||
|
|
||||||
|
QLineEdit * leTriggerMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||||
|
|
||||||
RSpinBox * spbCoinLength[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
RSpinBox * spbCoinLength[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||||
RSpinBox * spbADCVetoWidth[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
RSpinBox * spbADCVetoWidth[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||||
|
|
||||||
|
|
19
macro.h
19
macro.h
|
@ -5,4 +5,23 @@
|
||||||
#define DAQLockFile "DAQLock.dat"
|
#define DAQLockFile "DAQLock.dat"
|
||||||
#define PIDFile "pid.dat"
|
#define PIDFile "pid.dat"
|
||||||
|
|
||||||
|
//^=================================
|
||||||
|
namespace Utility{
|
||||||
|
/// either haha is "0xFFF" or "12435", convert to 10-base
|
||||||
|
static unsigned long TenBase(std::string haha){
|
||||||
|
QString ans = QString::fromStdString(haha);
|
||||||
|
unsigned long mask = 0 ;
|
||||||
|
if( ans.contains("0x")){
|
||||||
|
bool ok;
|
||||||
|
mask = ans.toULong(&ok, 16);
|
||||||
|
}else{
|
||||||
|
mask = ans.toULong();
|
||||||
|
}
|
||||||
|
return mask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//just to get rip of the warning;
|
||||||
|
const unsigned long ksjaldja = Utility::TenBase("0");
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue
Block a user