finsiah the low level settings
This commit is contained in:
parent
77d2023776
commit
68953be4bf
198
DigiParameters.h
198
DigiParameters.h
|
@ -5,7 +5,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
enum ANSTYPE {NUM, STR, NONE};
|
||||
enum ANSTYPE {INTEGER, FLOAT, LIST, STR, NONE};
|
||||
enum TYPE {CH, DIG, LVDS, VGA};
|
||||
enum RW { ReadOnly, WriteOnly, ReadWrite};
|
||||
|
||||
|
@ -28,14 +28,14 @@ class Reg {
|
|||
type = TYPE::CH;
|
||||
isCmd = false;
|
||||
value = "";
|
||||
ansType = ANSTYPE::STR;
|
||||
ansType = ANSTYPE::LIST;
|
||||
answerUnit = "";
|
||||
answer.clear();
|
||||
}
|
||||
Reg(std::string para, RW readwrite,
|
||||
TYPE type = TYPE::CH,
|
||||
std::vector<std::pair<std::string,std::string>> answer = {},
|
||||
ANSTYPE ansType = ANSTYPE::STR,
|
||||
ANSTYPE ansType = ANSTYPE::LIST,
|
||||
std::string ansUnit = "",
|
||||
bool isCmd = false){
|
||||
this->name = para;
|
||||
|
@ -114,58 +114,58 @@ namespace DIGIPARA{
|
|||
namespace DIG{
|
||||
|
||||
///============== read only
|
||||
const Reg CupVer ("CupVer", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg FPGA_firmwareVersion ("FPGA_FwVer", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg CupVer ("CupVer", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg FPGA_firmwareVersion ("FPGA_FwVer", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg FirmwareType ("FwType", RW::ReadOnly, TYPE::DIG, {{"DPP_PHA", ""}, {"DPP_ZLE", ""}, {"DPP_PSD", ""}, {"DPP_DAW", ""}, {"DPP_OPEN", ""}, {"Scope", ""}});
|
||||
const Reg ModelCode ("ModelCode", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg PBCode ("PBCode", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg ModelName ("ModelName", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg ModelCode ("ModelCode", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg PBCode ("PBCode", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg ModelName ("ModelName", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg FromFactor ("FormFactor", RW::ReadOnly, TYPE::DIG, {{"0", "VME"}, {"1", "VME64X"}, {"2", "DT"}});
|
||||
const Reg FamilyCode ("FamilyCode", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg SerialNumber ("SerialNum", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg PCBrev_MB ("PCBrev_MB", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg PCBrev_PB ("PCBrev_PB", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg DPP_License ("License", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg DPP_LicenseStatus ("LicenseStatus", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg DPP_LicenseRemainingTime ("LicenseRemainingTime", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg NumberOfChannel ("NumCh", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||
const Reg ADC_bit ("ADC_Nbit", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "sec");
|
||||
const Reg ADC_SampleRate ("ADC_SamplRate", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "MS/s");
|
||||
const Reg InputDynamicRange ("InputRange", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Vpp");
|
||||
const Reg FamilyCode ("FamilyCode", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg SerialNumber ("SerialNum", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg PCBrev_MB ("PCBrev_MB", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg PCBrev_PB ("PCBrev_PB", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg DPP_License ("License", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg DPP_LicenseStatus ("LicenseStatus", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg DPP_LicenseRemainingTime ("LicenseRemainingTime", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg NumberOfChannel ("NumCh", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER);
|
||||
const Reg ADC_bit ("ADC_Nbit", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "sec");
|
||||
const Reg ADC_SampleRate ("ADC_SamplRate", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "MS/s");
|
||||
const Reg InputDynamicRange ("InputRange", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "Vpp");
|
||||
const Reg InputType ("InputType", RW::ReadOnly, TYPE::DIG, {{"0","Singled ended"}, {"1", "Differential"}});
|
||||
const Reg InputImpedance ("Zin", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Ohm");
|
||||
const Reg IPAddress ("IPAddress", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg NetMask ("Netmask", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg Gateway ("Gateway", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg LED_status ("LedStatus", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg ACQ_status ("AcquisitionStatus", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "byte");
|
||||
const Reg MaxRawDataSize ("MaxRawDataSize", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg TempSensAirIn ("TempSensAirIn", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensAirOut ("TempSensAirOut", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensCore ("TempSensCore", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensFirstADC ("TempSensFirstADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensLastADC ("TempSensLastADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensHottestADC ("TempSensHottestADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC0 ("TempSensADC0", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC1 ("TempSensADC1", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC2 ("TempSensADC2", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC3 ("TempSensADC3", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC4 ("TempSensADC4", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC5 ("TempSensADC5", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC6 ("TempSensADC6", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg TempSensADC7 ("TempSensADC7", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg InputImpedance ("Zin", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "Ohm");
|
||||
const Reg IPAddress ("IPAddress", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg NetMask ("Netmask", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg Gateway ("Gateway", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg LED_status ("LedStatus", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR, "byte");
|
||||
const Reg ACQ_status ("AcquisitionStatus", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR, "byte");
|
||||
const Reg MaxRawDataSize ("MaxRawDataSize", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR, "byte");
|
||||
const Reg TempSensAirIn ("TempSensAirIn", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensAirOut ("TempSensAirOut", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensCore ("TempSensCore", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensFirstADC ("TempSensFirstADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensLastADC ("TempSensLastADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensHottestADC ("TempSensHottestADC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC0 ("TempSensADC0", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC1 ("TempSensADC1", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC2 ("TempSensADC2", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC3 ("TempSensADC3", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC4 ("TempSensADC4", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC5 ("TempSensADC5", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC6 ("TempSensADC6", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg TempSensADC7 ("TempSensADC7", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
|
||||
const std::vector<Reg> TempSensADC = {TempSensADC0,TempSensADC1,TempSensADC2,TempSensADC3,TempSensADC4,TempSensADC5,TempSensADC6,TempSensADC7};
|
||||
|
||||
const Reg TempSensDCDC ("TempSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "C");
|
||||
const Reg VInSensDCDC ("VInSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "V");
|
||||
const Reg VOutSensDCDC ("VOutSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "V");
|
||||
const Reg IOutSensDCDC ("IOutSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Amp");
|
||||
const Reg FreqSensCore ("FreqSensCore", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Hz");
|
||||
const Reg DutyCycleSensDCDC ("DutyCycleSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "%");
|
||||
const Reg SpeedSensFan1 ("SpeedSensFan1", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "rpm");
|
||||
const Reg SpeedSensFan2 ("SpeedSensFan2", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "rpm");
|
||||
const Reg ErrorFlags ("ErrorFlags", RW::ReadOnly, TYPE::DIG);
|
||||
const Reg TempSensDCDC ("TempSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||
const Reg VInSensDCDC ("VInSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "V");
|
||||
const Reg VOutSensDCDC ("VOutSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "V");
|
||||
const Reg IOutSensDCDC ("IOutSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "Amp");
|
||||
const Reg FreqSensCore ("FreqSensCore", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "Hz");
|
||||
const Reg DutyCycleSensDCDC ("DutyCycleSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "%");
|
||||
const Reg SpeedSensFan1 ("SpeedSensFan1", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "rpm");
|
||||
const Reg SpeedSensFan2 ("SpeedSensFan2", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "rpm");
|
||||
const Reg ErrorFlags ("ErrorFlags", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::STR, "byte");
|
||||
const Reg BoardReady ("BoardReady", RW::ReadOnly, TYPE::DIG, {{"True", "No Error"}, {"False", "Error"}});
|
||||
|
||||
///============= read write
|
||||
|
@ -226,20 +226,20 @@ namespace DIGIPARA{
|
|||
{"LVDS", "LVDS"},
|
||||
{"GPIO", "GPIO"},
|
||||
{"P0", "Back Plane"}});
|
||||
const Reg BoardVetoWidth ("BoardVetoWidth", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"34359738360", ""}, {"1", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg BoardVetoWidth ("BoardVetoWidth", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"34359738360", ""}, {"1", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg BoardVetoPolarity ("BoardVetoPolarity", RW::ReadWrite, TYPE::DIG, {{"ActiveHigh", "High"}, {"ActiveLow", "Low"}});
|
||||
const Reg RunDelay ("RunDelay", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"524280", ""}, {"1", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg RunDelay ("RunDelay", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"524280", ""}, {"1", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnableAutoDisarmACQ ("EnAutoDisarmAcq", RW::ReadWrite, TYPE::DIG, {{"True", "Enabled"}, {"False", "Disabled"}});
|
||||
const Reg EnableDataReduction ("EnDataReduction", RW::ReadWrite, TYPE::DIG, {{"False", "Disabled"}, {"True", "Enabled"}});
|
||||
const Reg EnableStatisticEvents ("EnStatEvents", RW::ReadWrite, TYPE::DIG, {{"False", "Disabled"}, {"True", "Enabled"}});
|
||||
const Reg VolatileClockOutDelay ("VolatileClockOutDelay", RW::ReadWrite, TYPE::DIG, {{"-18888.888", ""}, {"18888.888", ""}, {"74.074", ""}}, ANSTYPE::NUM, "ps");
|
||||
const Reg PermanentClockOutDelay ("PermanentClockOutDelay", RW::ReadWrite, TYPE::DIG, {{"-18888.888", ""}, {"18888.888", ""}, {"74.074", ""}}, ANSTYPE::NUM, "ps");
|
||||
const Reg TestPulsePeriod ("TestPulsePeriod", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"34359738360", ""}, {"8", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg TestPulseWidth ("TestPulseWidth", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"34359738360", ""}, {"8", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg TestPulseLowLevel ("TestPulseLowLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"65535", ""}, {"1", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg TestPulseHighLevel ("TestPulseHighLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"65535", ""}, {"1", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg ErrorFlagMask ("ErrorFlagMask", RW::ReadWrite, TYPE::DIG);
|
||||
const Reg ErrorFlagDataMask ("ErrorFlagDataMask", RW::ReadWrite, TYPE::DIG);
|
||||
const Reg VolatileClockOutDelay ("VolatileClockOutDelay", RW::ReadWrite, TYPE::DIG, {{"-18888.888", ""}, {"18888.888", ""}, {"74.074", ""}}, ANSTYPE::FLOAT, "ps");
|
||||
const Reg PermanentClockOutDelay ("PermanentClockOutDelay", RW::ReadWrite, TYPE::DIG, {{"-18888.888", ""}, {"18888.888", ""}, {"74.074", ""}}, ANSTYPE::FLOAT, "ps");
|
||||
const Reg TestPulsePeriod ("TestPulsePeriod", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"34359738360", ""}, {"8", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg TestPulseWidth ("TestPulseWidth", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"34359738360", ""}, {"8", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg TestPulseLowLevel ("TestPulseLowLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"65535", ""}, {"1", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg TestPulseHighLevel ("TestPulseHighLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""},{"65535", ""}, {"1", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg ErrorFlagMask ("ErrorFlagMask", RW::ReadWrite, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg ErrorFlagDataMask ("ErrorFlagDataMask", RW::ReadWrite, TYPE::DIG, {}, ANSTYPE::STR);
|
||||
const Reg DACoutMode ("DACoutMode", RW::ReadWrite, TYPE::DIG, {{"Static", "DAC fixed level"},
|
||||
{"ChInput", "From Channel"},
|
||||
{"ChSum", "Sum of all Channels"},
|
||||
|
@ -247,8 +247,8 @@ namespace DIGIPARA{
|
|||
{"Ramp", "14-bit counter"},
|
||||
{"Sin5MHz", "5 MHz Sin wave"},
|
||||
{"Square", "Test Pulse"}});
|
||||
const Reg DACoutStaticLevel ("DACoutStaticLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"16383", ""}, {"1",""}}, ANSTYPE::NUM, "units");
|
||||
const Reg DACoutChSelect ("DACoutChSelect", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"64", ""}, {"1",""}}, ANSTYPE::NUM);
|
||||
const Reg DACoutStaticLevel ("DACoutStaticLevel", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"16383", ""}, {"1",""}}, ANSTYPE::INTEGER, "units");
|
||||
const Reg DACoutChSelect ("DACoutChSelect", RW::ReadWrite, TYPE::DIG, {{"0", ""}, {"64", ""}, {"1",""}}, ANSTYPE::INTEGER);
|
||||
const Reg EnableOffsetCalibration ("EnOffsetCalibration", RW::ReadWrite, TYPE::DIG, {{"True", "Applied Cali."}, {"False", "No Cali."}});
|
||||
|
||||
/// ========== command
|
||||
|
@ -348,27 +348,27 @@ namespace DIGIPARA{
|
|||
}
|
||||
|
||||
namespace VGA{
|
||||
const Reg VGAGain ("VGAGain", RW::ReadWrite, TYPE::VGA, {{"0", ""},{"40", ""}, {"0.5",""}}, ANSTYPE::NUM, "dB"); // VX2745 only
|
||||
const Reg VGAGain ("VGAGain", RW::ReadWrite, TYPE::VGA, {{"0", ""},{"40", ""}, {"0.5",""}}, ANSTYPE::INTEGER, "dB"); // VX2745 only
|
||||
}
|
||||
|
||||
namespace CH{
|
||||
|
||||
/// ========= red only
|
||||
const Reg SelfTrgRate ("SelfTrgRate", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::NUM, "Hz");
|
||||
const Reg ChannelStatus ("ChStatus", RW::ReadOnly);
|
||||
const Reg GainFactor ("GainFactor", RW::ReadOnly);
|
||||
const Reg ADCToVolts ("ADCToVolts", RW::ReadOnly);
|
||||
const Reg Energy_Nbit ("Energy_Nbit", RW::ReadOnly);
|
||||
const Reg ChannelRealtime ("ChRealtimeMonitor", RW::ReadOnly); // when called, update DeadTime, TriggerCount, SaveCount, and WaveCount
|
||||
const Reg ChannelDeadtime ("ChDeadtimeMonitor", RW::ReadOnly);
|
||||
const Reg ChannelTriggerCount ("ChTriggerCnt", RW::ReadOnly);
|
||||
const Reg ChannelSavedCount ("ChSavedEventCnt", RW::ReadOnly);
|
||||
const Reg ChannelWaveCount ("ChWaveCnt", RW::ReadOnly);
|
||||
const Reg SelfTrgRate ("SelfTrgRate", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::INTEGER, "Hz");
|
||||
const Reg ChannelStatus ("ChStatus", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
const Reg GainFactor ("GainFactor", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::FLOAT);
|
||||
const Reg ADCToVolts ("ADCToVolts", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::FLOAT);
|
||||
const Reg Energy_Nbit ("Energy_Nbit", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
const Reg ChannelRealtime ("ChRealtimeMonitor", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR); // when called, update DeadTime, TriggerCount, SaveCount, and WaveCount
|
||||
const Reg ChannelDeadtime ("ChDeadtimeMonitor", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
const Reg ChannelTriggerCount ("ChTriggerCnt", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
const Reg ChannelSavedCount ("ChSavedEventCnt", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
const Reg ChannelWaveCount ("ChWaveCnt", RW::ReadOnly, TYPE::CH, {}, ANSTYPE::STR);
|
||||
|
||||
/// ======= read write
|
||||
const Reg ChannelEnable ("ChEnable", RW::ReadWrite, TYPE::CH, {{"True", "Enabled"}, {"False", "Disabled"}});
|
||||
const Reg DC_Offset ("DCOffset", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"100", ""}, {"1",""}}, ANSTYPE::NUM, "%");
|
||||
const Reg TriggerThreshold ("TriggerThr", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8191", ""}, {"1",""}}, ANSTYPE::NUM);
|
||||
const Reg DC_Offset ("DCOffset", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"100", ""}, {"1",""}}, ANSTYPE::INTEGER, "%");
|
||||
const Reg TriggerThreshold ("TriggerThr", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8191", ""}, {"1",""}}, ANSTYPE::INTEGER);
|
||||
const Reg Polarity ("PulsePolarity", RW::ReadWrite, TYPE::CH, {{"Positive", "Pos. +"},{"Negative", "Neg. -"}});
|
||||
|
||||
const Reg WaveDataSource ("WaveDataSource", RW::ReadWrite, TYPE::CH, {{"ADC_DATA", "Input ADC"},
|
||||
|
@ -377,19 +377,19 @@ namespace DIGIPARA{
|
|||
{"ADC_TEST_SIN", "ADC produce SIN signal"},
|
||||
{"Ramp", "Ramp generator"},
|
||||
{"SquareWave", "Test Pusle (Square Wave)"} });
|
||||
const Reg RecordLength ("ChRecordLengthT", RW::ReadWrite, TYPE::CH, {{"32", ""}, {"64800", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg PreTrigger ("ChPreTriggerT", RW::ReadWrite, TYPE::CH, {{"32", ""}, {"32000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg RecordLength ("ChRecordLengthT", RW::ReadWrite, TYPE::CH, {{"32", ""}, {"64800", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg PreTrigger ("ChPreTriggerT", RW::ReadWrite, TYPE::CH, {{"32", ""}, {"32000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg WaveSaving ("WaveSaving", RW::ReadWrite, TYPE::CH, {{"Always", "Always"}, {"OnRequest", "On Request"}});
|
||||
const Reg WaveResolution ("WaveResolution", RW::ReadWrite, TYPE::CH, {{"RES8", " 8 ns"},
|
||||
{"RES16","16 ns"},
|
||||
{"RES32","32 ns"},
|
||||
{"RES64","64 ns"}});
|
||||
const Reg TimeFilterRiseTime ("TimeFilterRiseTimeT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"2000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg TimeFilterRetriggerGuard ("TimeFilterRetriggerGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg EnergyFilterRiseTime ("EnergyFilterRiseTimeT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"13000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg EnergyFilterFlatTop ("EnergyFilterFlatTopT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"3000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg EnergyFilterPoleZero ("EnergyFilterPoleZeroT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"524000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg EnergyFilterPeakingPosition ("EnergyFilterPeakingPosition", RW::ReadWrite, TYPE::CH, {{"0", ""},{"100", ""}, {"1",""}}, ANSTYPE::NUM, "%");
|
||||
const Reg TimeFilterRiseTime ("TimeFilterRiseTimeT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"2000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg TimeFilterRetriggerGuard ("TimeFilterRetriggerGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterRiseTime ("EnergyFilterRiseTimeT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"13000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterFlatTop ("EnergyFilterFlatTopT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"3000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterPoleZero ("EnergyFilterPoleZeroT", RW::ReadWrite, TYPE::CH, {{"32", ""},{"524000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterPeakingPosition ("EnergyFilterPeakingPosition", RW::ReadWrite, TYPE::CH, {{"0", ""},{"100", ""}, {"1",""}}, ANSTYPE::INTEGER, "%");
|
||||
const Reg EnergyFilterPeakingAvg ("EnergyFilterPeakingAvg", RW::ReadWrite, TYPE::CH, {{"OneShot", "1 sample"},
|
||||
{"LowAVG", "4 samples"},
|
||||
{"MediumAVG", "16 samples"},
|
||||
|
@ -401,9 +401,9 @@ namespace DIGIPARA{
|
|||
{"Medium", "1024 samples"},
|
||||
{"MediumHigh","4096 samples"},
|
||||
{"High", "16384 samples"}});
|
||||
const Reg EnergyFilterBaselineGuard ("EnergyFilterBaselineGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8000", ""}, {"8",""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg EnergyFilterFineGain ("EnergyFilterFineGain", RW::ReadWrite, TYPE::CH, {{"0", ""},{"10", ""}, {"0.001",""}}, ANSTYPE::NUM);
|
||||
const Reg EnergyFilterPileUpGuard ("EnergyFilterPileUpGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"64000", ""}, {"8",""}}, ANSTYPE::NUM);
|
||||
const Reg EnergyFilterBaselineGuard ("EnergyFilterBaselineGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterFineGain ("EnergyFilterFineGain", RW::ReadWrite, TYPE::CH, {{"0", ""},{"10", ""}, {"0.001",""}}, ANSTYPE::FLOAT);
|
||||
const Reg EnergyFilterPileUpGuard ("EnergyFilterPileUpGuardT", RW::ReadWrite, TYPE::CH, {{"0", ""},{"64000", ""}, {"8",""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg EnergyFilterLowFreqFilter ("EnergyFilterLFLimitation", RW::ReadWrite, TYPE::CH, {{"Off", "Disabled"}, {"On", "Enabled"}});
|
||||
const Reg WaveAnalogProbe0 ("WaveAnalogProbe0", RW::ReadWrite, TYPE::CH, {{"ADCInput", "ADC Input"},
|
||||
{"TimeFilter", "Time Filter"},
|
||||
|
@ -511,23 +511,23 @@ namespace DIGIPARA{
|
|||
{"GlobalTriggerSource", "Global Trigger"},
|
||||
{"ITLA", "ITLA"},
|
||||
{"ITLB", "ITLB"}});
|
||||
const Reg CoincidenceLength ("CoincidenceLengthT", RW::ReadWrite, TYPE::CH, {{"8", ""},{"524280", ""}, {"8", ""}}, ANSTYPE::NUM, "ns");
|
||||
const Reg CoincidenceLengthSample ("CoincidenceLengthS", RW::ReadWrite);
|
||||
const Reg CoincidenceLength ("CoincidenceLengthT", RW::ReadWrite, TYPE::CH, {{"8", ""},{"524280", ""}, {"8", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
const Reg CoincidenceLengthSample ("CoincidenceLengthS", RW::ReadWrite, TYPE::CH, {{"1", ""},{"65535", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
|
||||
const Reg ADCVetoWidth ("ADCVetoWidth", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"524280", ""}, {"1", ""}}, ANSTYPE::NONE, "ns");
|
||||
const Reg ADCVetoWidth ("ADCVetoWidth", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"524280", ""}, {"1", ""}}, ANSTYPE::INTEGER, "ns");
|
||||
|
||||
const Reg EnergySkimLowDiscriminator ("EnergySkimLowDiscriminator", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"65534", ""}, {"1", ""}}, ANSTYPE::NUM);
|
||||
const Reg EnergySkimHighDiscriminator ("EnergySkimHighDiscriminator", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"65534", ""}, {"1", ""}}, ANSTYPE::NUM);
|
||||
const Reg EnergySkimLowDiscriminator ("EnergySkimLowDiscriminator", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"65534", ""}, {"1", ""}}, ANSTYPE::INTEGER);
|
||||
const Reg EnergySkimHighDiscriminator ("EnergySkimHighDiscriminator", RW::ReadWrite, TYPE::CH, {{"0", ""}, {"65534", ""}, {"1", ""}}, ANSTYPE::INTEGER);
|
||||
|
||||
const Reg RecordLengthSample ("ChRecordLengthS", RW::ReadWrite);
|
||||
const Reg PreTriggerSample ("ChPreTriggerS", RW::ReadWrite);
|
||||
const Reg TimeFilterRiseTimeSample ("TimeFilterRiseTimeS", RW::ReadWrite);
|
||||
const Reg TimeFilterRetriggerGuardSample ("TimeFilterRetriggerGuardS", RW::ReadWrite);
|
||||
const Reg EnergyFilterRiseTimeSample ("EnergyFilterRiseTimeS", RW::ReadWrite);
|
||||
const Reg EnergyFilterFlatTopSample ("EnergyFilterFlatTopS", RW::ReadWrite);
|
||||
const Reg EnergyFilterPoleZeroSample ("EnergyFilterPoleZeroS", RW::ReadWrite);
|
||||
const Reg EnergyFilterBaselineGuardSample ("EnergyFilterBaselineGuardS", RW::ReadWrite);
|
||||
const Reg EnergyFilterPileUpGuardSample ("EnergyFilterPileUpGuardS", RW::ReadWrite);
|
||||
const Reg RecordLengthSample ("ChRecordLengthS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"8100", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg PreTriggerSample ("ChPreTriggerS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"4000", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg TimeFilterRiseTimeSample ("TimeFilterRiseTimeS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"250", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg TimeFilterRetriggerGuardSample ("TimeFilterRetriggerGuardS", RW::ReadWrite, TYPE::CH, {{"0", ""},{"1000", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg EnergyFilterRiseTimeSample ("EnergyFilterRiseTimeS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"1625", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg EnergyFilterFlatTopSample ("EnergyFilterFlatTopS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"375", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg EnergyFilterPoleZeroSample ("EnergyFilterPoleZeroS", RW::ReadWrite, TYPE::CH, {{"4", ""},{"65500", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg EnergyFilterBaselineGuardSample ("EnergyFilterBaselineGuardS", RW::ReadWrite, TYPE::CH, {{"0", ""},{"1000", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
const Reg EnergyFilterPileUpGuardSample ("EnergyFilterPileUpGuardS", RW::ReadWrite, TYPE::CH, {{"0", ""},{"8000", ""}, {"1", ""}}, ANSTYPE::INTEGER, "sample");
|
||||
|
||||
const std::vector<Reg> AllSettings = {
|
||||
SelfTrgRate ,
|
||||
|
|
|
@ -525,13 +525,30 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
|||
{//@.......... All Settings tab
|
||||
QWidget * tab_All = new QWidget(tab);
|
||||
//tab_All->setStyleSheet("background-color: #EEEEEE");
|
||||
chTabWidget->addTab(tab_All, "All Settings");
|
||||
chTabWidget->addTab(tab_All, "All/Single Ch.");
|
||||
|
||||
QGridLayout * allLayout = new QGridLayout(tab_All);
|
||||
allLayout->setAlignment(Qt::AlignTop);
|
||||
|
||||
unsigned short ch = digi[iDigi]->GetNChannels();
|
||||
|
||||
{//*--------- Group 0
|
||||
box0 = new QGroupBox("Channel Selection", tab);
|
||||
allLayout->addWidget(box0);
|
||||
QGridLayout * layout0 = new QGridLayout(box0);
|
||||
layout0->setAlignment(Qt::AlignLeft);
|
||||
|
||||
QLabel * lbCh = new QLabel("Channel :", tab);
|
||||
lbCh->setAlignment(Qt::AlignCenter | Qt::AlignRight);
|
||||
layout0->addWidget(lbCh, 0, 0);
|
||||
|
||||
cbChPick[iDigi] = new RComboBox(tab);
|
||||
cbChPick[iDigi]->addItem("All", -1);
|
||||
layout0->addWidget(cbChPick[iDigi], 0, 1);
|
||||
//TODO================
|
||||
cbChPick[iDigi]->setEnabled(false);
|
||||
}
|
||||
|
||||
int rowID = 0;
|
||||
{//*--------- Group 1
|
||||
box1 = new QGroupBox("Input Settings", tab);
|
||||
|
@ -918,8 +935,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
|||
|
||||
} //=== end of tab
|
||||
|
||||
//^==============================================
|
||||
{
|
||||
{//^============================================== Inquiry / Copy Tab
|
||||
ICTab = new QTabWidget(this);
|
||||
tabWidget->addTab(ICTab, "Inquiry / Copy");
|
||||
|
||||
|
@ -935,8 +951,11 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
|||
//inquiryLayout->setSpacing(0);
|
||||
|
||||
int rowID = 0;
|
||||
QLabel * info = new QLabel("This will read from the digitizer, save the setting to memory.", icBox1);
|
||||
inquiryLayout->addWidget(info, rowID, 0, 1, 6);
|
||||
QLabel * info1 = new QLabel("This will read from the digitizer, save the setting to memory.", icBox1);
|
||||
inquiryLayout->addWidget(info1, rowID, 0, 1, 6);
|
||||
rowID ++;
|
||||
QLabel * info2 = new QLabel("The settings from Digitizer Tab will not reflect immedinately in here.", icBox1);
|
||||
inquiryLayout->addWidget(info2, rowID, 0, 1, 6);
|
||||
|
||||
///=========== header
|
||||
rowID ++;
|
||||
|
@ -944,116 +963,255 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
|||
hd0->setAlignment(Qt::AlignCenter);
|
||||
inquiryLayout->addWidget(hd0, rowID, 3);
|
||||
|
||||
QLabel * hd1 = new QLabel("<----------- Set Value ---------->", icBox1);
|
||||
QLabel * hd1 = new QLabel("Unit", icBox1);
|
||||
hd1->setAlignment(Qt::AlignCenter);
|
||||
inquiryLayout->addWidget(hd1, rowID, 5, 1, 2);
|
||||
inquiryLayout->addWidget(hd1, rowID, 4);
|
||||
|
||||
///----------- board settings
|
||||
QLabel * hd2 = new QLabel("<---------------------- Set Value ---------------------->", icBox1);
|
||||
hd2->setAlignment(Qt::AlignCenter);
|
||||
inquiryLayout->addWidget(hd2, rowID, 6, 1, 3);
|
||||
|
||||
///========================== board settings
|
||||
rowID ++;
|
||||
RComboBox * cbIQDigi = new RComboBox(ICTab);
|
||||
cbIQDigi = new RComboBox(ICTab);
|
||||
for( int i = 0; i < nDigi; i++) cbIQDigi->addItem("Digi-" + QString::number(digi[i]->GetSerialNumber()), i);
|
||||
inquiryLayout->addWidget(cbIQDigi, rowID, 0);
|
||||
connect( cbIQDigi, &RComboBox::currentIndexChanged, this, [=](int index){
|
||||
enableSignalSlot = false;
|
||||
ID = index;
|
||||
cbIQCh->clear();
|
||||
for( int i = 0; i < digi[index]->GetNChannels() ; i++ ) cbIQCh->addItem( "Ch-" + QString::number(i), i);
|
||||
enableSignalSlot = true;
|
||||
});
|
||||
|
||||
RComboBox * cbBdSettings = new RComboBox(ICTab);
|
||||
cbBdSettings = new RComboBox(ICTab);
|
||||
for( int i = 0; i < (int) DIGIPARA::DIG::AllSettings.size(); i++ ){
|
||||
cbBdSettings->addItem( QString::fromStdString( DIGIPARA::DIG::AllSettings[i].GetPara() ), i);
|
||||
}
|
||||
inquiryLayout->addWidget(cbBdSettings, rowID, 1);
|
||||
connect(cbBdSettings, &RComboBox::currentIndexChanged, this, [=](int index){
|
||||
QString type;
|
||||
switch (DIGIPARA::DIG::AllSettings[index].ReadWrite()) {
|
||||
case RW::ReadOnly : type ="Read Only"; break;
|
||||
case RW::WriteOnly : type ="Write Only"; break;
|
||||
case RW::ReadWrite : type ="Read/Write"; break;
|
||||
}
|
||||
leBdSettingsType->setText(type);
|
||||
|
||||
if( DIGIPARA::DIG::AllSettings[index].ReadWrite() != RW::ReadOnly ){
|
||||
switch (DIGIPARA::DIG::AllSettings[index].GetAnswerType()){
|
||||
case ANSTYPE::STR : {
|
||||
cbBdAns->setEnabled(true);
|
||||
cbBdAns->clear();
|
||||
for( int i = 0; i < (int) DIGIPARA::DIG::AllSettings[index].GetAnswers().size(); i++){
|
||||
cbBdAns->addItem(QString::fromStdString(DIGIPARA::DIG::AllSettings[index].GetAnswers()[i].second),
|
||||
QString::fromStdString(DIGIPARA::DIG::AllSettings[index].GetAnswers()[i].first));
|
||||
}
|
||||
sbBdSettingsWrite->setEnabled(false);
|
||||
}; break;
|
||||
case ANSTYPE::NUM : {
|
||||
cbBdAns->clear();
|
||||
cbBdAns->setEnabled(false);
|
||||
sbBdSettingsWrite->setEnabled(true);
|
||||
sbBdSettingsWrite->setMinimum(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[0].first.c_str()));
|
||||
sbBdSettingsWrite->setMaximum(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[1].first.c_str()));
|
||||
sbBdSettingsWrite->setSingleStep(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[2].first.c_str()));
|
||||
sbBdSettingsWrite->setValue(0);
|
||||
}; break;
|
||||
case ANSTYPE::NONE: {
|
||||
cbBdAns->clear();
|
||||
cbBdAns->setEnabled(false);
|
||||
sbBdSettingsWrite->setEnabled(false);
|
||||
sbBdSettingsWrite->cleanText();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
cbBdSettings->setCurrentIndex(0);
|
||||
connect(cbBdSettings, &RComboBox::currentIndexChanged, this, &DigiSettingsPanel::ReadBoardSetting);
|
||||
|
||||
leBdSettingsType = new QLineEdit("Read Only",ICTab);
|
||||
leBdSettingsType->setAlignment(Qt::AlignHCenter);
|
||||
leBdSettingsType->setFixedWidth(150);
|
||||
leBdSettingsType->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leBdSettingsType, rowID, 2);
|
||||
|
||||
leBdSettingsRead = new QLineEdit(ICTab);
|
||||
leBdSettingsRead->setAlignment(Qt::AlignRight);
|
||||
leBdSettingsRead->setFixedWidth(200);
|
||||
leBdSettingsRead->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leBdSettingsRead, rowID, 3);
|
||||
|
||||
QPushButton * pbRead = new QPushButton("Read", ICTab);
|
||||
inquiryLayout->addWidget(pbRead, rowID, 4, 2, 1);
|
||||
leBdSettingsUnit = new QLineEdit("", ICTab);
|
||||
leBdSettingsUnit->setAlignment(Qt::AlignHCenter);
|
||||
leBdSettingsUnit->setFixedWidth(50);
|
||||
leBdSettingsUnit->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leBdSettingsUnit, rowID, 4);
|
||||
|
||||
QPushButton * bnRead = new QPushButton("Read", ICTab);
|
||||
inquiryLayout->addWidget(bnRead, rowID, 5, 2, 1);
|
||||
connect(bnRead, &QPushButton::clicked, this, [=](){ ReadBoardSetting(cbBdSettings->currentIndex()); ReadChannelSetting(cbChSettings->currentIndex()); });
|
||||
|
||||
cbBdAns = new RComboBox(ICTab);
|
||||
cbBdAns->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(cbBdAns, rowID, 5);
|
||||
inquiryLayout->addWidget(cbBdAns, rowID, 6);
|
||||
connect(cbBdAns, &RComboBox::currentIndexChanged, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
std::string value = cbBdAns->currentData().toString().toStdString();
|
||||
leBdSettingsWrite->setText(QString::fromStdString(value));
|
||||
leBdSettingsWrite->setStyleSheet("");
|
||||
|
||||
Reg para = DIGIPARA::DIG::AllSettings[cbBdSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += " = " + cbBdAns->currentData().toString();
|
||||
if( digi[ID]->WriteValue(para, value) ){
|
||||
leBdSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
cbBdAns->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leBdSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
cbBdAns->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
sbBdSettingsWrite = new RSpinBox(ICTab);
|
||||
sbBdSettingsWrite->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(sbBdSettingsWrite, rowID, 6);
|
||||
inquiryLayout->addWidget(sbBdSettingsWrite, rowID, 7);
|
||||
connect(sbBdSettingsWrite, &RSpinBox::valueChanged, this, [=](){ sbBdSettingsWrite->setStyleSheet("color: green;");});
|
||||
connect(sbBdSettingsWrite, &RSpinBox::returnPressed, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
if( sbBdSettingsWrite->decimals() == 0 && sbBdSettingsWrite->singleStep() != 1) {
|
||||
double step = sbBdSettingsWrite->singleStep();
|
||||
double value = sbBdSettingsWrite->value();
|
||||
sbBdSettingsWrite->setValue( (std::round(value/step) * step) );
|
||||
}
|
||||
|
||||
QPushButton * pbWrite = new QPushButton("Write", ICTab);
|
||||
inquiryLayout->addWidget(pbWrite, rowID, 7, 2, 1);
|
||||
Reg para = DIGIPARA::DIG::AllSettings[cbBdSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += " = " + QString::number(sbBdSettingsWrite->value());
|
||||
if( digi[ID]->WriteValue(para, std::to_string(sbBdSettingsWrite->value()))){
|
||||
leBdSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
sbBdSettingsWrite->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leBdSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
sbBdSettingsWrite->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
///----------- Channels settings
|
||||
leBdSettingsWrite = new QLineEdit(ICTab);
|
||||
leBdSettingsWrite->setAlignment(Qt::AlignRight);
|
||||
leBdSettingsWrite->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(leBdSettingsWrite, rowID, 8);
|
||||
connect(leBdSettingsWrite, &QLineEdit::textChanged, this, [=](){leBdSettingsWrite->setStyleSheet("color: green;");});
|
||||
connect(leBdSettingsWrite, &QLineEdit::returnPressed, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
std::string value = leBdSettingsWrite->text().toStdString();
|
||||
Reg para = DIGIPARA::DIG::AllSettings[cbBdSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += " = " + QString::number(sbBdSettingsWrite->value());
|
||||
if( digi[ID]->WriteValue(para, value)){
|
||||
leBdSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
sbBdSettingsWrite->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leBdSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
sbBdSettingsWrite->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
///========================== Channels settings
|
||||
rowID ++;
|
||||
RComboBox * cbIQCh = new RComboBox(ICTab);
|
||||
cbIQCh = new RComboBox(ICTab);
|
||||
cbIQCh->clear();
|
||||
for( int i = 0; i < digi[0]->GetNChannels() ; i++) cbIQCh->addItem("Ch-" + QString::number(i), i);
|
||||
inquiryLayout->addWidget(cbIQCh, rowID, 0);
|
||||
connect(cbIQCh, &RComboBox::currentIndexChanged, this, [=](){ ReadChannelSetting(cbChSettings->currentIndex()); });
|
||||
|
||||
RComboBox * cbChSettings = new RComboBox(ICTab);
|
||||
cbChSettings = new RComboBox(ICTab);
|
||||
for( int i = 0; i < (int) DIGIPARA::CH::AllSettings.size(); i++ ){
|
||||
cbChSettings->addItem( QString::fromStdString( DIGIPARA::CH::AllSettings[i].GetPara() ), i);
|
||||
}
|
||||
inquiryLayout->addWidget(cbChSettings, rowID, 1);
|
||||
connect(cbChSettings, &RComboBox::currentIndexChanged, this, &DigiSettingsPanel::ReadChannelSetting);
|
||||
|
||||
QLineEdit * leChSettingsType = new QLineEdit("Read Only", ICTab);
|
||||
leChSettingsType = new QLineEdit("Read Only", ICTab);
|
||||
leChSettingsType->setAlignment(Qt::AlignHCenter);
|
||||
leChSettingsType->setFixedWidth(150);
|
||||
leChSettingsType->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leChSettingsType, rowID, 2);
|
||||
|
||||
QLineEdit * leChSettingsRead = new QLineEdit(ICTab);
|
||||
leChSettingsRead->setFixedWidth(100);
|
||||
leChSettingsRead = new QLineEdit(ICTab);
|
||||
leChSettingsRead->setAlignment(Qt::AlignRight);
|
||||
leChSettingsRead->setFixedWidth(200);
|
||||
leChSettingsRead->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leChSettingsRead, rowID, 3);
|
||||
|
||||
RComboBox * cbChAns = new RComboBox(ICTab);
|
||||
leChSettingsUnit = new QLineEdit(ICTab);
|
||||
leChSettingsUnit->setAlignment(Qt::AlignHCenter);
|
||||
leChSettingsUnit->setFixedWidth(50);
|
||||
leChSettingsUnit->setReadOnly(true);
|
||||
inquiryLayout->addWidget(leChSettingsUnit, rowID, 4);
|
||||
|
||||
cbChAns = new RComboBox(ICTab);
|
||||
cbChAns->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(cbChAns, rowID, 5);
|
||||
inquiryLayout->addWidget(cbChAns, rowID, 6);
|
||||
connect(cbChAns, &RComboBox::currentIndexChanged, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
std::string value = cbChAns->currentData().toString().toStdString();
|
||||
leChSettingsWrite->setText(QString::fromStdString(value));
|
||||
leChSettingsWrite->setStyleSheet("");
|
||||
|
||||
QLineEdit * leChSettingsWrite = new QLineEdit(ICTab);
|
||||
Reg para = DIGIPARA::CH::AllSettings[cbChSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
int ch_index = cbIQCh->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += ",CH:" + QString::number(ch_index);
|
||||
msg += " = " + cbChAns->currentData().toString();
|
||||
if( digi[ID]->WriteValue(para, value, ch_index) ){
|
||||
leChSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
cbChAns->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leChSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
cbChAns->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
sbChSettingsWrite = new RSpinBox(ICTab);
|
||||
sbChSettingsWrite->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(sbChSettingsWrite, rowID, 7);
|
||||
connect(sbChSettingsWrite, &RSpinBox::valueChanged, this, [=](){ sbChSettingsWrite->setStyleSheet("color: green;");});
|
||||
connect(sbChSettingsWrite, &RSpinBox::returnPressed, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
if( sbChSettingsWrite->decimals() == 0 && sbChSettingsWrite->singleStep() != 1) {
|
||||
double step = sbChSettingsWrite->singleStep();
|
||||
double value = sbChSettingsWrite->value();
|
||||
sbChSettingsWrite->setValue( (std::round(value/step) * step) );
|
||||
}
|
||||
|
||||
Reg para = DIGIPARA::CH::AllSettings[cbBdSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
int ch_index = cbIQCh->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += ",CH:" + QString::number(ch_index);
|
||||
msg += " = " + QString::number(sbChSettingsWrite->value());
|
||||
if( digi[ID]->WriteValue(para, std::to_string(sbChSettingsWrite->value()), ch_index)){
|
||||
leChSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
sbChSettingsWrite->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leChSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
sbChSettingsWrite->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
leChSettingsWrite = new QLineEdit(ICTab);
|
||||
leChSettingsWrite->setFixedWidth(200);
|
||||
inquiryLayout->addWidget(leChSettingsWrite, rowID, 6);
|
||||
inquiryLayout->addWidget(leChSettingsWrite, rowID, 8);
|
||||
connect(leChSettingsWrite, &QLineEdit::textChanged, this, [=](){leChSettingsWrite->setStyleSheet("color: green;");});
|
||||
connect(leChSettingsWrite, &QLineEdit::returnPressed, this, [=](){
|
||||
if( !enableSignalSlot ) return;
|
||||
std::string value = leChSettingsWrite->text().toStdString();
|
||||
Reg para = DIGIPARA::CH::AllSettings[cbChSettings->currentIndex()];
|
||||
ID = cbIQDigi->currentIndex();
|
||||
int ch_index = cbIQCh->currentIndex();
|
||||
QString msg;
|
||||
msg = QString::fromStdString(para.GetPara()) + "|DIG:"+ QString::number(digi[ID]->GetSerialNumber());
|
||||
msg += " = " + QString::number(sbChSettingsWrite->value());
|
||||
if( digi[ID]->WriteValue(para, value, ch_index)){
|
||||
leChSettingsRead->setText( QString::fromStdString(digi[ID]->GetSettingValue(para)));
|
||||
SendLogMsg(msg + "|OK.");
|
||||
sbChSettingsWrite->setStyleSheet("");
|
||||
ShowSettingsToPanel();
|
||||
}else{
|
||||
leChSettingsRead->setText("fail write value");
|
||||
SendLogMsg(msg + "|Fail.");
|
||||
sbChSettingsWrite->setStyleSheet("color:red;");
|
||||
}
|
||||
});
|
||||
|
||||
for( int i = 0 ; i < inquiryLayout->count(); i++) inquiryLayout->setColumnStretch(i, 2);
|
||||
for( int i = 0 ; i < inquiryLayout->count(); i++) inquiryLayout->setColumnStretch(i, 1);
|
||||
|
||||
}
|
||||
|
||||
|
@ -1099,6 +1257,9 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
|||
|
||||
EnableControl();
|
||||
|
||||
cbBdSettings->setCurrentText("ModelName");
|
||||
cbChSettings->setCurrentIndex(10);
|
||||
|
||||
show();
|
||||
|
||||
enableSignalSlot = true;
|
||||
|
@ -1288,7 +1449,6 @@ void DigiSettingsPanel::ShowSettingsToPanel(){
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
result = QString::fromStdString(digi[ID]->GetSettingValue(DIGIPARA::DIG::GlobalTriggerSource));
|
||||
resultList = result.remove(QChar(' ')).split("|");
|
||||
testPulseBox->setEnabled(false);
|
||||
|
@ -1652,3 +1812,133 @@ void DigiSettingsPanel::FillSpinBoxValueFromMemory(RSpinBox *&spb, const Reg par
|
|||
//printf("%s === %s, %d, %p\n", __func__, result.toStdString().c_str(), ID, spb);
|
||||
spb->setValue(result.toDouble());
|
||||
}
|
||||
|
||||
void DigiSettingsPanel::ReadBoardSetting(int cbIndex){
|
||||
enableSignalSlot = false;
|
||||
|
||||
QString type;
|
||||
switch (DIGIPARA::DIG::AllSettings[cbIndex].ReadWrite()) {
|
||||
case RW::ReadOnly : type ="Read Only"; break;
|
||||
case RW::WriteOnly : type ="Write Only"; break;
|
||||
case RW::ReadWrite : type ="Read/Write"; break;
|
||||
}
|
||||
leBdSettingsType->setText(type);
|
||||
leBdSettingsRead->setText(QString::fromStdString(digi[cbIQDigi->currentIndex()]->ReadValue(DIGIPARA::DIG::AllSettings[cbIndex])));
|
||||
leBdSettingsUnit->setText(QString::fromStdString(DIGIPARA::DIG::AllSettings[cbIndex].GetUnit()));
|
||||
|
||||
ANSTYPE haha = DIGIPARA::DIG::AllSettings[cbIndex].GetAnswerType();
|
||||
if( DIGIPARA::DIG::AllSettings[cbIndex].ReadWrite() != RW::ReadOnly && haha != ANSTYPE::NONE ){
|
||||
|
||||
if( haha == ANSTYPE::FLOAT || haha == ANSTYPE::INTEGER ){
|
||||
cbBdAns->clear();
|
||||
cbBdAns->setEnabled(false);
|
||||
leBdSettingsWrite->setEnabled(false);
|
||||
leBdSettingsWrite->clear();
|
||||
sbBdSettingsWrite->setEnabled(true);
|
||||
sbBdSettingsWrite->setMinimum(atof(DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers()[0].first.c_str()));
|
||||
sbBdSettingsWrite->setMaximum(atof(DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers()[1].first.c_str()));
|
||||
sbBdSettingsWrite->setSingleStep(atof(DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers()[2].first.c_str()));
|
||||
sbBdSettingsWrite->setValue(00);
|
||||
sbBdSettingsWrite->setDecimals(0);
|
||||
}
|
||||
if( haha == ANSTYPE::FLOAT) sbBdSettingsWrite->setDecimals(3);
|
||||
if( haha == ANSTYPE::LIST){
|
||||
cbBdAns->setEnabled(true);
|
||||
cbBdAns->clear();
|
||||
for( int i = 0; i < (int) DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers().size(); i++){
|
||||
cbBdAns->addItem(QString::fromStdString(DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers()[i].second),
|
||||
QString::fromStdString(DIGIPARA::DIG::AllSettings[cbIndex].GetAnswers()[i].first));
|
||||
}
|
||||
sbBdSettingsWrite->setEnabled(false);
|
||||
sbBdSettingsWrite->setValue(0);
|
||||
leBdSettingsWrite->setEnabled(false);
|
||||
leBdSettingsWrite->clear();
|
||||
}
|
||||
if( haha == ANSTYPE::STR){
|
||||
cbBdAns->clear();
|
||||
cbBdAns->setEnabled(false);
|
||||
leBdSettingsWrite->setEnabled(true);
|
||||
leBdSettingsWrite->clear();
|
||||
sbBdSettingsWrite->setEnabled(false);
|
||||
sbBdSettingsWrite->setValue(0);
|
||||
}
|
||||
}else{
|
||||
cbBdAns->clear();
|
||||
cbBdAns->setEnabled(false);
|
||||
sbBdSettingsWrite->setEnabled(false);
|
||||
sbBdSettingsWrite->cleanText();
|
||||
leBdSettingsWrite->setEnabled(false);
|
||||
leBdSettingsWrite->clear();
|
||||
}
|
||||
|
||||
if( DIGIPARA::DIG::AllSettings[cbIndex].GetPara() == DIGIPARA::DIG::StartSource.GetPara()
|
||||
|| DIGIPARA::DIG::AllSettings[cbIndex].GetPara() == DIGIPARA::DIG::GlobalTriggerSource.GetPara() ){
|
||||
|
||||
leBdSettingsWrite->setEnabled(true);
|
||||
leBdSettingsWrite->clear();
|
||||
}
|
||||
|
||||
enableSignalSlot = true;
|
||||
}
|
||||
|
||||
void DigiSettingsPanel::ReadChannelSetting(int cbIndex){
|
||||
enableSignalSlot = false;
|
||||
|
||||
QString type;
|
||||
switch (DIGIPARA::CH::AllSettings[cbIndex].ReadWrite()) {
|
||||
case RW::ReadOnly : type ="Read Only"; break;
|
||||
case RW::WriteOnly : type ="Write Only"; break;
|
||||
case RW::ReadWrite : type ="Read/Write"; break;
|
||||
}
|
||||
leChSettingsType->setText(type);
|
||||
leChSettingsRead->setText(QString::fromStdString(digi[cbIQDigi->currentIndex()]->ReadValue(DIGIPARA::CH::AllSettings[cbIndex], cbIQCh->currentData().toInt())));
|
||||
leChSettingsUnit->setText(QString::fromStdString(DIGIPARA::CH::AllSettings[cbIndex].GetUnit()));
|
||||
|
||||
ANSTYPE haha = DIGIPARA::CH::AllSettings[cbIndex].GetAnswerType();
|
||||
|
||||
if( DIGIPARA::CH::AllSettings[cbIndex].ReadWrite() != RW::ReadOnly && haha != ANSTYPE::NONE ){
|
||||
|
||||
if( haha == ANSTYPE::FLOAT || haha == ANSTYPE::INTEGER ){
|
||||
cbChAns->clear();
|
||||
cbChAns->setEnabled(false);
|
||||
leChSettingsWrite->setEnabled(false);
|
||||
leChSettingsWrite->clear();
|
||||
sbChSettingsWrite->setEnabled(true);
|
||||
sbChSettingsWrite->setMinimum(atof(DIGIPARA::CH::AllSettings[cbIndex].GetAnswers()[0].first.c_str()));
|
||||
sbChSettingsWrite->setMaximum(atof(DIGIPARA::CH::AllSettings[cbIndex].GetAnswers()[1].first.c_str()));
|
||||
sbChSettingsWrite->setSingleStep(atof(DIGIPARA::CH::AllSettings[cbIndex].GetAnswers()[2].first.c_str()));
|
||||
sbChSettingsWrite->setValue(00);
|
||||
sbChSettingsWrite->setDecimals(0);
|
||||
}
|
||||
if( haha == ANSTYPE::FLOAT) sbBdSettingsWrite->setDecimals(3);
|
||||
if( haha == ANSTYPE::LIST){
|
||||
cbChAns->setEnabled(true);
|
||||
cbChAns->clear();
|
||||
for( int i = 0; i < (int) DIGIPARA::CH::AllSettings[cbIndex].GetAnswers().size(); i++){
|
||||
cbChAns->addItem(QString::fromStdString(DIGIPARA::CH::AllSettings[cbIndex].GetAnswers()[i].second),
|
||||
QString::fromStdString(DIGIPARA::CH::AllSettings[cbIndex].GetAnswers()[i].first));
|
||||
}
|
||||
sbChSettingsWrite->setEnabled(false);
|
||||
sbChSettingsWrite->setValue(0);
|
||||
leChSettingsWrite->setEnabled(false);
|
||||
leChSettingsWrite->clear();
|
||||
}
|
||||
if( haha == ANSTYPE::STR){
|
||||
cbChAns->clear();
|
||||
cbChAns->setEnabled(false);
|
||||
leChSettingsWrite->setEnabled(true);
|
||||
leChSettingsWrite->clear();
|
||||
sbChSettingsWrite->setEnabled(false);
|
||||
sbChSettingsWrite->setValue(0);
|
||||
}
|
||||
}else{
|
||||
cbChAns->clear();
|
||||
cbChAns->setEnabled(false);
|
||||
sbChSettingsWrite->setEnabled(false);
|
||||
sbChSettingsWrite->cleanText();
|
||||
leChSettingsWrite->setEnabled(false);
|
||||
leChSettingsWrite->clear();
|
||||
}
|
||||
|
||||
enableSignalSlot = true;
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ private:
|
|||
QGroupBox * VGABox;
|
||||
QGroupBox * testPulseBox;
|
||||
|
||||
QGroupBox * box0;
|
||||
QGroupBox * box1;
|
||||
QGroupBox * box3;
|
||||
QGroupBox * box4;
|
||||
|
@ -73,13 +74,28 @@ private:
|
|||
QTabWidget * triggerMapTab;
|
||||
QTabWidget * ICTab; // inquiry and copy
|
||||
|
||||
RComboBox * cbIQDigi;
|
||||
RComboBox * cbBdSettings;
|
||||
|
||||
RComboBox * cbIQCh;
|
||||
RComboBox * cbChSettings;
|
||||
|
||||
bool enableSignalSlot;
|
||||
|
||||
//---------------- Inquiry and copy
|
||||
QLineEdit * leBdSettingsType;
|
||||
QLineEdit * leBdSettingsRead;
|
||||
QLineEdit * leBdSettingsUnit;
|
||||
RComboBox * cbBdAns;
|
||||
RSpinBox * sbBdSettingsWrite;
|
||||
QLineEdit * leBdSettingsWrite;
|
||||
|
||||
QLineEdit * leChSettingsType;
|
||||
QLineEdit * leChSettingsRead;
|
||||
QLineEdit * leChSettingsUnit;
|
||||
RComboBox * cbChAns;
|
||||
RSpinBox * sbChSettingsWrite;
|
||||
QLineEdit * leChSettingsWrite;
|
||||
|
||||
//------------ status
|
||||
QLineEdit * leInfo[MaxNumberOfChannel][12];
|
||||
|
@ -136,6 +152,7 @@ private:
|
|||
QLineEdit * chADCToVolts[MaxNumberOfDigitizer][MaxNumberOfChannel];
|
||||
|
||||
//--------------- Channel settings
|
||||
RComboBox * cbChPick[MaxNumberOfDigitizer];
|
||||
RComboBox * cbbOnOff[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||
|
||||
RSpinBox * spbRecordLength[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
|
||||
|
@ -209,6 +226,9 @@ private:
|
|||
void FillComboBoxValueFromMemory(RComboBox * &cbb, const Reg para, int ch_index = -1);
|
||||
void FillSpinBoxValueFromMemory(RSpinBox * &spb, const Reg para, int ch_index = -1 );
|
||||
|
||||
void ReadBoardSetting(int cbIndex);
|
||||
void ReadChannelSetting(int cbIndex);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -499,12 +499,9 @@ void MainWindow::OpenDigitizers(){
|
|||
}else{
|
||||
LogMsg("<font style=\"color: red;\">Unable to found setting file <b>" + settingFile + "</b>. </font>");
|
||||
digi[i]->SetSettingFileName("");
|
||||
LogMsg("Reset digitizer.");
|
||||
LogMsg("Reset digitizer And set default PHA settings.");
|
||||
digi[i]->Reset();
|
||||
|
||||
digi[i]->WriteValue(DIGIPARA::CH::RecordLength, "4000");
|
||||
digi[i]->WriteValue(DIGIPARA::CH::PreTrigger, "1000");
|
||||
//digi[i]->ProgramPHA(false);
|
||||
digi[i]->ProgramPHA(false);
|
||||
}
|
||||
|
||||
digi[i]->ReadAllSettings();
|
||||
|
@ -531,6 +528,9 @@ void MainWindow::OpenDigitizers(){
|
|||
bnDigiSettings->setEnabled(true);
|
||||
bnCloseDigitizers->setEnabled(true);
|
||||
|
||||
bnProgramSettings->setEnabled(false);
|
||||
bnNewExp->setEnabled(false);
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::CloseDigitizers(){
|
||||
|
@ -584,6 +584,9 @@ void MainWindow::CloseDigitizers(){
|
|||
chkSaveRun->setEnabled(false);
|
||||
cbAutoRun->setEnabled(false);
|
||||
|
||||
bnProgramSettings->setEnabled(true);
|
||||
bnNewExp->setEnabled(true);
|
||||
|
||||
}
|
||||
|
||||
//^###################################################################### Open Scope
|
||||
|
@ -1298,7 +1301,8 @@ void MainWindow::SetupNewExpPanel(){
|
|||
layout->addWidget(button1, rowID, 3);
|
||||
button1->setEnabled(false);
|
||||
|
||||
connect(newExp, &QLineEdit::returnPressed, this, [=](){ if( newExp->text() != "") button1->setEnabled(true);});
|
||||
connect(newExp, &QLineEdit::textChanged, this, [=](){ newExp->setStyleSheet("color : green;");});
|
||||
connect(newExp, &QLineEdit::returnPressed, this, [=](){ if( newExp->text() != "") { newExp->setStyleSheet(""); button1->setEnabled(true);}});
|
||||
connect(button1, &QPushButton::clicked, this, [=](){ this->CreateNewExperiment(newExp->text());});
|
||||
connect(button1, &QPushButton::clicked, &dialog, &QDialog::accept);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user