/ / Vrátenie sériového pripojenia - vb.net, sériový port, návrat kariet

Sériové prepojenie návratu vozíka - vb.net, sériový port, vozík-návrat

Vytváram aplikáciu typu HyperTerminal vo VB.NET a máte problém so sériovým pripojením. Keď posielam dáta do zariadenia, dostanem odpoveď, ktorú očakávam, ale s ďalšou CR v odpovedi. Napr. Ak posielam príkaz v Hyperterminalu, dostanem odpoveď ako napr.

response one
response two

Ale v mojej aplikácii sa vráti;

response one

response two

Kód je nasledujúci;

Private Sub textSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles textSend.KeyPress

If e.KeyChar = Convert.ToChar(Keys.Enter) Then

connSerial.Write(textSend.Text & vbCr)
textSend.Text = ""

e.Handled = True

End If

End Sub

a

Private Sub connSerial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles connSerial.DataReceived
ReceivedText(connSerial.ReadExisting())
End Sub
Private Sub ReceivedText(ByVal [text] As String)
If Me.textReply.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
textReply.AppendText([text])
End If

End Sub

Používam rýchlosť 1200 baudov a doslova každá linka je oddelená iným, avšak ak budem prenosová rýchlosť 57600, stane sa len príležitostne. tj;

response 1
response 2
response 3

response 4
response 5

odpovede:

0 pre odpoveď č. 1

Môžete použiť WriteLine Method namiesto Write Method

   If e.KeyChar = Convert.ToChar(Keys.Enter) Then
connSerial.WriteLine(textSend.Text & vbCr)
textSend.Clear();
e.Handled = True
End If