Red de conocimiento informático - Problemas con los teléfonos móviles - Problemas de procesamiento de datos de retorno de transmisión del puerto serie de VB.net

Problemas de procesamiento de datos de retorno de transmisión del puerto serie de VB.net

Usar procesamiento delegado:

Public?Class?Form1

Dim?mSTR?As?String

Dim?strData?As? Cadena

Dim?strDat?As?String

Dim?mRecvByte()?As?Byte

Dim?Hexsj?As?String

Dim?form2?As?Form

¿Privado?Objeto, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)?SerialPort1.BytesToRead

ReDim?mRecvByte(mSize?-? 1)

SerialPort1.Read(mRecvByte,?0,?mSize)

BeginInvoke(New?EventHandler(AddressOf?ONMLoadA),?SerialPort1.BytesToRead())? Mostrar la cadena recibida usando un delegado

End?Sub

Sub?ONMLoadA(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs) ? Delegado

strDat?=?""

TextBox1.Text?=?""

Dim?i?As?Integer

For?i?=?0?To?UBound(mRecvByte)?' mSize?-?1

strData?=?strData??"

Siguiente

Dim?sj?As?Byte

For?i?=?1?To?Len(strData)?' se trata como un carácter ASCII

sj?=?Val(" &H"?Mid(strData,?i,?2))

Si?sj?lt;?32?Or?sj?gt;?128?Entonces?'Cuando hay un Chr(0) en el byte recibido, los caracteres siguientes se cortan

strDat?=?strDat?

Else

strDat?=?strDat?amp ;?Chr(sj )

Fin?Si

Siguiente

TextBox1.Text?=?strDat?'Mostrar caracteres

TextBox2 .Text?=? strData?' se muestra como hexadecimal

TextBox3.Text?=?Len(strData)?/3

Fin?