LEER DATOS DE BASCULA EN HYPERTERMINAL Y EN VISUAL BASIC
Publicado por
emilio (1 intervención) el 20/05/2022 02:48:44
Queta buenas tardes soy nuevo en el tema de basculas y quisiera saber si me podrian apoyar para poder tomar el peso de la bascula desde VB.NET que se actualice al momento de cambiar de peso. Lo tengo mediante un boton y un label peroo quisiera que fueses desde un textbox y en automatioc este es mi codigo que tengo si funciona la darle al boton pero si le doy de nuevo me dice que no hay comunicacio con el puerto o ya esta abierto.
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Forms
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
Public Delegate Sub puerto(ByVal accion As String)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
Try
SerialPort1 = New SerialPort("COM5", 9600, Parity.None, 8, StopBits.One)
SerialPort1.Handshake = Handshake.None
AddHandler SerialPort1.DataReceived, New SerialDataReceivedEventHandler(AddressOf sp_DataReceived)
SerialPort1.ReadTimeout = 500
SerialPort1.WriteTimeout = 500
SerialPort1.Open()
SerialPort1.Write("P")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Sub sp_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
If Me.Enabled = True Then
Thread.Sleep(500)
Dim data As String = SerialPort1.ReadExisting()
Me.BeginInvoke(New puerto(AddressOf si_DataReceived), New Object() {data})
End If
End Sub
Public Sub si_DataReceived(ByVal accion As String)
Label2.Text = accion
End Sub
Private Sub Form1_Load_1(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
End Sub
Public Sub pesar()
If SerialPort1.IsOpen Then
Try
SerialPort1 = New SerialPort("COM5", 9600, Parity.None, 8, StopBits.One)
SerialPort1.Handshake = Handshake.None
AddHandler SerialPort1.DataReceived, New SerialDataReceivedEventHandler(AddressOf sp_DataReceived)
SerialPort1.ReadTimeout = 500
SerialPort1.WriteTimeout = 500
SerialPort1.Open()
SerialPort1.Write("P")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
Try
SerialPort1 = New SerialPort("COM5", 9600, Parity.None, 8, StopBits.One)
SerialPort1.Handshake = Handshake.None
AddHandler SerialPort1.DataReceived, New SerialDataReceivedEventHandler(AddressOf sp_DataReceived)
SerialPort1.ReadTimeout = 500
SerialPort1.WriteTimeout = 500
SerialPort1.Open()
SerialPort1.Write("P")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
pesar()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
End Sub
End Class