Torna al Thread

Dim WithEvents serialPort As New IO.Ports.SerialPort Public Delegate Sub myDelegate() Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serialPort.DataReceived txtRisposta.Invoke(New myDelegate(AddressOf Ricevi), New Object() {}) End Sub Public Sub Ricevi() ReDim ArrMessaggioRicevuto(0) serialPort.ReadTimeout = 10 Try Do serialPort.Read(ArrMessaggioRicevuto, ArrMessaggioRicevuto.Length - 1, 1) ReDim Preserve ArrMessaggioRicevuto(ArrMessaggioRicevuto.Length) Loop Catch ex As Exception End Try If ArrMessaggioRicevuto.Length < 3 Then Exit Sub Else 'Dal loop di acquisizione, si esce con l'array più lungo del dovuto 'Va tolta l'ultima posizione, che tra l'altro sarà = 0 ReDim Preserve ArrMessaggioRicevuto(ArrMessaggioRicevuto.GetUpperBound(0) - 1) End If Dim s As String = "" For i As Integer = 0 To ArrMessaggioRicevuto.GetUpperBound(0) s &= ArrMessaggioRicevuto(i).ToString s &= ", " Next txtRisposta.Text = s Me.FlagRispostaRicevuta = True End Sub Private Sub SbrScrivi() Me.txtDomanda.Text = String.Empty Me.txtRisposta.Text = String.Empty Me.FlagRispostaRicevuta = False Try SerialPort.Write(ArrMessaggioDaInviare, 0, ArrMessaggioDaInviare.Length) Catch ex As Exception MessageBox.Show(ex.Message.ToString) End Try Dim s As String = "" For i As Integer = 0 To ArrMessaggioDaInviare.GetUpperBound(0) s &= ArrMessaggioDaInviare(i).ToString s &= ", " Next txtDomanda.Text = s End Sub Private Function FnzApriPortaSeriale() As Boolean If Me.cbbCOMPortsVersoHasler.SelectedIndex = -1 Then MessageBox.Show("Seleziona una porta") Exit Function End If If serialPort.IsOpen Then serialPort.Close() End If Try With serialPort .PortName = cbbCOMPortsVersoHasler.Text .BaudRate = 38400 .Parity = IO.Ports.Parity.None .DataBits = 8 .StopBits = IO.Ports.StopBits.One .Encoding = System.Text.Encoding.Default End With serialPort.Open() Return True Catch ex As Exception MsgBox(ex.ToString) Return False End Try End Function
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5