急产生多条串口指令,实现有应答后即下发下一条指令
急!发生多条串口指令,实现有应答后即下发下一条指令?
如题 发生多条串口指令,有应答后即下发下一条指令,如果没有应答 延时两秒重新发送
依然没有应答则终止发送 跳出发送失败
------解决方案--------------------
如题 发生多条串口指令,有应答后即下发下一条指令,如果没有应答 延时两秒重新发送
依然没有应答则终止发送 跳出发送失败
'应答标识 有应答时为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