急产生多条串口指令,实现有应答后即下发下一条指令

急!发生多条串口指令,实现有应答后即下发下一条指令?
本帖最后由 kprode 于 2014-03-11 10:53:23 编辑
如题  发生多条串口指令,有应答后即下发下一条指令,如果没有应答 延时两秒重新发送
      依然没有应答则终止发送  跳出发送失败


   '应答标识  有应答时为True
    Public Shared TI_Answer As Boolean = False
    Public Shared TR_Answer As Boolean = False
    Public Shared TG_Answer As Boolean = False
    Public Shared TA_Answer As Boolean = False
    Public Shared TM_Answer As Boolean = False

   '需要发送的指令
     mSend.RemoteOrder_Single(&H12)
     mSend.RemoteOrder_Single(&H18)
     mSend.RemoteOrder_Single(&H20)
     mSend.RemoteOrder_Single(&H30)
     mSend.RemoteOrder_Single(&H32)

   '延时
   Public Shared Sub Delay(ByVal Interval)
        Dim __time As DateTime = DateTime.Now
        Dim __Span As Int64 = Interval * 10000   '时间是以100纳秒为单位。   
        While (DateTime.Now.Ticks - __time.Ticks < __Span)
            Application.DoEvents()
        End While
    End Sub

------解决方案--------------------

    Private Sub SendData(ByVal sender As System.Object, ByVal e As System.EventArgs)
         '0x12
        For i As Integer = 0 To 2
            If i < 2 Then
                If Not Inverter.TI_Answer Then
                    mGK.RemoteSendBaseOrder_Single(&H12)
                    Sleep(2000)
                Else
                    Inverter.TI_Answer = False
                    Exit For
                End If
            Else
                MessageBox.Show("发送错误或无回应数据")
                Return
            End If
        Next
        '0x18
        For i As Integer = 0 To 2
            If i < 2 Then
                If Not Inverter.TR_Answer Then
                    mGK.RemoteSendBaseOrder_Single(&H18)
                    '暂停2s
                    Sleep(2000)
                Else
                    Inverter.TR_Answer = False
                    Exit For
                End If
            Else
                MessageBox.Show("发送错误或无回应数据")
                Return
            End If
        Next
        '0x20
        For i As Integer = 0 To 2
            If i < 2 Then