#include "klasse.h"
#include "standard.h"
#include "simplegraph.h"

static int button_count=0; //Damit man den ersten Druck des USB buttons erkennen kann damit nicht 2x das interface gesetzt wird
static int Auto_button_count=0; //Damit man den ersten Druck des USB buttons erkennen kann damit nicht 2x das interface gesetzt wird
static const wchar_t *usb_kennung = L"\\\\.\\ezusb-0"; //String für das USB-Device
static int AngezeigteLinien=0;
static bool leftfree=true,rightfree=true;
static bool InHauptMenu=false;
static int neueDatensatzAnzahl=0;

Fenster::Fenster()
{
    setWindowIcon (QIcon(":/images/Logo.png"));                  

    setWindowTitle(tr("Stirling Control")); //titel des Fensters
    setMinimumSize(400, 400);           //Minimale Fenstergröße
    setMaximumSize(1280,1024);           //Maximale Fenstergröße
    resize(800,600);                    //Fenstergröße bei der inizialisierung
    ersterDatensatz=0;
    timer = new QTimer(this); //timer, damit man Daten automatisch aktualisieren kann
    connect(timer, SIGNAL(timeout()), this, SLOT(USB_getAktualValue()));

    AktualUsbData = new Werte;    //Aktuelle Werte aus dem USB Device
    for(int i=0;isetReadOnly(1);
    
    HauptAnzeigefenster1=new QDockWidget(tr("Zeitlicher Verlauf"), this);
    HauptAnzeigefenster1->setFeatures(QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable);        
                                                           
    Mainwidget=new QWidget(this); //Widget erstellen, damit mehrere dockwidgets im centralwidget angezeigt werden können
    MainwidgetLayout = new QVBoxLayout(Mainwidget); //Layout für das Mainwidget
    MainwidgetLayout->addWidget(HauptAnzeigefenster1); //Hinzufügen von den Dockwidgets
  
    setCentralWidget(Mainwidget); //Zentrales Fenster festlegen    
    
    createActions();    //Aktionen erstellen
    createStatusbar();  //Statusbar erstellen
    createMenu();       //Menü erstellen
    createTOOL();       //Toolbar erstellen*/
    createDockWidgets();   

    createLables();
    createLineedits();  
    createDiagramms();
    LCDFenster = new GrossAnzeigeFenster(this);  //Initialisiert die Großanzeige
    HauptAnzeigefenster1->setWidget(Diagramm);  
}
void Fenster::createDiagramms()
{
  Diagramm = new GrafischeDarstellung("Zeitlicher Verlauf"); //eine neue Grafik erzeugen
  Diagramm->setToolTip(tr("Zeitlicher Verlauf"));
  Diagramm->setAxisTitle(QwtPlot::xBottom, "Zeit [min]");
  
  double DiagrammStartWerteX[DATENSATZANZAHL-3];
  double DiagrammStartWerteY[DATENSATZANZAHL-3];
  
  for(int i=0;isetxWerte(DiagrammStartWerteX);
  SpannungsLinie->setyWerte(DiagrammStartWerteY);  
  if(toggleviewSPG->isChecked())
  {
    SpannungsLinie->show();
    Diagramm->setAxisTitle(QwtPlot::yRight, "Spannung [V]");
    SpannungsLinie->setYAxis(QwtPlot::yRight);  
    Diagramm->setAxisScale(QwtPlot::yRight,8,15);     
    rightfree=false;
    AngezeigteLinien++;
  }

  StromLinie = new AddLine(Qt::red,"Strom","A",DATENSATZANZAHL-3,Diagramm);
  StromLinie->setxWerte(DiagrammStartWerteX);
  StromLinie->setyWerte(DiagrammStartWerteY);  
  if(toggleviewSTROM->isChecked())
  {
    StromLinie->show();
    Diagramm->setAxisTitle(QwtPlot::yLeft, "Strom [A]");
    StromLinie->setYAxis(QwtPlot::yLeft);  
    leftfree=false;
    Diagramm->setAxisScale(QwtPlot::yLeft,0,3);   
    AngezeigteLinien++;
  }

  LstLinie = new AddLine(QColor(255,165,0),"Leistung","W",DATENSATZANZAHL-3,Diagramm); //Orange
  LstLinie->setxWerte(DiagrammStartWerteX);
  LstLinie->setyWerte(DiagrammStartWerteY);
  
  HtempLinie = new AddLine(Qt::green,"Hochtemperatur","°C",DATENSATZANZAHL-3,Diagramm);
  HtempLinie->setxWerte(DiagrammStartWerteX);
  HtempLinie->setyWerte(DiagrammStartWerteY);  

  RtempLinie = new AddLine(Qt::cyan,"Raumtemperatur","°C",DATENSATZANZAHL-3,Diagramm);
  RtempLinie->setxWerte(DiagrammStartWerteX);
  RtempLinie->setyWerte(DiagrammStartWerteY);  
 
  KtempLinie = new AddLine(Qt::black,"Kalttemperatur","°C",DATENSATZANZAHL-3,Diagramm);
  KtempLinie->setxWerte(DiagrammStartWerteX);
  KtempLinie->setyWerte(DiagrammStartWerteY);  

  DrzLinie = new AddLine(Qt::magenta,"Drehzahl","U/min",DATENSATZANZAHL-3,Diagramm);
  DrzLinie->setxWerte(DiagrammStartWerteX);
  DrzLinie->setyWerte(DiagrammStartWerteY);  
}