Private Const strDLE As String = "16" Private Const strSTX As String = "2" Private Const strETX As String = "3" Private Const strENQ As String = "5" Private Const strACK As String = "6" Private Const strNAK As String = "21" Private Const lngACK1TimeOut As Long = 5L '10L Private Const lngACK2TimeOut As Long = 5L '10L Private Const lngENQTimeOut As Long = 20L '10L Private Const lngETXTimeOut As Long = 5L '10L Public Function Initialize() As Boolean Dim strMsg As String Dim bCont As Boolean = True Dim strResp As String Dim strRespAscii As String Dim strCmd As String Dim Cmd() As Byte Dim lngCurrent As Long Dim lngNow As Long Dim strAsciiTmp As String = String.Empty Dim strAsciiTmp2 As String = String.Empty Dim strFullAsciiTmp As String = String.Empty Dim strTmp As String = String.Empty Dim strTmpHex As String = String.Empty Dim strDataCondition As String = String.Empty Dim strTmpCnt As String = String.Empty Dim RespData2() As Byte Dim Idx As Integer = 0 Try objComPort.DiscardOutBuffer() objComPort.DiscardInBuffer() strResp = String.Empty strRespAscii = String.Empty objComPort.Write(cmdENQ, 0, cmdENQ.Length) bCont = True lngCurrent = DateTime.Now.Ticks Do While (objComPort.BytesToRead <= 0) lngNow = DateTime.Now.Ticks If (lngNow > (lngCurrent + (lngACK1TimeOut * lngTickCount))) Then bCont = False Exit Do End If Loop 'Mark 1 If (Not bCont) Then strMsg = "Error - Waiting ACK Timeout" Return False End If If (objComPort.BytesToRead > 0) And (bCont = True) Then Do While (objComPort.BytesToRead > 0) If (objComPort.ReadByte.ToString = strDLE) Then If (objComPort.ReadByte.ToString = strACK) Then strMsg = "Recv: (ACK) 10 06" Exit Do End If End If Loop End If Catch ex As Exception End Try End Function
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)