'MScomm 6 'Common Dialog 6 'Timer Option Explicit Dim bLoad As Boolean 'Reset Max/Min ved strart Dim dMinVolt As Double 'Min Volt Dim dMaxVolt As Double 'Max Volt Dim bDone As Boolean 'Plukket ut Volt Dim sStartTime As String 'klokkeslett ved start Dim dStartTid As Double 'timer ved start Dim dTid As Double 'sekunder fra start Dim lForrige As Long Dim sInnString As String 'String fra Fluke 45 'LF = Chr$(10) (Line Feed) 'CR = Chr$(13) (Carriage Return) Private Sub AutoLogg_Click() 'Starter Auto lesingen av Volt If AutoLogg.Value = 1 Then lForrige = dTid Call cmdReadVolt_Click End If End Sub Private Sub cmdReadVolt_Click() 'Sender request til Fluke 45 'for å sende ut til Fluke 45 MSComm1.Output = "Val1?" & Chr$(10) sInnString = "" bDone = False If dStartTid = 0 Then dStartTid = Timer Timer1.Enabled = True End If End Sub Private Sub cmdReset_Click() 'Resetter Min/Max dMinVolt = lblVolt.Caption dMaxVolt = lblVolt.Caption lblMin.Caption = dMinVolt lblMax.Caption = dMaxVolt Call WriteData End Sub Private Sub Form_Load() 'Laster inn 'Åpner comport 1 If MSComm1.PortOpen = True Then MSComm1.PortOpen = False MSComm1.PortOpen = True 'Resetter variabler sInnString = "" sStartTime = 0 dStartTid = 0 dTid = 0 lForrige = 0 dMinVolt = 0 dMaxVolt = 0 bDone = False bLoad = False 'Leser fra Fluke 45 Call cmdReadVolt_Click End Sub Private Sub MSComm1_OnComm() Dim nInnNumber As Integer Dim sInnTein As String Dim IntTmp As Integer Dim sExponent As String Dim dExponent As Double Dim sFaktor As String Dim dFaktor As Double Dim SearchString As String Dim SearchChar As String Dim MyPos As Integer Dim dTall As Double Dim dVolt As Double 'Data fra Fluke 45 If MSComm1.CommEvent = comEvReceive Then sInnTein = MSComm1.Input 'Bit fra Fluke 45 sInnString = sInnString + sInnTein 'Setter bit til string If sInnTein = Chr$(10) And bDone = False Then 'Viss linje skift tar ut volt If sInnTein = ">" Then 'Viss det skjer ein error bDone = True MsgBox "Try again, an error occured", vbExclamation, "Error" End If IntTmp = Len(sInnString) 'Lengden på InnString sFaktor = Mid(sInnString, 2, IntTmp - 6) 'Henter ut Faktor SearchString = sInnString ' String to search in. SearchChar = "E" ' Search for "E". MyPos = InStr(1, SearchString, SearchChar, 1) 'Posisjon til E sExponent = Mid(sInnString, MyPos + 1, 2) 'Exponent dExponent = Val(sExponent) 'Gjer om til nummer dFaktor = Val(sFaktor) 'Gjer om til nummer dVolt = dFaktor * (10 ^ dExponent) 'Ganger Faktor med Exponent for å få Volt lblVolt.Caption = dVolt 'Display Volt If bLoad = False Then 'Første gang reset Max/Min 'Leser fra Fluke 45 Call cmdReset_Click bLoad = True End If If dVolt > dMaxVolt Then dMaxVolt = dVolt 'Setter Max If dVolt < dMinVolt Then dMinVolt = dVolt 'Sette Min lblMin.Caption = dMinVolt 'Display Min Volt lblMax.Caption = dMaxVolt 'Display Max Volt bDone = True 'Funnet Volt Call WriteData 'Skriver til LogFile End If End If End Sub Private Sub Timer1_Timer() 'Timeren til AutoLog If Timer - dStartTid + 2 < dTid Then dStartTid = dStartTid - 86400 End If dTid = Round(Timer - dStartTid, 1) If AutoLogg.Value = 1 And lForrige + Val(txtReadInt.Text) <= dTid Then 'Viss Autolog er sett på lForrige = dTid Call cmdReadVolt_Click 'Sender request til Fluke 45 End If End Sub Private Sub WriteData() Dim skrives As String 'Variabel skrives til hver linje i filen 'Set CancelError is True Dialog.CancelError = True On Error GoTo ErrHandler Dialog.Flags = cdlOFNPathMustExist + cdlOFNOverwritePrompt 'Åpner filen for skriving 'Dialog.ShowSave Open Dialog.FileName For Output As #1 'Åpner VoltLog.txt skrives = "Last Voltage: " & lblVolt.Caption & Chr$(10) & "Max Voltage: " & lblMax.Caption & Chr$(10) & "Min Voltage: " & lblMin.Caption Print #1, skrives 'Skriver til filen 'lukker filen Close #1 'user pressed the Cancel button ErrHandler: Close #1 Exit Sub End Sub