frmSerial.MSComm1.Output = strCommand & Term 'Send command to instrument
If InStr(strCommand, "?") <> 0 Then 'Check to see if query
While (ZeroCount < 20) And (strHold <> Chr$(10)) 'Wait for response
If frmSerial.MSComm1.InBufferCount = 0 Then
'Add 1 to timeout if no character
frmSerial.Timer1.Enabled = True
Do
DoEvents 'Wait for 10 millisecond timer
Loop Until frmSerial.Timer1.Enabled = False
ZeroCount = ZeroCount + 1 'Timeout at 2 seconds
Else
ZeroCount = 0 'Reset timeout for each character
strHold = frmSerial.MSComm1.Input 'Read in one character
strReturn = strReturn + strHold 'Add next character to string
End If
Wend 'Get characters until terminators
If strReturn <> "" Then 'Check if string empty
strReturn = Mid(strReturn, 1, InStr(strReturn, Term) - 1) 'Strip terminators
Else
strReturn = "No Response" 'Send No Response
End If
frmSerial.txtResponse.Text = strReturn 'Put response in textbox on main
form
strHold = "" 'Reset holding string
ZeroCount = 0 'Reset timeout counter
End If
Loop
End Sub