mkae the triggerSummary appear when digitizer open. This will ensure database is pushed. finsihed the elogEntry.sh
This commit is contained in:
parent
029e56ebbc
commit
2483abef70
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
test
|
test
|
||||||
FSUDAQ
|
FSUDAQ
|
||||||
|
FSUDAQ.sh
|
||||||
test_indep
|
test_indep
|
||||||
EventBuilder
|
EventBuilder
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,6 @@ class Data{
|
||||||
//==========================================
|
//==========================================
|
||||||
|
|
||||||
inline Data::Data(){
|
inline Data::Data(){
|
||||||
printf("----- %s \n", __func__);
|
|
||||||
ch2ns = 2.0;
|
ch2ns = 2.0;
|
||||||
boardSN = 0;
|
boardSN = 0;
|
||||||
DPPType = V1730_DPP_PHA_CODE;
|
DPPType = V1730_DPP_PHA_CODE;
|
||||||
|
@ -109,7 +108,6 @@ inline Data::Data(){
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Data::~Data(){
|
inline Data::~Data(){
|
||||||
printf("----- %s \n", __func__);
|
|
||||||
if( buffer != NULL ) delete buffer;
|
if( buffer != NULL ) delete buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -343,6 +343,7 @@ void Digitizer::StartACQ(){
|
||||||
|
|
||||||
printf("\e[1m\e[33m======= Acquisition Started for Board %d\e[0m\n", boardID);
|
printf("\e[1m\e[33m======= Acquisition Started for Board %d\e[0m\n", boardID);
|
||||||
AcqRun = true;
|
AcqRun = true;
|
||||||
|
data->ClearTriggerRate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer::StopACQ(){
|
void Digitizer::StopACQ(){
|
||||||
|
@ -352,6 +353,7 @@ void Digitizer::StopACQ(){
|
||||||
if( ret != 0 ) ErrorMsg("something wrong when try to stop ACQ and clear buffer");
|
if( ret != 0 ) ErrorMsg("something wrong when try to stop ACQ and clear buffer");
|
||||||
printf("\n\e[1m\e[33m====== Acquisition STOPPED for Board %d\e[0m\n", boardID);
|
printf("\n\e[1m\e[33m====== Acquisition STOPPED for Board %d\e[0m\n", boardID);
|
||||||
AcqRun = false;
|
AcqRun = false;
|
||||||
|
data->ClearTriggerRate();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int Digitizer::CalByteForBuffer(){
|
unsigned int Digitizer::CalByteForBuffer(){
|
||||||
|
@ -533,6 +535,7 @@ Reg Digitizer::FindRegister(uint32_t address){
|
||||||
|
|
||||||
void Digitizer::ReadAllSettingsFromBoard(bool force){
|
void Digitizer::ReadAllSettingsFromBoard(bool force){
|
||||||
if( !isConnected ) return;
|
if( !isConnected ) return;
|
||||||
|
if( AcqRun ) return;
|
||||||
if( isSettingFilledinMemeory && !force) return;
|
if( isSettingFilledinMemeory && !force) return;
|
||||||
|
|
||||||
printf("===== %s \n", __func__);
|
printf("===== %s \n", __func__);
|
||||||
|
|
|
@ -69,7 +69,6 @@ enum MenuIdentifiers{
|
||||||
M_FILE_OPEN,
|
M_FILE_OPEN,
|
||||||
M_EXIT,
|
M_EXIT,
|
||||||
M_LOAD_SETTINGS,
|
M_LOAD_SETTINGS,
|
||||||
M_TRIGGER_SUMMARY,
|
|
||||||
M_CH_SETTING_PHA,
|
M_CH_SETTING_PHA,
|
||||||
M_CH_SETTING_PSD,
|
M_CH_SETTING_PSD,
|
||||||
M_REGISTER_SETTING,
|
M_REGISTER_SETTING,
|
||||||
|
@ -110,7 +109,6 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
fMenuDigitizers = new TGPopupMenu(gClient->GetRoot());
|
fMenuDigitizers = new TGPopupMenu(gClient->GetRoot());
|
||||||
fMenuDigitizers->AddEntry("&Open Digitizers", M_DIGITIZER_OPEN);
|
fMenuDigitizers->AddEntry("&Open Digitizers", M_DIGITIZER_OPEN);
|
||||||
fMenuDigitizers->AddEntry("&Load Setting (Offline)", M_LOAD_SETTINGS);
|
fMenuDigitizers->AddEntry("&Load Setting (Offline)", M_LOAD_SETTINGS);
|
||||||
fMenuDigitizers->AddEntry("&Trigger Summary", M_TRIGGER_SUMMARY);
|
|
||||||
fMenuDigitizers->AddSeparator();
|
fMenuDigitizers->AddSeparator();
|
||||||
fMenuDigitizers->AddEntry("Digitizer &Settings", M_BOARD_SETTINGS);
|
fMenuDigitizers->AddEntry("Digitizer &Settings", M_BOARD_SETTINGS);
|
||||||
fMenuDigitizers->AddEntry("&Channel Settings (PHA)", M_CH_SETTING_PHA);
|
fMenuDigitizers->AddEntry("&Channel Settings (PHA)", M_CH_SETTING_PHA);
|
||||||
|
@ -121,7 +119,6 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
fMenuDigitizers->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)");
|
fMenuDigitizers->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)");
|
||||||
fMenuBar->AddPopup("&Digitizers", fMenuDigitizers, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
|
fMenuBar->AddPopup("&Digitizers", fMenuDigitizers, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
|
||||||
|
|
||||||
fMenuDigitizers->DisableEntry( M_TRIGGER_SUMMARY);
|
|
||||||
fMenuDigitizers->DisableEntry( M_BOARD_SETTINGS);
|
fMenuDigitizers->DisableEntry( M_BOARD_SETTINGS);
|
||||||
fMenuDigitizers->DisableEntry( M_CH_SETTING_PHA);
|
fMenuDigitizers->DisableEntry( M_CH_SETTING_PHA);
|
||||||
fMenuDigitizers->DisableEntry( M_CH_SETTING_PSD);
|
fMenuDigitizers->DisableEntry( M_CH_SETTING_PSD);
|
||||||
|
@ -140,10 +137,10 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
TGLayoutHints * haha = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 2, 10, 0); ///left, right, top, bottom
|
TGLayoutHints * haha = new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 2, 10, 0); ///left, right, top, bottom
|
||||||
|
|
||||||
|
|
||||||
TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain); fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2));
|
TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain); fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX,0,0,0,0));
|
||||||
|
|
||||||
{///================= Create a horizontal frame widget with buttons
|
{///================= Create a horizontal frame widget with buttons
|
||||||
TGGroupFrame * group0 = new TGGroupFrame(hframe, "Run Control", kVerticalFrame); hframe->AddFrame(group0);
|
TGGroupFrame * group0 = new TGGroupFrame(hframe, "Run Control", kVerticalFrame); hframe->AddFrame(group0, new TGLayoutHints(kLHintsExpandY));
|
||||||
|
|
||||||
TGVerticalFrame * vframe = new TGVerticalFrame(group0); group0->AddFrame(vframe);
|
TGVerticalFrame * vframe = new TGVerticalFrame(group0); group0->AddFrame(vframe);
|
||||||
TGHorizontalFrame *hfg0 = new TGHorizontalFrame(vframe); vframe->AddFrame(hfg0 ,new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
|
TGHorizontalFrame *hfg0 = new TGHorizontalFrame(vframe); vframe->AddFrame(hfg0 ,new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
|
||||||
|
@ -177,7 +174,7 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
|
|
||||||
TGLabel * lbRunNum = new TGLabel(hfg1, "Run"); hfg1->AddFrame(lbRunNum, hahaLayoutHints);
|
TGLabel * lbRunNum = new TGLabel(hfg1, "Run"); hfg1->AddFrame(lbRunNum, hahaLayoutHints);
|
||||||
runIDEntry = new TGNumberEntry(hfg1, 0, 0, 0, TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative); hfg1->AddFrame(runIDEntry, uniLayoutHints);
|
runIDEntry = new TGNumberEntry(hfg1, 0, 0, 0, TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative); hfg1->AddFrame(runIDEntry, uniLayoutHints);
|
||||||
runIDEntry->SetNumber(lastRunID, false);
|
runIDEntry->SetNumber(lastRunID + 1, false);
|
||||||
runIDEntry->SetWidth(50);
|
runIDEntry->SetWidth(50);
|
||||||
|
|
||||||
cbDataRun = new TGCheckButton(hfg1, "Data Run", 1); hfg1->AddFrame(cbDataRun, hahaLayoutHints);
|
cbDataRun = new TGCheckButton(hfg1, "Data Run", 1); hfg1->AddFrame(cbDataRun, hahaLayoutHints);
|
||||||
|
@ -257,7 +254,6 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
//HandleMenu(M_CH_SETTING_PHA);
|
//HandleMenu(M_CH_SETTING_PHA);
|
||||||
//HandleMenu(M_CH_SETTING_PSD);
|
//HandleMenu(M_CH_SETTING_PSD);
|
||||||
//HandleMenu(M_REGISTER_SETTING);
|
//HandleMenu(M_REGISTER_SETTING);
|
||||||
//HandleMenu(M_TRIGGER_SUMMARY);
|
|
||||||
//HandleMenu(M_PROGRAM_SETTINGS);
|
//HandleMenu(M_PROGRAM_SETTINGS);
|
||||||
|
|
||||||
gDummy = new TGraph();
|
gDummy = new TGraph();
|
||||||
|
@ -279,9 +275,10 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
|
||||||
|
|
||||||
gStyle->SetOptStat("neiou");
|
gStyle->SetOptStat("neiou");
|
||||||
|
|
||||||
|
|
||||||
DrawDummyGraph();
|
DrawDummyGraph();
|
||||||
|
|
||||||
|
fMain->Move(300, 200);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::GoodBye(){
|
void MainWindow::GoodBye(){
|
||||||
|
@ -289,7 +286,6 @@ void MainWindow::GoodBye(){
|
||||||
printf("/// Closing Digitizer and Releasing digitizer memory\n");
|
printf("/// Closing Digitizer and Releasing digitizer memory\n");
|
||||||
for( int i = 0; i < nDigi; i++) delete digi[i];
|
for( int i = 0; i < nDigi; i++) delete digi[i];
|
||||||
|
|
||||||
printf("/// Releasing histograms memory\n");
|
|
||||||
for( int i = 0; i < MaxNBoards; i++){
|
for( int i = 0; i < MaxNBoards; i++){
|
||||||
if( hChannel[i] != NULL ) delete hChannel[i];
|
if( hChannel[i] != NULL ) delete hChannel[i];
|
||||||
for( int j = 0; j < MaxNChannels; j++){
|
for( int j = 0; j < MaxNChannels; j++){
|
||||||
|
@ -297,7 +293,6 @@ void MainWindow::GoodBye(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("/// Releasing graphs memory\n");
|
|
||||||
delete gDummy;
|
delete gDummy;
|
||||||
delete gAnaTrace1 ;
|
delete gAnaTrace1 ;
|
||||||
delete gAnaTrace2 ;
|
delete gAnaTrace2 ;
|
||||||
|
@ -366,12 +361,6 @@ void MainWindow::HandleMenu(Int_t id){
|
||||||
///========================= Exit
|
///========================= Exit
|
||||||
case M_EXIT: GoodBye(); break;
|
case M_EXIT: GoodBye(); break;
|
||||||
|
|
||||||
///========================= Trigger summary
|
|
||||||
case M_TRIGGER_SUMMARY: {
|
|
||||||
triggerSummary = new TriggerSummary(gClient->GetRoot(), 600, 600);
|
|
||||||
TriggerSummary::isManualOpened = true;
|
|
||||||
}break;
|
|
||||||
|
|
||||||
///========================= Load setting file offline
|
///========================= Load setting file offline
|
||||||
case M_LOAD_SETTINGS:{
|
case M_LOAD_SETTINGS:{
|
||||||
LoadSettingFromFile();
|
LoadSettingFromFile();
|
||||||
|
@ -460,7 +449,6 @@ void MainWindow::OpenDigitizers(){
|
||||||
digi = new Digitizer * [nDigi];
|
digi = new Digitizer * [nDigi];
|
||||||
|
|
||||||
for( int i = 0; i < nDigi; i++){
|
for( int i = 0; i < nDigi; i++){
|
||||||
printf("------------ %d \n", i);
|
|
||||||
digi[i] = new Digitizer(boardID[i], portID[i], false, false);
|
digi[i] = new Digitizer(boardID[i], portID[i], false, false);
|
||||||
LogMsg(Form("%2d, Serial number : %3d opened (%s, %s)", i, digi[i]->GetSerialNumber(),
|
LogMsg(Form("%2d, Serial number : %3d opened (%s, %s)", i, digi[i]->GetSerialNumber(),
|
||||||
digi[i]->GetDPPString().c_str(),
|
digi[i]->GetDPPString().c_str(),
|
||||||
|
@ -479,10 +467,11 @@ void MainWindow::OpenDigitizers(){
|
||||||
fMenuDigitizers->EnableEntry( M_BOARD_SETTINGS);
|
fMenuDigitizers->EnableEntry( M_BOARD_SETTINGS);
|
||||||
fMenuDigitizers->EnableEntry( M_CH_SETTING_PHA);
|
fMenuDigitizers->EnableEntry( M_CH_SETTING_PHA);
|
||||||
fMenuDigitizers->EnableEntry( M_CH_SETTING_PSD);
|
fMenuDigitizers->EnableEntry( M_CH_SETTING_PSD);
|
||||||
fMenuDigitizers->EnableEntry( M_TRIGGER_SUMMARY);
|
|
||||||
fMenuDigitizers->EnableEntry( M_REGISTER_SETTING);
|
fMenuDigitizers->EnableEntry( M_REGISTER_SETTING);
|
||||||
bOpenDigitizers->SetEnabled(false);
|
bOpenDigitizers->SetEnabled(false);
|
||||||
|
|
||||||
|
triggerSummary = new TriggerSummary(gClient->GetRoot(), fMain );
|
||||||
|
|
||||||
bStartRun->SetEnabled(true);
|
bStartRun->SetEnabled(true);
|
||||||
|
|
||||||
if( nDigi > 1) boardIDEntry->SetState(true);
|
if( nDigi > 1) boardIDEntry->SetState(true);
|
||||||
|
@ -548,7 +537,7 @@ void MainWindow::ChangeBoard(){
|
||||||
|
|
||||||
void MainWindow::UpdateExpName(){
|
void MainWindow::UpdateExpName(){
|
||||||
dataPrefix->SetText(ProgramSetting::ExpName.c_str());
|
dataPrefix->SetText(ProgramSetting::ExpName.c_str());
|
||||||
runIDEntry->SetNumber(lastRunID);
|
runIDEntry->SetNumber(lastRunID + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::MakeElogEntry(bool start){
|
void MainWindow::MakeElogEntry(bool start){
|
||||||
|
@ -592,7 +581,8 @@ void MainWindow::StartRun(){
|
||||||
if( StartStopDialog::isOK){
|
if( StartStopDialog::isOK){
|
||||||
|
|
||||||
LogMsg(Form("Start Data Run"));
|
LogMsg(Form("Start Data Run"));
|
||||||
|
lastRunID ++;
|
||||||
|
ProgramSetting::SaveProgramSetting();
|
||||||
cbMode->SetEnabled(false);
|
cbMode->SetEnabled(false);
|
||||||
MakeElogEntry(true);
|
MakeElogEntry(true);
|
||||||
|
|
||||||
|
@ -615,11 +605,6 @@ void MainWindow::StartRun(){
|
||||||
cbMode->SetEnabled(true);
|
cbMode->SetEnabled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !TriggerSummary::isOpened ) {
|
|
||||||
triggerSummary = new TriggerSummary(gClient->GetRoot(), 600, 600);
|
|
||||||
TriggerSummary::isManualOpened = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::StopRun(){
|
void MainWindow::StopRun(){
|
||||||
|
@ -641,8 +626,6 @@ void MainWindow::StopRun(){
|
||||||
bFitTrace->SetEnabled(true);
|
bFitTrace->SetEnabled(true);
|
||||||
cbMode->SetEnabled(true);
|
cbMode->SetEnabled(true);
|
||||||
|
|
||||||
if( !TriggerSummary::isManualOpened ) triggerSummary->CloseWindow();
|
|
||||||
|
|
||||||
///if( cbMode->GetSelected() == Mode_DataRun ){
|
///if( cbMode->GetSelected() == Mode_DataRun ){
|
||||||
if( cbDataRun->GetState() == kButtonDown ) {
|
if( cbDataRun->GetState() == kButtonDown ) {
|
||||||
startStopDialog = new StartStopDialog(gClient->GetRoot(), fMain, 400, 200, false);
|
startStopDialog = new StartStopDialog(gClient->GetRoot(), fMain, 400, 200, false);
|
||||||
|
@ -652,10 +635,9 @@ void MainWindow::StopRun(){
|
||||||
LogMsg(Form("Stop Data Run"));
|
LogMsg(Form("Stop Data Run"));
|
||||||
|
|
||||||
int runID = runIDEntry->GetNumber();
|
int runID = runIDEntry->GetNumber();
|
||||||
lastRunID = runID + 1;
|
|
||||||
runIDEntry->SetNumber(runID +1);
|
runIDEntry->SetNumber(runID +1);
|
||||||
MakeElogEntry(false);
|
MakeElogEntry(false);
|
||||||
ProgramSetting::SaveProgramSetting();
|
|
||||||
}else{
|
}else{
|
||||||
bStartRun->SetEnabled(false);
|
bStartRun->SetEnabled(false);
|
||||||
bStopRun->SetEnabled(true);
|
bStopRun->SetEnabled(true);
|
||||||
|
@ -1004,7 +986,16 @@ void * MainWindow::Run(void * ptr){
|
||||||
|
|
||||||
//############################################
|
//############################################
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
printf(" Welcome to FSU DQ \n");
|
printf("########################################################################################\n");
|
||||||
|
printf(" oooooooooooo .oooooo..o ooooo ooo oooooooooo. .o. .oooooo. \n");
|
||||||
|
printf(" `888\' `8 d8P' `Y8 `888' `8' `888' `Y8b .888. d8P' `Y8b \n");
|
||||||
|
printf(" 888 Y88bo. 888 8 888 888 .8`888. 888 888 \n");
|
||||||
|
printf(" 888oooo8 ``Y8888o. 888 8 888 888 .8' `888. 888 888 \n");
|
||||||
|
printf(" 888 \" ``Y88b 888 8 888 888 .88ooo8888. 888 888 \n");
|
||||||
|
printf(" 888 oo .d8P `88. .8' 888 d88' .8' `888. `88b d88b \n");
|
||||||
|
printf(" o888o 8\"\"88888P' `YbodP' o888bood8P' o88o o8888o `Y8bood8P'Ybd' \n");
|
||||||
|
printf("########################################################################################\n");
|
||||||
|
printf(" Welcome to FSU DAQ \n");
|
||||||
|
|
||||||
ProgramSetting::LoadProgramSetting();
|
ProgramSetting::LoadProgramSetting();
|
||||||
|
|
||||||
|
|
|
@ -20,19 +20,33 @@ elogFileName=${DataPath}"/elogText.txt"
|
||||||
echo ${isStart}
|
echo ${isStart}
|
||||||
echo ${Comment}
|
echo ${Comment}
|
||||||
|
|
||||||
|
#Get file size
|
||||||
|
RUN=${lastRunID}
|
||||||
|
runLen=${#lastRunID}
|
||||||
|
if [ ${runLen} -eq 1 ]; then
|
||||||
|
RUN="00"${RUN}
|
||||||
|
elif [ ${runLen} -eq 2 ]; then
|
||||||
|
RUN="0"${RUN}
|
||||||
|
fi;
|
||||||
|
|
||||||
|
|
||||||
if [ ${isStart} == "1" ]; then
|
if [ ${isStart} == "1" ]; then
|
||||||
|
|
||||||
#make text file for elog text
|
#make text file for elog text
|
||||||
echo "**************************************" > ${elogFileName}
|
echo "************************************************************************** <br />" > ${elogFileName}
|
||||||
echo "Run-${lastRunID} start at $(date)" >> ${elogFileName}
|
echo "Run-${RUN} start at $(date) <br />" >> ${elogFileName}
|
||||||
echo ${Comment} >> ${elogFileName}
|
echo "Start Run Comment : "${Comment}" <br />">> ${elogFileName}
|
||||||
|
echo "-------------------------------------------------------------------------- <br />" >> ${elogFileName}
|
||||||
|
|
||||||
|
|
||||||
#push to elog
|
#push to elog
|
||||||
IDStr=$(elog -h ${ElogIP} -l ${ExpName} -u GeneralFox fsuphysics888 -a Author="GeneralFox" -a Category="Run" -a RunNo=${lastRunID} -a Subject="Run Log" -n 2 -m elogText.txt)
|
IDStr=$(elog -h ${ElogIP} -l ${ExpName} -u GeneralFox fsuphysics888 -a Author="GeneralFox" -a Category="Run" -a RunNo=${lastRunID} -a Subject="Run Log" -n 2 -m ${elogFileName})
|
||||||
|
|
||||||
|
echo "==========="${IDStr}
|
||||||
|
|
||||||
IDStr=$(echo ${IDStr} | tail -1 | awk '{print $4}')
|
IDStr=$(echo ${IDStr} | tail -1 | awk '{print $4}')
|
||||||
|
|
||||||
echo ${IDStr}
|
echo ".............."${IDStr}
|
||||||
|
|
||||||
if [ ${IDStr:0:3} == "ID=" ] && [[ ${IDStr:3} =~ ${re} ]]; then
|
if [ ${IDStr:0:3} == "ID=" ] && [[ ${IDStr:3} =~ ${re} ]]; then
|
||||||
elogIDStr="Elog"${IDStr}
|
elogIDStr="Elog"${IDStr}
|
||||||
|
@ -42,23 +56,36 @@ if [ ${isStart} == "1" ]; then
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
elogFileName2=elogText2.txt
|
elogFileName2=${DataPath}"/elogText2.txt"
|
||||||
|
|
||||||
#download elog entry
|
#download elog entry
|
||||||
echo "====== getting elog entry"
|
echo "====== getting elog entry"
|
||||||
elog -h ${ElogIP} -l elog/${ExpName} -u GeneralFox fsuphysics888 -w ${ElogID} > ${elogFileName2}
|
elog -h ${ElogIP} -l elog/${ExpName} -u GeneralFox fsuphysics888 -w ${ElogID} > ${elogFileName2}
|
||||||
|
|
||||||
echo "======================="
|
echo "======================="
|
||||||
|
#cat ${elogFileName2}
|
||||||
|
|
||||||
|
echo "remove header"
|
||||||
|
cutLineNum=$(grep -n "==============" ${elogFileName2} | cut -d: -f1)
|
||||||
|
#check encoding
|
||||||
|
encoding=$(grep "Encoding" ${elogFileName2} | awk '{print $2}')
|
||||||
|
if [ $encoding = "plain" ]; then encodingID=1 ; fi
|
||||||
|
if [ $encoding = "HTML" ]; then encodingID=2 ; fi
|
||||||
|
if [ $encoding = "ELcode" ]; then encodingID=0 ; fi
|
||||||
|
#remove all header
|
||||||
|
sed -i "1,${cutLineNum}d" ${elogFileName2}
|
||||||
|
|
||||||
|
echo "Run Stop at $(date) <br />" >> ${elogFileName2}
|
||||||
|
|
||||||
|
#Comment
|
||||||
|
echo "End Run Comment : "${Comment}" <br />" >> ${elogFileName2}
|
||||||
|
|
||||||
|
totalFileSize=$(du -hc ${DataPath}"/data/"${ExpName}_run${RUN}* | tail -1| awk {'print $1'})
|
||||||
|
echo "File Size : "${totalFileSize}" <br />">> ${elogFileName2}
|
||||||
|
echo "************************************************************************** <br />" >> ${elogFileName2}
|
||||||
|
|
||||||
cat ${elogFileName2}
|
cat ${elogFileName2}
|
||||||
|
|
||||||
# echo "remove header"
|
elog -h ${ElogIP} -p 8080 -l ${ExpName} -u GeneralFox fsuphysics888 -e ${ElogID} -n ${encodingID} -m ${elogFileName2}
|
||||||
# cutLineNum=$(grep -n "==============" ${elogFileName2} | cut -d: -f1)
|
|
||||||
# #check encoding
|
|
||||||
# encoding=$(grep "Encoding" ${elogFileName2} | awk '{print $2}')
|
|
||||||
# if [ $encoding = "plain" ]; then encodingID=1 ; fi
|
|
||||||
# if [ $encoding = "HTML" ]; then encodingID=2 ; fi
|
|
||||||
# if [ $encoding = "ELcode" ]; then encodingID=0 ; fi
|
|
||||||
# #remove all header
|
|
||||||
# sed -i "1,${cutLineNum}d" ${elogFileName2}
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -18,8 +18,6 @@ extern Digitizer ** digi;
|
||||||
|
|
||||||
//extern bool ProgramSetting::EnableDatabase;
|
//extern bool ProgramSetting::EnableDatabase;
|
||||||
|
|
||||||
bool TriggerSummary::isOpened = false;
|
|
||||||
bool TriggerSummary::isManualOpened = false;
|
|
||||||
bool TriggerSummary::updateFlag = true;
|
bool TriggerSummary::updateFlag = true;
|
||||||
TGTextEntry * TriggerSummary::txtTrigger[MaxNBoards][MaxNChannels] = {NULL};
|
TGTextEntry * TriggerSummary::txtTrigger[MaxNBoards][MaxNChannels] = {NULL};
|
||||||
TGTextEntry * TriggerSummary::txtThresholdValue[MaxNBoards][MaxNChannels] = {NULL};
|
TGTextEntry * TriggerSummary::txtThresholdValue[MaxNBoards][MaxNChannels] = {NULL};
|
||||||
|
@ -29,12 +27,13 @@ TGNumberEntry * TriggerSummary::numUpdateTime = NULL;
|
||||||
unsigned short TriggerSummary::value[MaxNBoards][MaxNChannels] = {0};
|
unsigned short TriggerSummary::value[MaxNBoards][MaxNChannels] = {0};
|
||||||
bool TriggerSummary::onOff[MaxNBoards][MaxNChannels] = {true};
|
bool TriggerSummary::onOff[MaxNBoards][MaxNChannels] = {true};
|
||||||
|
|
||||||
TriggerSummary::TriggerSummary(const TGWindow *p, UInt_t w, UInt_t h){
|
TriggerSummary::TriggerSummary(const TGWindow *p, const TGWindow *main){
|
||||||
|
|
||||||
fMain = new TGMainFrame(p,w,h);
|
fMain = new TGTransientFrame(p,main);
|
||||||
fMain->SetWindowName("Scalar Panel");
|
fMain->SetWindowName("Scalar Panel");
|
||||||
fMain->Connect("CloseWindow()", "TriggerSummary", this, "CloseWindow()");
|
fMain->Connect("CloseWindow()", "TriggerSummary", this, "CloseWindow()");
|
||||||
//fMain->SetMWMHints(0,0, 0);
|
fMain->CenterOnParent(true, TGTransientFrame::EPlacement::kTopRight);
|
||||||
|
fMain->SetMWMHints(1,4, 0); //tested many time to have no close button.
|
||||||
|
|
||||||
TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain); fMain->AddFrame(hframe);
|
TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain); fMain->AddFrame(hframe);
|
||||||
|
|
||||||
|
@ -118,7 +117,6 @@ TriggerSummary::TriggerSummary(const TGWindow *p, UInt_t w, UInt_t h){
|
||||||
fMain->MapWindow();
|
fMain->MapWindow();
|
||||||
|
|
||||||
updateFlag = true;
|
updateFlag = true;
|
||||||
isOpened = true;
|
|
||||||
|
|
||||||
if( digi != NULL ){
|
if( digi != NULL ){
|
||||||
printf("-------- %s thread\n", __func__);
|
printf("-------- %s thread\n", __func__);
|
||||||
|
@ -141,14 +139,14 @@ TriggerSummary::~TriggerSummary(){
|
||||||
}
|
}
|
||||||
|
|
||||||
delete numUpdateTime;
|
delete numUpdateTime;
|
||||||
isOpened = false;
|
|
||||||
isManualOpened = false;
|
|
||||||
|
|
||||||
updateFlag = false;
|
updateFlag = false;
|
||||||
thread->Join();
|
thread->Join();
|
||||||
|
|
||||||
///delete thread; /// Don;t delete the thread, otherwise, thread will not run after close and reopen.
|
///delete thread; /// Don;t delete the thread, otherwise, thread will not run after close and reopen.
|
||||||
|
|
||||||
|
printf("%s ========== finial clena up\n", __func__);
|
||||||
|
|
||||||
fMain->Cleanup();
|
fMain->Cleanup();
|
||||||
delete fMain;
|
delete fMain;
|
||||||
}
|
}
|
||||||
|
@ -208,7 +206,7 @@ void TriggerSummary::SetThreshold(){
|
||||||
|
|
||||||
if( isACQRunning ) {
|
if( isACQRunning ) {
|
||||||
digi[bd]->StopACQ();
|
digi[bd]->StopACQ();
|
||||||
usleep(100*1000);
|
usleep(500*1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( digi[bd]->GetDPPType() == V1730_DPP_PSD_CODE ) {
|
if( digi[bd]->GetDPPType() == V1730_DPP_PSD_CODE ) {
|
||||||
|
@ -222,7 +220,7 @@ void TriggerSummary::SetThreshold(){
|
||||||
txtThresholdValue[bd][ch]->SetText(Form("%d", value[bd][ch]), false);
|
txtThresholdValue[bd][ch]->SetText(Form("%d", value[bd][ch]), false);
|
||||||
|
|
||||||
if( isACQRunning ) {
|
if( isACQRunning ) {
|
||||||
usleep(100*1000);
|
usleep(500*1000);
|
||||||
digi[bd]->StartACQ();
|
digi[bd]->StartACQ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +243,7 @@ void TriggerSummary::SetChannelEnable(){
|
||||||
|
|
||||||
if( isACQRunning ) {
|
if( isACQRunning ) {
|
||||||
digi[bd]->StopACQ();
|
digi[bd]->StopACQ();
|
||||||
usleep(100*1000);
|
usleep(500*1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
digi[bd]->SetChannelOnOff(ch, state);
|
digi[bd]->SetChannelOnOff(ch, state);
|
||||||
|
@ -253,7 +251,7 @@ void TriggerSummary::SetChannelEnable(){
|
||||||
txtThreshold[bd][ch]->SetEnabled(state);
|
txtThreshold[bd][ch]->SetEnabled(state);
|
||||||
|
|
||||||
if( isACQRunning ) {
|
if( isACQRunning ) {
|
||||||
usleep(100*1000);
|
usleep(500*1000);
|
||||||
digi[bd]->StartACQ();
|
digi[bd]->StartACQ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ class TGMainFrame;
|
||||||
class TriggerSummary{
|
class TriggerSummary{
|
||||||
RQ_OBJECT("TriggerSummary")
|
RQ_OBJECT("TriggerSummary")
|
||||||
private:
|
private:
|
||||||
TGMainFrame * fMain;
|
TGTransientFrame * fMain;
|
||||||
|
|
||||||
static TGTextEntry * txtTrigger[MaxNBoards][MaxNChannels];
|
static TGTextEntry * txtTrigger[MaxNBoards][MaxNChannels];
|
||||||
static TGTextEntry * txtThresholdValue[MaxNBoards][MaxNChannels];
|
static TGTextEntry * txtThresholdValue[MaxNBoards][MaxNChannels];
|
||||||
|
@ -32,12 +32,9 @@ class TriggerSummary{
|
||||||
static bool onOff[MaxNBoards][MaxNChannels];
|
static bool onOff[MaxNBoards][MaxNChannels];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TriggerSummary(const TGWindow *p, UInt_t w, UInt_t h);
|
TriggerSummary(const TGWindow *p, const TGWindow *main);
|
||||||
virtual ~TriggerSummary();
|
virtual ~TriggerSummary();
|
||||||
|
|
||||||
static bool isOpened;
|
|
||||||
static bool isManualOpened;
|
|
||||||
|
|
||||||
void CloseWindow() { delete this;}
|
void CloseWindow() { delete this;}
|
||||||
|
|
||||||
static void * UpdateTriggerRate(void *ptr);
|
static void * UpdateTriggerRate(void *ptr);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user