#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <CommMG.au3>
#include <Array.au3>
Dim $meter_AC = 0
Dim $meter_DC = 0
Dim $meter_AUTO = 0
Dim $meter_RS232 = 0
Dim $meter_Minus = 0
Dim $meter_4e = 0
Dim $meter_4f = 0
Dim $meter_4a = 0
Dim $meter_4d = 0
Dim $meter_4c = 0
Dim $meter_4g = 0
Dim $meter_4b = 0
Dim $meter_P3 = 0
Dim $meter_3e = 0
Dim $meter_3f = 0
Dim $meter_3a = 0
Dim $meter_3d = 0
Dim $meter_3c = 0
Dim $meter_3g = 0
Dim $meter_3b = 0
Dim $meter_P2 = 0
Dim $meter_2e = 0
Dim $meter_2f = 0
Dim $meter_2a = 0
Dim $meter_2d = 0
Dim $meter_2c = 0
Dim $meter_2g = 0
Dim $meter_2b = 0
Dim $meter_P1 = 0
Dim $meter_1e = 0
Dim $meter_1f = 0
Dim $meter_1a = 0
Dim $meter_1d = 0
Dim $meter_1c = 0
Dim $meter_1g = 0
Dim $meter_1b = 0
Dim $meter_u = 0
Dim $meter_n = 0
Dim $meter_K = 0
Dim $meter_Diode = 0
Dim $meter_m = 0
Dim $meter_Percent = 0
Dim $meter_Mega = 0
Dim $meter_Beep = 0
Dim $meter_F = 0
Dim $meter_Ohm = 0
Dim $meter_REL = 0
Dim $meter_Hold = 0
Dim $meter_A = 0
Dim $meter_V = 0
Dim $meter_Hz = 0
Dim $meter_C = 0
Dim $meter_Batt = 0
Dim $ArrData[14],$ArrData1[14]
If Not FileExists("portsettings.ini") Then ;если файл не существует, то
$iniFile = FileOpen ( @ScriptDir&"\portsettings.ini", 1 );создаём
;и пишем в него всю структуру
FileWrite ( $iniFile, "[comport]"&@CRLF&"port=1"&@CRLF&"baud=115200"& _
@CRLF&"databits=8"&@CRLF&"stopbits=1"&@CRLF&"parity=0"&@CRLF&"flowcontrol=0")
FileClose ($iniFile)
MsgBox (0, "AT sender v.0.1", "Это первый запуск, настройте параметры COM порта в файле portsettings.ini"& _
@CRLF&"port - Номер порта"&@CRLF&"baud - Скopocть (бит/c)"&@CRLF&"databits - Биты дaнныx"&@CRLF& _
"stopbits - Стoпoвыe биты"&@CRLF&"parity - Чeтнocть"&@CRLF&"flowcontrol - Упpaвлeниe пoтoкoм")
Exit
EndIf
;-------------
$port = IniRead (@ScriptDir&"\portsettings.ini", "comport", "port", "NotFound");Номер порта
$baud = IniRead (@ScriptDir&"\portsettings.ini", "comport", "baud", "NotFound");Скopocть (бит/c)
$databits = IniRead (@ScriptDir&"\portsettings.ini", "comport", "databits", "NotFound");Биты дaнныx
$stopbits = IniRead (@ScriptDir&"\portsettings.ini", "comport", "stopbits", "NotFound");Стoпoвыe биты
$parity = IniRead (@ScriptDir&"\portsettings.ini", "comport", "parity", "NotFound");Чeтнocть
$flowcontrol = IniRead (@ScriptDir&"\portsettings.ini", "comport", "flowcontrol", "NotFound");Упpaвлeниe пoтoкoм
$result_err = ""
$status_string = "Нет подключения"
Dim $ArrData[14]
Dim $T1,$T2,$T3,$Num1,$Num2,$Num3,$Num4
;-------------
;подключаемся к порту
$portstatus = _CommSetPort($port,$result_err,$baud,$databits,$parity,$stopbits,$flowcontrol)
If $portstatus = 1 Then ; если ответ функции 1 то всё ОК и пишем это на лейбле
$status_string = "Подключено к порту: COM"&$port
;***********************
;***********************
Else ; если ответ не 1 то всё плохо...
$status_string = "Ошибка подключения к порту: COM"&$port
EndIf
$Form1 = GUICreate("Digital Multimeter MS8226", 500, 692)
$Label1 = GUICtrlCreateLabel ($status_string,8, 2, 390, 17)
$Input1 = GUICtrlCreateInput("", 8, 352, 297, 21)
$Button1 = GUICtrlCreateButton("Send", 312, 350, 75, 25, 0)
$Edit1 = GUICtrlCreateEdit("", 8, 20, 377, 321, $WS_VSCROLL)
;***************************
;Добавлние графических символов
$Gif0=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",10,420,80,120)
$Gif1=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",90,420,80,120)
$Gif2=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",170,420,80,120)
$Gif3=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",250,420,80,120)
$Gif4=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",330,420,80,120)
$Gif5=GUICtrlCreatePic(@ScriptDir&"\Images\Blank.gif",410,420,80,120)
;
GUISetState(@SW_SHOW)
Dim $Dig = ""
;***************************
; ~~~~~~~~ основной цикл программы ~~~~~~~~
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If $portstatus = 1 Then
$status_string = "Закрытие порта: COM"&$port&" ..."
GUICtrlSetData ($Label1, $status_string)
sleep(800);пауза, чтоб успели прочитать лейбл
EndIf
Exit
Case $Button1 ; отправка данных в порт
;$senddata = GUICtrlRead ($Input1); считываем что ввели в Input
; If Not $senddata = "" Then; если не путо, то отправляем порту
;_CommSendString($senddata&@CR, 1); в конце нужно добавлять @CR
;GUICtrlSetData ($Edit1, "Отправлено:"&@CRLF&$senddata&@CRLF,1);пишем в Edit
;Else
;GUICtrlSetData ($Edit1, "Ошибка: нечего отправлять!"&@CRLF,1)
;EndIf
;Grafotobragenie($Gif1,$T1,$Num1)
;Grafotobragenie($Gif2,$T2,$Num2)
;Grafotobragenie($Gif3,$T3,$Num3)
;Grafotobragenie($Gif4,0,$Num4)
;Проверка индикации параметры протокола: 1 тетрада байта порядковый номер байта, вторая тетрада данные.
IntToBin(0x13)
IntToBin(0x27)
IntToBin(0x3D)
IntToBin(0x45)
IntToBin(0x5B)
IntToBin(0x67)
IntToBin(0x7D)
IntToBin(0x8D)
IntToBin(0x9B)
IntToBin(0xA0)
IntToBin(0xB0)
IntToBin(0xC0)
IntToBin(0xD0)
IntToBin(0xE4)
UpdateDisplay()
EndSwitch
$Ret_string = _CommGetLine("E4" , 14 , 0 )
$ArrData1 = StringToASCIIArray($Ret_string,0,StringLen($Ret_string),1)
For $i = 0 To UBound($ArrData1) - 1
$ArrData[$i]=Hex($ArrData1[$i],2)
Next
For $i = 0 To UBound($ArrData) - 1
IntToBin("0x"& $ArrData[$i])
Next
UpdateDisplay()
;Sleep(100)
;**************************************************************************
WEnd
Func OnAutoItExit(); функция срабатывает при выходе.
_CommClosePort()
;MsgBox (0, "AT sender v.0.1", "порт закрыт")
EndFunc
Func IntToBin($iInt) ; coded by Malkey
Local $b = ""
For $i = 1 To 4
If $i<5 Then
$b = BitAND($iInt, 1) & $b
;MsgBox(0, "", $b)
$iInt = BitShift($iInt, 1)
EndIf
Next
;MsgBox(0, "", $iInt)
Switch $iInt
Case 1
If StringMid($b, 1, 1)="1" Then
$meter_AC = 1
Else
$meter_AC = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_DC = 1
Else
$meter_DC = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_AUTO = 1
Else
$meter_AUTO = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_RS232 = 1
Else
$meter_RS232 = 0
EndIf
Case 2
If StringMid($b, 1, 1)="1" Then
$meter_Minus = 1
Else
$meter_Minus = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_4e = 1
Else
$meter_4e = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_4f = 1
Else
$meter_4f = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_4a = 1
Else
$meter_4a = 0
EndIf
Case 3
If StringMid($b, 1, 1)="1" Then
$meter_4d = 1
Else
$meter_4d = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_4c = 1
Else
$meter_4c = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_4g = 1
Else
$meter_4g = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_4b = 1
Else
$meter_4b = 0
EndIf
Case 4
If StringMid($b, 1, 1)="1" Then
$meter_P3 = 1
Else
$meter_P3 = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_3e = 1
Else
$meter_3e = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_3f = 1
Else
$meter_3f = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_3a = 1
Else
$meter_3a = 0
EndIf
Case 5
If StringMid($b, 1, 1)="1" Then
$meter_3d = 1
Else
$meter_3d = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_3c = 1
Else
$meter_3c = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_3g = 1
Else
$meter_3g = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_3b = 1
Else
$meter_3b = 0
EndIf
Case 6
If StringMid($b, 1, 1)="1" Then
$meter_P2 = 1
Else
$meter_P2 = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_2e = 1
Else
$meter_2e = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_2f = 1
Else
$meter_2f = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_2a = 1
Else
$meter_2a = 0
EndIf
Case 7
If StringMid($b, 1, 1)="1" Then
$meter_2d = 1
Else
$meter_2d = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_2c = 1
Else
$meter_2c = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_2g = 1
Else
$meter_2g = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_2b = 1
Else
$meter_2b = 0
EndIf
Case 8
If StringMid($b, 1, 1)="1" Then
$meter_P1 = 1
Else
$meter_P1 = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_1e = 1
Else
$meter_1e = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_1f = 1
Else
$meter_1f = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_1a = 1
Else
$meter_1a = 0
EndIf
Case 9
If StringMid($b, 1, 1)="1" Then
$meter_1d = 1
Else
$meter_1d = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_1c = 1
Else
$meter_1c = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_1g = 1
Else
$meter_1g = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_1b = 1
Else
$meter_1b = 0
EndIf
Case 10
If StringMid($b, 1, 1)="1" Then
$meter_u = 1
Else
$meter_u = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_n = 1
Else
$meter_n = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_K = 1
Else
$meter_K = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_Diode = 1
Else
$meter_Diode = 0
EndIf
Case 11
If StringMid($b, 1, 1)="1" Then
$meter_m = 1
Else
$meter_m = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_Percent = 1
Else
$meter_Percent = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_Mega = 1
Else
$meter_Mega = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_Beep = 1
Else
$meter_Beep = 0
EndIf
Case 12
If StringMid($b, 1, 1)="1" Then
$meter_F = 1
Else
$meter_F = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_Ohm = 1
Else
$meter_Ohm = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_REL = 1
Else
$meter_REL = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_Hold = 1
Else
$meter_Hold = 0
EndIf
Case 13
If StringMid($b, 1, 1)="1" Then
$meter_A = 1
Else
$meter_A = 0
EndIf
If StringMid($b, 2, 1)="1" Then
$meter_V = 1
Else
$meter_V = 0
EndIf
If StringMid($b, 3, 1)="1" Then
$meter_Hz = 1
Else
$meter_Hz = 0
EndIf
If StringMid($b, 4, 1)="1" Then
$meter_Batt = 1
Else
$meter_Batt = 0
EndIf
Case 14
If StringMid($b, 2, 1)="1" Then
$meter_C = 1
Else
$meter_C = 0
EndIf
EndSwitch
; ConsoleWrite("$meter_AC="&$meter_AC&" $meter_DC="&$meter_DC&" $meter_AUTO="&$meter_AUTO&" $meter_RS232="&$meter_RS232&@CRLF&@CRLF)
; ConsoleWrite("$meter_Minus="&$meter_Minus&" $meter_4e="&$meter_4e&" $meter_4f="&$meter_4f&" $meter_4a="&$meter_4a&" $meter_4d="&$meter_4d&" $meter_4c="&$meter_4c&" $meter_4g="&$meter_4g&" $meter_4b="&$meter_4b&@CRLF&@CRLF)
; ConsoleWrite("$meter_P3="&$meter_P3&" $meter_3e="&$meter_3e&" $meter_3f="&$meter_3f&" $meter_3a="&$meter_3a&" $meter_3d="&$meter_3d&" $meter_3c="&$meter_3c&" $meter_3g="&$meter_3g&" $meter_3b="&$meter_3b&@CRLF&@CRLF)
; ConsoleWrite("$meter_P2="&$meter_P2&" $meter_2e="&$meter_2e&" $meter_2f="&$meter_2f&" $meter_2a="&$meter_2a&" $meter_2d="&$meter_2d&" $meter_2c="&$meter_2c&" $meter_2g="&$meter_2g&" $meter_2b="&$meter_2b&@CRLF&@CRLF)
; ConsoleWrite("$meter_P1="&$meter_P1&" $meter_1e="&$meter_1e&" $meter_1f="&$meter_1f&" $meter_1a="&$meter_1a&" $meter_1d="&$meter_1d&" $meter_1c="&$meter_1c&" $meter_1g="&$meter_1g&" $meter_1b="&$meter_1b&@CRLF&@CRLF)
; ConsoleWrite("$meter_u="&$meter_u&" $meter_n="&$meter_n&" $meter_K="&$meter_K&" $meter_Diode="&$meter_Diode&" $meter_m="&$meter_m&" $meter_Percent="&$meter_Percent&" $meter_Mega="&$meter_Mega&" $meter_Beep="&$meter_Beep&@CRLF&@CRLF)
; ConsoleWrite("$meter_F="&$meter_F&" $meter_Ohm="&$meter_Ohm&" $meter_REL="&$meter_REL&" $meter_Hold="&$meter_Hold&" $meter_A="&$meter_A&" $meter_V="&$meter_V&" $meter_Hz="&$meter_Hz&" $meter_Batt="&$meter_Batt&" $meter_C="&$meter_C&@CRLF&@CRLF&@CRLF)
EndFunc ;==>IntToBin
Func ProcessDigit($segA=0,$segB=0,$segC=0,$segD=0,$segE=0,$segF=0,$segG=0)
Local $Digit=""
If $segF & $segA & $segB & $segC & $segD & $segE = "111111" Then ;Проверяем 8,0
If $segG="1" Then
$Digit=8
Return $Digit
Else
$Digit=0
Return $Digit
EndIf
EndIf
If $segB & $segC = "11" Then ;Проверяем 9,3,7,4,1
If $segA = "1" Then
If $segG = "1" Then
If $segD = "1" Then
If $segF = "1" Then
$Digit=9
Return $Digit
Else
$Digit=3
Return $Digit
EndIf
EndIf
Else
$Digit=7
Return $Digit
EndIf
Else
If $segG & $segF = "11" Then
$Digit=4
Return $Digit
Else
$Digit=1
Return $Digit
EndIf
EndIf
EndIf
If $segA & $segB & $segG & $segE & $segD = "11111" Then ;Проверяем 2
$Digit=2
Return $Digit
EndIf
If $segA & $segF & $segG & $segC & $segD = "11111" Then ;Проверяем 5,6
If $segE = "1" Then
$Digit=6
Return $Digit
Else
$Digit=5
Return $Digit
EndIf
EndIf
If $segF & $segE & $segD = "111" Then ;Проверяем L и 0L
$Digit="L"
Return $Digit
EndIf
$Digit=-1
Return $Digit
EndFunc
Func UpdateDisplay()
Local $Value=""
Local $Dig3=""
Local $Dig2=""
Local $Dig1=""
Local $Dig0=""
;Process the first digit
$Dig3 = ProcessDigit($meter_4a,$meter_4b,$meter_4c,$meter_4d,$meter_4e,$meter_4f,$meter_4g)
;Process the second digit
$Dig2 = ProcessDigit($meter_3a,$meter_3b,$meter_3c,$meter_3d,$meter_3e,$meter_3f,$meter_3g)
;Process the third digit
$Dig1 = ProcessDigit($meter_2a,$meter_2b,$meter_2c,$meter_2d,$meter_2e,$meter_2f,$meter_2g)
;Process the fourth digit
$Dig0 = ProcessDigit($meter_1a,$meter_1b,$meter_1c,$meter_1d,$meter_1e,$meter_1f,$meter_1g)
;ConsoleWrite("$Dig3="&$Dig3&" $Dig2="&$Dig2&" $Dig1="&$Dig1&" $Dig0="&$Dig0&@CRLF)
If $Dig2&$Dig1="0L" Then
;!!BAD DIGIT!!
$Value = "OL"
GUICtrlSetImage($Gif0,@ScriptDir & "\Images\Blank.gif")
GUICtrlSetImage($Gif1,@ScriptDir & "\Images\Blank.gif")
GUICtrlSetImage($Gif2,@ScriptDir & "\Images\ZeroDot.gif")
GUICtrlSetImage($Gif3,@ScriptDir & "\Images\L.gif")
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\Blank.gif")
UpdateSymbols()
Else
;Calculate the value
$Value = Int($Dig3 & $Dig2 & $Dig1 & + $Dig0)
If $meter_P3 = 1 Then
$Value = $Value/1000
ElseIf $meter_P2 = 1 Then
$Value = $Value/100
ElseIf $meter_P1 = 1 Then
$Value = $Value/10
If $meter_Minus = 1 Then
$Value = -1
EndIf
EndIf
;Update the graphic display
UpdateDigit($Gif1, $Dig3, $meter_P3) ;позиция,знач цифра,точка
UpdateDigit($Gif2, $Dig2, $meter_P2)
UpdateDigit($Gif3, $Dig1, $meter_P1)
UpdateDigit($Gif4, $Dig0, 0)
;Check the status of the battery
If $meter_Minus=1 Then
GUICtrlSetImage($Gif0,@ScriptDir & "\Images\Bar.gif")
Else
GUICtrlSetImage($Gif0,@ScriptDir & "\Images\Blank.gif")
EndIf
UpdateSymbols()
;Check the status of the battery
If $meter_Batt = 1 Then
$StringFile = @ScriptDir & "\Images\battBad.gif"
Else
;If batteryStatus()="ok" Then
; $StringFile = @ScriptDir & "\Images\battGood.gif"
;Else
;$StringFile = @ScriptDir & "\Images\BattYellow.gif"
;EndIf
;ElseIf Then
;Update the global reading value display
;currentReading($value)
;Update the statistics
;updateStats()
;Service the data recorder
;recorderService()
EndIf
EndIf
EndFunc
Func UpdateDigit($digitNum, $digitValue, $digitPoint)
Local $StringFile = ""
If $digitValue < 0 Then
$StringFile = @ScriptDir & "\Images\Blank.gif"
Return
EndIf
Switch $digitValue
Case 0
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\ZeroDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Zero.gif"
EndIf
Case 1
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\OneDot.gif"
Else
$StringFile = @ScriptDir & "\Images\One.gif"
EndIf
Case 2
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\TwoDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Two.gif"
EndIf
Case 3
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\ThreeDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Three.gif"
EndIf
Case 4
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\FourDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Four.gif"
EndIf
Case 5
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\FiveDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Five.gif"
EndIf
Case 6
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\SixDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Six.gif"
EndIf
Case 7
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\SevenDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Seven.gif"
EndIf
Case 8
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\EightDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Eight.gif"
EndIf
Case 9
If $digitPoint>0 Then
$StringFile = @ScriptDir & "\Images\NineDot.gif"
Else
$StringFile = @ScriptDir & "\Images\Nine.gif"
EndIf
Case "L"
$StringFile = @ScriptDir & "\Images\L.gif"
Case Else
$StringFile = @ScriptDir & "\Images\Bar.gif"
EndSwitch
GUICtrlSetImage($digitNum,$StringFile)
EndFunc
Func UpdateSymbols()
Local $meter
Local $meterImages
Local $units
Local $currentMode
;Temperature Mode
If $meter_C=1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\degreesC.gif")
$units = "C"
$currentMode = "Temperature"
Return
EndIf
;Resistance Mode
If $meter_Ohm = 1 Then
If $meter_Mega = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\megaOhm.gif")
ElseIf $meter_K = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\kiloOhm.gif")
Else
If $meter_Beep = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\ohmBuzz.gif")
Else
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\ohmBuzz.gif")
EndIf
$units = "Ohm"
EndIf
$currentMode = "Resistance"
Return
EndIf
;Voltage Mode
If $meter_V = 1 Then
If $meter_AC Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\VAC.gif")
$units = "V (AC)"
$currentMode = "AC Voltage"
ElseIf $meter_DC = 1 Then
If $meter_m = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\mVDC.gif")
$units = "mV (DC)"
Else
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\VDC.gif")
$units = "V (DC)"
EndIf
ElseIf $meter_Diode = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\diodeV.gif")
$units = "V (Diode)"
$currentMode = "DC Voltage"
EndIf
Return
EndIf
;Capacitance mode
If $meter_F = 1 Then
If $meter_n = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\nanoFarad.gif")
$units = "nF"
ElseIf $meter_u = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\microFarad.gif")
$units = "uF"
EndIf
$currentMode = "Capacitance"
Return
EndIf
;Frequency mode
If $meter_Hz = 1 Then
If $meter_K = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\kiloHz.gif")
$units = "kHz"
ElseIf $meter_Mega = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\megaHz.gif")
$units = "MHz"
Else
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\Hz.gif")
$units = "Hz"
EndIf
$currentMode = "Frequency"
Return
EndIf
;Duty Cycle
If $meter_Percent = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\percent.gif")
$units = "%"
$currentMode = "Duty Cycle"
Return
EndIf
;Current mode
If $meter_A = 1 Then
If $meter_AC = 1 Then
If $meter_u = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\uAAC.gif")
$units = "uA (AC)"
$currentMode = "AC Current (uA)"
ElseIf $meter_m = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\maAC.gif")
$units = "mA (AC)"
$currentMode = "AC Current (mA)"
Else
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\aAC.gif")
$units = "A (AC)"
$currentMode = "AC Current (A)"
EndIf
ElseIf $meter_DC = 1 Then
If $meter_u = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\uADC.gif")
$units = "uA (DC)"
$currentMode = "DC Current (uA)"
ElseIf $meter_m = 1 Then
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\maDC.gif")
$units = "mA (DC)"
$currentMode = "DC Current (mA)"
Else
GUICtrlSetImage($Gif5,@ScriptDir & "\Images\aDC.gif")
$units = "A (DC)"
$currentMode = "DC Current (A)"
EndIf
EndIf
Return
EndIf
EndFunc