added PrintACQStatus
This commit is contained in:
parent
223d751ba3
commit
1f943d8ded
|
@ -292,20 +292,15 @@ void Digitizer::WriteRegister(uint32_t address, uint32_t value, int ch ){
|
|||
ErrorMsg("WriteRegister");
|
||||
}
|
||||
|
||||
uint32_t Digitizer::ReadRegister(uint32_t address, unsigned int ch, string str ){
|
||||
uint32_t Digitizer::ReadRegister(uint32_t address, int ch, string str ){
|
||||
uint32_t * Data = new uint32_t[NChannel];
|
||||
|
||||
printf("=dsadads====== 0x%x \n", address);
|
||||
if( address < 0x8000) {
|
||||
if( ch < 0 ) {
|
||||
printf("a %d-- %x \n", ch, address + 0x7000);
|
||||
ret = CAEN_DGTZ_ReadRegister(handle, address + 0x7000, Data);
|
||||
}else{
|
||||
printf("b %d -- %x \n", ch, address + (ch << 8));
|
||||
ret = CAEN_DGTZ_ReadRegister(handle, address + (ch << 8), Data);
|
||||
}
|
||||
}else{
|
||||
printf("--- %x \n", address);
|
||||
ret = CAEN_DGTZ_ReadRegister(handle, address, Data);
|
||||
}
|
||||
ErrorMsg("ReadRegister");
|
||||
|
@ -457,6 +452,24 @@ int Digitizer::GetChTemperature(int ch){
|
|||
return temp[0];
|
||||
}
|
||||
|
||||
|
||||
void Digitizer::PrintACQStatue(){
|
||||
|
||||
unsigned int status = ReadRegister(Register::DPP::AcquisitionStatus);
|
||||
|
||||
printf(" Acq state (0x%1x): %s \n", (status >> 2) & 0x1, ((status >> 2) & 0x1) == 0? "stopped" : "running");
|
||||
printf(" Event Ready (0x%1x): %s \n", (status >> 3) & 0x1, ((status >> 3) & 0x1) == 0? "no event in buffer" : "event in buffer");
|
||||
printf(" Event Full (0x%1x): %s \n", (status >> 4) & 0x1, ((status >> 4) & 0x1) == 0? "not full" : "full");
|
||||
printf(" Clock source (0x%1x): %s \n", (status >> 5) & 0x1, ((status >> 5) & 0x1) == 0? "internal" : "external");
|
||||
printf(" Board ready (0x%1x): %s \n", (status >> 8) & 0x1, ((status >> 8) & 0x1) == 0? "not ready" : "ready");
|
||||
printf(" Ch shutDown (0x%1x): %s \n", (status >> 19) & 0x1, ((status >> 19) & 0x1) == 0? "Channels are on" : "channels are shutdown");
|
||||
printf(" TRG-IN 0x%1x \n", (status >> 16) & 0x1);
|
||||
printf(" Ch temp state 0x%04x \n", (status >> 20) & 0xF);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//========================================== setting file IO
|
||||
void Digitizer::OpenSettingBinary(string fileName){
|
||||
settingFile = NULL;
|
||||
this->settingFileName = fileName;
|
||||
|
|
|
@ -33,7 +33,7 @@ class Digitizer{
|
|||
|
||||
///=================Settings
|
||||
void WriteRegister(uint32_t address, uint32_t value, int ch = -1);
|
||||
uint32_t ReadRegister(uint32_t address, unsigned int ch = 0, string str = "");
|
||||
uint32_t ReadRegister(uint32_t address, int ch = -1, string str = "");
|
||||
|
||||
///common for PHA and PSD digitizers
|
||||
void SetChannelMask(uint32_t mask);
|
||||
|
@ -63,6 +63,7 @@ class Digitizer{
|
|||
int GetDPPType() {return DPPType;}
|
||||
|
||||
void PrintBoardConfiguration();
|
||||
void PrintACQStatue();
|
||||
|
||||
///================ ACQ control
|
||||
void StopACQ();
|
||||
|
|
|
@ -71,8 +71,8 @@ namespace Register {
|
|||
const uint32_t InputDynamicRange = 0x1028; /// R/W
|
||||
const uint32_t NumberEventsPerAggregate_G = 0x1034; /// R/W
|
||||
const uint32_t PreTrigger = 0x1038; /// R/W
|
||||
///const uint32_t TriggerThreshold = 0x106C; /// R/W
|
||||
///const uint32_t TriggerHoldOffWidth = 0x1074; /// R/W
|
||||
const uint32_t TriggerThreshold = 0x106C; /// R/W
|
||||
const uint32_t TriggerHoldOffWidth = 0x1074; /// R/W
|
||||
const uint32_t DPPAlgorithmControl = 0x1080; /// R/W
|
||||
const uint32_t ChannelStatus = 0x1088; /// R
|
||||
const uint32_t AMCFirmwareRevision = 0x108C; /// R
|
||||
|
@ -81,6 +81,7 @@ namespace Register {
|
|||
const uint32_t IndividualSoftwareTrigger = 0x10C0; /// W
|
||||
const uint32_t VetoWidth = 0x10D4; /// R/W
|
||||
|
||||
/// I know there are many duplication, it is the design.
|
||||
const uint32_t BoardConfiguration = 0x8000; /// R/W
|
||||
const uint32_t AggregateOrganization = 0x800C; /// R/W
|
||||
const uint32_t ADCCalibration = 0x809C; /// W
|
||||
|
|
43
test.cpp
43
test.cpp
|
@ -22,32 +22,35 @@ int main(int argc, char* argv[]){
|
|||
//dig[0].ReadRegister(Register::DPP::PHA::TriggerThreshold, 0, "trigger threshold");
|
||||
|
||||
|
||||
//dig[0].CreateAndSaveSettingBinary("test.bin");
|
||||
//dig[0].CreateAndSaveSettingBinary("setting_" + to_string(dig[0].GetSerialNumber()) + ".bin");
|
||||
dig[0].OpenSettingBinary("setting_" + to_string(dig[0].GetSerialNumber()) + ".bin");
|
||||
|
||||
dig[0].SetAcqMode("mixed");
|
||||
dig[0].PrintACQStatue();
|
||||
|
||||
dig[0].OpenSettingBinary("test.bin");
|
||||
//
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::BoardConfiguration));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::GlobalTriggerMask));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::PHA::TriggerThreshold, 0));
|
||||
|
||||
printf("======================= \n");
|
||||
dig[0].SetRecordLength(2000);
|
||||
|
||||
dig[0].GetChannelSettingFromDigitizer(0);
|
||||
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 4));
|
||||
|
||||
dig[0].SetRecordLength(4000);
|
||||
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 3));
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 6));
|
||||
|
||||
dig[0].SetRecordLength(3000, 0);
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 1));
|
||||
printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 2));
|
||||
//printf("======================= \n");
|
||||
//dig[0].SetRecordLength(2000);
|
||||
//
|
||||
//dig[0].GetChannelSettingFromDigitizer(0);
|
||||
//
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 4));
|
||||
//
|
||||
//dig[0].SetRecordLength(4000);
|
||||
//
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 3));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 6));
|
||||
//
|
||||
//dig[0].SetRecordLength(3000, 0);
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 0));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 1));
|
||||
//printf("0x%x \n", (unsigned int)dig[0].ReadSettingBinary(Register::DPP::RecordLength_G, 2));
|
||||
|
||||
/* dig[1].OpenDigitizer(1,0, true);
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue
Block a user