Attribute VB_Name = "calMod"
Option Explicit

Public Const Programtitle As String = "pH_Cal"
Public Const Section As String = "CalData"
Public Const Asterisk As String = "*"
Public Const QuestionMark As String = "?"
Public Const Version As String = "1.0"

Public Const MOD1 As String = "1"
Public Const RD As String = "RD"
Public Const Dollar As String = "$"
Public Const AoFormat As String = "00000.00"

Public pHflag As Boolean
Public plot As Boolean
Public plot_time As Boolean
Public Const K As Double = 0.000198416
Public Const Kelvin As Double = 273.15

Public SN As String
Public Slope As Double
Public Offset As Double
Public mVout As Double
Public Vout As Double
Public pHvalue As Double
Public T As Double
Public CalDate As Date

Public Const DataFormat As String = "+00000.00;-00000.00"
Declare Function timeGetTime& Lib "WINMM.DLL" ()

Public Sub TX1(S As String)
If frmMain.MSComm1.PortOpen = True Then
    frmMain.MSComm1.Output = S
Else
    MsgBox "Port Not open", , "Port Failure"
End If
End Sub

Public Function RX1()
Dim A, B As String
Dim START As Integer
A = ""
START = 0
If frmMain.MSComm1.PortOpen = True Then
frmMain.MSComm1.InputLen = 1
    Wait 35
    While frmMain.MSComm1.InBufferCount > 0
        B = Chr(Asc(frmMain.MSComm1.Input) And &H7F)
        If (B = Asterisk) Or (B = QuestionMark) Then
            START = 1
            A = B
        Else
            If START = 1 Then A = A + B
        End If
    Wend
    If Right(A, 1) = Chr(13) Then
        RX1 = Left(A, Len(A) - 1)
    Else
        RX1 = "TIMEOUT"
    End If
End If
End Function

Public Sub Wait(TimeOut As Single)
    Dim WaitTime As Long
    WaitTime = Int(TimeOut) + timeGetTime()
    Do Until timeGetTime() >= WaitTime
    Loop
End Sub

Public Sub rdpH(address As String) 'address should = MOD6(pH-1) or MOD7(pH-2)
Dim ReadData As String
Dim senddata As String
Dim mVolts As String
Dim Result As Double
Dim Temp As Double
Dim c As Integer
Dim Index As Integer
On Error Resume Next

ReadData = Dollar & address & RD & vbCr
TX1 ReadData
ReadData = RX1
'frmMain.lblTemp.Caption = T

If Left(ReadData, 1) = Asterisk Then
    ReadData = Mid(ReadData, 3, 8)
    If ReadData = "" Then Exit Sub
            mVout = ReadData
            Vout = mVout / 1000
            frmMain.lblmV.Caption = mVout
            If plot = True Then
                If plot_time = True Then
                    frmMain.CWGraph1.Plots(1).ChartXvsY Time, mVout
                Else
                    frmMain.CWGraph1.Plots(1).ChartY mVout, 1
                End If
            End If
            'If plot = True Then frmMain.CWGraph1.Plots(1).ChartY mVout, 1
            'If plot = True Then frmMain.CWGraph1.Plots(1).ChartXvsY Time, mVout
            
            Temp = T + Kelvin
            Result = (Vout - Offset) / K / Slope / Temp + 7
            pHvalue = Round(Result, 4)
            frmMain.lblpH.Caption = pHvalue
Else
    MsgBox "NO VALID RETURN FROM pH MODULE"
    frmMain.cwbPh.Value = False
    Exit Sub
End If

End Sub

