Cdice SerialPort non va

giovedì 16 ottobre 2008 - 10.48

almax Profilo | Junior Member

Salve eccomi di nuovo .. Ho tirato giu' questo codice per leggere da una seriale in automatico .. Direttamente nel buffer .. E' un centralino appena apro il programma vorrei che lui leggesse .... Questo il codice chi puo' aiutarmi ?

Imports System.IO.Ports
Imports System
Imports System.IO


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With SerialPort
.PortName = "com1"
.BaudRate = "9600"
.Parity = IO.Ports.Parity.None
.DataBits = "8"
.StopBits = IO.Ports.StopBits.One
End With
SerialPort.Open()
End Sub

Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
txtLeggi.Invoke(New myDelegate(AddressOf updateTextBox), New Object() {})


End Sub

Public Delegate Sub myDelegate()
Public Sub updateTextBox()
Dim InBuff As Byte
Dim str As String
With txtLeggi

InBuff = SerialPort.ReadLine
' str = System.Text.Encoding.Default.GetString(InBuff.ToString)

'.AppendText(SerialPort.ReadExisting)
'questa riga era una prova
.AppendText(InBuff)
.ScrollToCaret()
End With
End Sub

Private Sub esci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles esci.Click
Dim OpenFileDialog1 As New SaveFileDialog

OpenFileDialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
OpenFileDialog1.FileName = "controllo" + Date.Now.Day.ToString + "_" + Date.Now.Month.ToString + "_" + Date.Now.Year.ToString
'Viene visualizzata la finestra di dialogo
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
'Apre un file in scrittura,
Dim W As New IO.StreamWriter(OpenFileDialog1.FileName)

'Scrive tutto il contenuto della textbox nel file
W.Write(txtLeggi.Text)

'Chiude il file
W.Close()
End If


Me.Close()
End Sub
End Class



Vash Profilo | Junior Member

ma vuoi che legga in automatico all'apertura dell'applicazione o ogni volta che ricevi deti nel buffer avendo l'applicazione aperta?

se fosse all'apertura dell'applicazione li nell'evento onLoad dopo l'apertura della porta aggiungi miaVariabileStringa = SerialPort1.ReadExisting
se invece ti serve anche leggere ogni volta che ricevi dati nel buffer usa come hai fatto l'evento DataReceived ma non conosco bene il suo funzionamento.

ciao

almax Profilo | Junior Member

Ti spiego .. Vorrei che il programma sia sempre in ascolto .. Il device è un centralino con un buffer ..
Appena apro o collego il cavo mi dovrebbe tirare giu' cio' che è nel buffer .. Lasciando aperto il programma ogni volta che il buffer si carica il progr me lo scarica ...
Allora quello che ho scritto l'ho testato con una virtual port e legge .. Appena invio dalla virtual port lui riceve il carattere ...
Credo che il mio problema sia interagire con il buffer ...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5