Buenas, estoy realizando una aplicacion en vb.net (ya me voy a pasar a c#) para conectarme con un uC por un virtual serial port.
Para enviar un byte (comando) uso este código:
Private Sub SendCommand(ByVal command() As Byte)
Dim response As Byte
Try
myComPort.Write(command, 0, 1)
response = myComPort.ReadByte
Catch ex As TimeoutException
MessageBox.Show(ex.Message)
Catch ex As InvalidOperationException
MessageBox.Show(ex.Message)
Catch ex As UnauthorizedAccessException
MessageBox.Show(ex.Message)
End Try
End Sub
Para poder enviar un byte bien, tengo que usar ese método, en donde paso un array de byte al metodo myComPort.Write. Si uso la forma Write(byte) y en byte tengo, por ejemplo el número 76, me envía el 7 y el 6. probe de mil formas y con write(byte) no lo pude hacer funcionar. En cambio con write(byte(), start, cantidad) si me anda.
Bueno, al presionar un boton de comando tengo esto:
Private Sub btnG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnG.Click
Dim vIn As Char = "G"
Dim vOut(1) As Byte
vOut(0) = Convert.ToByte(vIn)
SendCommand(vOut)
End Sub
acá me pasa lo mismo, si no declaro vIn como char y quiero hacer directamente vOut(0) = Convert.ToByte("G") me dice que el parametro ("G") no es del tipo esperado...
Como ven tengo problemas con la conversion de tipos... como puedo simplificar el código del botón de comando?
Saludos!