// By ROOT version 5.17/02 on 2008-03-13 06:46:41
#ifndef ROOT_TGDockableFrame
#include "TGDockableFrame.h"
#endif
#ifndef ROOT_TGMenu
#include "TGMenu.h"
#endif
#ifndef ROOT_TGMdiDecorFrame
#include "TGMdiDecorFrame.h"
#endif
#ifndef ROOT_TG3DLine
#include "TG3DLine.h"
#endif
#ifndef ROOT_TGMdiFrame
#include "TGMdiFrame.h"
#endif
#ifndef ROOT_TGMdiMainFrame
#include "TGMdiMainFrame.h"
#endif
//#ifndef ROOT_TGuiBldHintsButton
//#include "TGuiBldHintsButton.h"
//#endif
#ifndef ROOT_TGMdiMenu
#include "TGMdiMenu.h"
#endif
#ifndef ROOT_TGListBox
#include "TGListBox.h"
#endif
#ifndef ROOT_TGNumberEntry
#include "TGNumberEntry.h"
#endif
#ifndef ROOT_TGScrollBar
#include "TGScrollBar.h"
#endif
//#ifndef ROOT_TGuiBldHintsEditor
//#include "TGuiBldHintsEditor.h"
//#endif
#ifndef ROOT_TRootBrowser
#include "TRootBrowser.h"
#endif
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
#ifndef ROOT_TGFileDialog
#include "TGFileDialog.h"
#endif
#ifndef ROOT_TGShutter
#include "TGShutter.h"
#endif
#ifndef ROOT_TGButtonGroup
#include "TGButtonGroup.h"
#endif
#ifndef ROOT_TGCanvas
#include "TGCanvas.h"
#endif
#ifndef ROOT_TGFSContainer
#include "TGFSContainer.h"
#endif
#ifndef ROOT_TGButton
#include "TGButton.h"
#endif
//#ifndef ROOT_TGuiBldEditor
//#include "TGuiBldEditor.h"
//#endif
#ifndef ROOT_TGTextEdit
#include "TGTextEdit.h"
#endif
#ifndef ROOT_TGFSComboBox
#include "TGFSComboBox.h"
#endif
#ifndef ROOT_TGLabel
#include "TGLabel.h"
#endif
#ifndef ROOT_TGView
#include "TGView.h"
#endif
//#ifndef ROOT_TRootGuiBuilder
//#include "TRootGuiBuilder.h"
//#endif
#ifndef ROOT_TGTab
#include "TGTab.h"
#endif
#ifndef ROOT_TGListView
#include "TGListView.h"
#endif
#ifndef ROOT_TGSplitter
#include "TGSplitter.h"
#endif
#ifndef ROOT_TGStatusBar
#include "TGStatusBar.h"
#endif
#ifndef ROOT_TGListTree
#include "TGListTree.h"
#endif
#ifndef ROOT_TGToolTip
#include "TGToolTip.h"
#endif
#ifndef ROOT_TGToolBar
#include "TGToolBar.h"
#endif
#ifndef ROOT_TRootEmbeddedCanvas
#include "TRootEmbeddedCanvas.h"
#endif
#ifndef ROOT_TCanvas
#include "TCanvas.h"
#endif
//#ifndef ROOT_TGuiBldDragManager
//#include "TGuiBldDragManager.h"
//#endif
#include "Riostream.h"
#include "TThread.h"
#include "TApplication.h"
#include "TROOT.h"
#include "TGraph.h"
#include "TStyle.h"
#include "TH1F.h"
#include "daq.h"
TGTextButton *gTextButton[10];
TCanvas *fCanvas;
TGMainFrame *fMain;
TGTextEntry *gFilename;
TGNumberEntry *gThreshold;
TGNumberEntry *gTimeSet;
TRootEmbeddedCanvas *gCanvas;
TH1F* gHisto;
daq * gDaq;
//----------------------------------------------------
void MyEventHandler(int i){
char fname[200];
switch (i) {
case 0: // init
gDaq->init();
break;
case 1: // start
gDaq->start((int) gThreshold->GetNumber(),(int) gTimeSet->GetNumber() );
break;
case 2: // count
gDaq->count();
if (!gHisto) gHisto=new TH1F("h0","h0;Stevilka kanala;Stevilo zadetkov",16,0.5,16.5);
if (gHisto) {
for (int i=0;i<16;i++) gHisto->SetBinContent(i+1,gDaq->gData[i]);
gCanvas->GetCanvas()->cd();
gHisto->Draw();
gHisto->Draw("text same");
gCanvas->GetCanvas()->Modified();
gCanvas->GetCanvas()->Update();
printf("Vsota kanalov=%d\n",(int) gHisto
->GetSum
());
}
break;
case 3: // save
gDaq->save();
break;
case 4: // append
sprintf ( fname
,"%s",gFilename
->GetText
());
gDaq->append(fname);
break;
case 5: // save
gCanvas->GetCanvas()->SaveAs("uklonski_poskus.pdf");
break;
case 6: // exit
gApplication->Terminate(0);
break;
}
}
//----------------------------------------------------
int gui(){
gDaq= new daq();
fMain = new TGMainFrame(0,800,800);
TGHorizontalFrame *fH=new TGHorizontalFrame(fMain,800,400);
//------------------------------------------------------------
TGLayoutHints *f0= new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2);
TGLayoutHints *layout2= new TGLayoutHints(kLHintsLeft | kLHintsTop,20,20,20,20);
// gumbi
int nbut=7;
const char *names[10]={"Inicializacija","Start","Prestej","Shrani","Dodaj v datoteko", "Natisni" , "Konec"};
for (int i=0;i<nbut;i++){
gTextButton[i]= new TGTextButton(fH, names[i]);
gTextButton[i]->SetTextJustify(36);
gTextButton[i]->SetMargins(0,0,0,0);
gTextButton[i]->SetWrapLength(-1);
gTextButton[i]->Resize(50,22);
fH->AddFrame(gTextButton[i], layout2);
char cmd[50];
sprintf(cmd
,"MyEventHandler(=%d)",i
);
TQObject::Connect(gTextButton[i],"Clicked()",0,0,cmd);
}
fMain->AddFrame(fH , f0);
//---------------------------------------------------------
// inputi
fH=new TGHorizontalFrame(fMain,800,200);
TGLabel *lab1 = new TGLabel( fH ,"Ime datoteke:");
fH->AddFrame(lab1, f0);
gFilename = new TGTextEntry( fH,"datoteka.txt");
fH->AddFrame(gFilename, f0);
TGLabel *lab2 = new TGLabel( fH ,"Nivo prozenja (mV):");
fH->AddFrame(lab2, f0);
gThreshold = new TGNumberEntry( fH,250);
fH->AddFrame(gThreshold, f0);
lab2 = new TGLabel( fH ,"Cas meritve (ms):");
fH->AddFrame(lab2, f0);
gTimeSet = new TGNumberEntry( fH,1000);
fH->AddFrame(gTimeSet, f0);
fMain->AddFrame(fH , f0);
//---------------------------------------------------------
// canvas
fH=new TGHorizontalFrame(fMain,800,200);
gCanvas = new TRootEmbeddedCanvas ("gCanvas",fH,800,400);
fH->AddFrame(gCanvas, f0);
fMain->AddFrame(fH , f0);
fMain->SetWindowName("Praktikum IV Uklonski poskus");
fMain->MapSubwindows();
fMain->Resize(fMain->GetDefaultSize());
fMain->MapWindow();
gStyle->SetOptStat(11111111);
return 0;
}