#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GuiStatusBar.au3>
#include <GUIComboBox.au3>
#include <Constants.au3>
#include <ButtonConstants.au3>
#include <MultiGraph.au3>
;#include <File.au3>
#include <Date.au3>
#include <Array.au3>

Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)

; Globale Variablen GUI
Global $IDStatBar, $IDLblValue, $IDLblUnit, $IDLblACDC
Global $IdBtLog, $IDLed, $IdBtStartStop, $IdDMMCombo
Global $IdBtRescanComPort, $IdDMMCombo, $hGUI, $IdComPortCombo
Global $IdInpReadInterval

; Globale Variablen für Graphen
Global $GraphHeight = 280
Global $aColors[10] = [0xf8ff23, 0xff0023, 0x94ff07, 0x0088ff, 0xff8902, 0xc107ff, 0x69fff3, 0xffffff, 0xff4b6f, 0x006a00]
Global $iDataPlotted = 0, $iHResolution = 250
Global $iVMin = 40, $iVMax = 50
Global $MainLineDiffY = $GraphHeight / 5
Global $iHMin = 0, $iHMax = $iHResolution
Global $DatResolutionLabel = " #", $DatResolution = -250
Global $bDrawGraph = False
Global $sVUnit = " mV"
Global $aData[0][0]

; Globale Variablen Rest
Global $iReadInterval = 5

$hGUI = GUICreate("DMM Display", 1250, 500) ; Breite 650 statt 1250
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$IdComPortCombo = GUICtrlCreateCombo("", 10, 10, 185, 20)
$IdBtRescanComPort = GUICtrlCreateButton("", 198, 8, 25, 25, $BS_ICON)
GUICtrlSetImage($IdBtRescanComPort, "shell32.dll", -239, 0)
GUICtrlSetOnEvent ($IdBtRescanComPort, "_BtRescanComPorts" )
$IdDMMCombo = GUICtrlCreateCombo("", 230, 10, 185, 20)
GUICtrlCreateLabel("Interval:", 425, 14)
$IdInpReadInterval = GUICtrlCreateInput($iReadInterval, 465, 10, 30)
GUICtrlCreateLabel("s", 500, 14)
$IDLed = GUICtrlCreateGraphic(520, 13 , 14, 14)
GUICtrlSetGraphic($IDLed, $GUI_GR_COLOR, 0xFF0000, 0xFF0000)
GUICtrlSetGraphic($IDLed, $GUI_GR_PIE, 7, 7, 7, 0, 360)
$IdBtStartStop = GUICtrlCreateButton("Start/Stop", 540, 8, 60, 25)
GUICtrlSetOnEvent ($IdBtStartStop, "_BtStartStop" )
GUICtrlSetState($IdBtStartStop, $GUI_DISABLE)
$IdBtLog = GUICtrlCreateButton("Log", 610, 8, 32, 25)
GUICtrlSetBkColor ($IdBtLog, 0xFF9090)
GUICtrlSetOnEvent ($IdBtLog, "_BtLog" )
$IDLblACDC = GUICtrlCreateLabel("--", 20, 70, 55, 40)
GUICtrlSetFont($IDLblACDC, 28, 800, 0, "Courier New")
$IDLblValue = GUICtrlCreateLabel(" ------", 100, 40, 420, 100, $SS_SUNKEN)
GUICtrlSetFont($IDLblValue, 72, 800, 0, "Courier New")
$IDLblUnit = GUICtrlCreateLabel("----", 530, 70, 100, 40)
GUICtrlSetFont($IDLblUnit, 28, 800, 0, "Courier New")
$IDStatBar = _GUICtrlStatusBar_Create($hGUI)
_GUICtrlStatusBar_SetText($IDStatBar, "Disconnected")
GUISetState(@SW_SHOW)

; Graph erstellen
_MG_Graph_erstellen (1, $hGUI, 80, 160, 500, $GraphHeight)
_MG_Graph_optionen_allgemein (1, $iHResolution, $iVMin, $iVMax, 0x000000, 0)
_MG_Graph_optionen_Plottmodus (1, 1, 1, 1, True)
_MG_Graph_optionen_Rahmen (1, True, 0x000000, 1)
_MG_Graph_optionen_Hauptgitterlinien (1, 1, 20, $MainLineDiffY, 1,0xFFFFFF, 190)
_MG_Graph_optionen_Hilfsgitterlinien (1, 1, -1, $MainLineDiffY / 2, 1,0xFFFFFF, 220)
_MG_Graph_Achse_links (1, True,  $iVMin, $iVMax, 1, $sVUnit, 0x000000, Default, 9, 60, 0.5)
_MG_Graph_Achse_unten (1, True,  $iHMin, $DatResolution, 0, $DatResolutionLabel, 0x000000, Default, 9, 70, 5)
_MG_Graph_initialisieren (1)

While 1
	Sleep(100)
WEnd


Func _Exit()
	Exit
EndFunc