Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19795
| Newsgroups | it.comp.lang.visual-basic |
|---|---|
| Date | 2020-06-03 00:58 -0700 |
| References | (5 earlier) <1peq5cnjms2fb$.ljcv00sqiioj.dlg@40tude.net> <5e598f4a-26c6-4831-8e78-4e43255bd8b3@googlegroups.com> <ranjh5$ql3$1@gioia.aioe.org> <4a49b697-09bc-4112-bb2f-71f573e2dab4@googlegroups.com> <5dff9228-de0c-4562-96ff-690d31add42a@googlegroups.com> |
| Message-ID | <937572c5-a043-4091-b7b9-172cacf34b97@googlegroups.com> (permalink) |
| Subject | Re: Popolare datagridview da rs232 |
| From | Marco75 <marcoporzi75@gmail.com> |
Il giorno lunedì 1 giugno 2020 23:28:14 UTC+2, BobM ha scritto:
> Il giorno giovedì 28 maggio 2020 08:17:38 UTC+2, Marco75 ha scritto:
> > Il giorno giovedì 28 maggio 2020 07:51:36 UTC+2, RobertoA ha scritto:
> > > Il 27/05/2020 18:12, Marco75 ha scritto:
> > > > Il giorno mercoledì 27 maggio 2020 18:01:59 UTC+2, Andrea (Work) ha scritto:
> > > >> Il Wed, 27 May 2020 02:46:01 -0700 (PDT), Marco75 ha scritto:
> > > >>
> > > >>> dopo l'apertura della porta COM ho messo questo:
> > > >>>
> > > >>> DgvDati.Select() 'Seleziono il DataGridView With DgvDati
> > > >>> '.Rows(.Rows.Count - 1).Cells(0).Value =
> > > >>> DgvDati.Rows.IndexOf(CounterSample.ToString) .Rows(.Rows.Count -
> > > >>> 1).Cells(1).Value = SerialPort.ReadLine .Rows.Add() End With
> > > >>>
> > > >>> nella prima riga ho tentato di inserire un contatore nella seconda leggo
> > > >>> il dato ma non va a capo e sembra bloccarsi quando invio altri dati
> > > >>> dalla bilancia... grazie
> > > >>
> > > >> Io metterei i dati in una list of MIA CLASSE, che popolerai quando arrivano
> > > >> dati dalla COM.
> > > >> Poi la griglia visualizza questa lista.
> > > >>
> > > >> A quel punto mettere una colonna con un numero, e una con il testo è molto
> > > >> semplice.
> > > >
> > > > grazie, domani e venerdì sono in smart working e non posso connettermi alla bilancia per eseguire test. Lo proverò martedì e ti faccio sapere
> > > > Marco
> > > >
> > >
> > > Ci sono dei programmi che puoi usare per creare una porta com virtuale
> > > Tu ci scrivi con un emulatore terminale e la porta virtuale e' connessa
> > > alla porta com fisica
> > > Il pc vede i dati arrivare sulla com della bilancia
> > > Eltima e' la prima che mi viene in mente ma anche su sourgeforce c'e'
> > > roba utile per questo
> >
> > L'azienda non concede l'installazione di programmi esterni anche free comunque mi sono lasciato tutti gli aspetti grafici per lo smart working poi mercoledì tornerò a concentrarmi sul test dei dati.
> > detto ciò sono riuscito a far funzionare l'acquisizione dati mettendo questo codice sotto timer. il problema è che ricevo i pesi ma si blocca tutto il resto del form ad esempio il pulsante di uscita e quello di disconnessione!
> >
> > Private Sub TimerRicevi_Tick(sender As Object, e As EventArgs) Handles TimerRicevi.Tick
> >
> > DgvDati.Rows.Add(DgvDati.CurrentRow.Index + 1.ToString, SerialPort.ReadLine)
> > DgvDati(0, DgvDati.NewRowIndex).Selected = True
> >
> > End Sub
>
> Ciao,
> com'e' fatto il protocollo della bilancia? Sei sicuro che la stringa di peso sia terminata con un carattere di NewLine?
> Se guardi la documentazione dice che la Readline legge fino a quando non incontra un carattere di NewLine.
> Può essere che alla prima lettura il readline resti appeso e ti blocchi la UI del programma, in attesa del terminatore NewLine che non arriva.
>
>
> https://docs.microsoft.com/it-it/dotnet/api/system.io.ports.serialport.readline?view=netframework-4.8
>
> Qui trovi un esempio che mi sembra abbastanza corretto, in particolare il metodo 2 citato, ma dovresti cambiare approccio, usando gli eventi del SerialPort:
> https://stackoverflow.com/questions/21688818/net-serialport-readline-vs-datareceived-event-handler/21689420
>
> Ps: Attenzione che gli eventi arrivano su un thread diverso da quello della UI,
> cerca come va usato il metodo InvokeRequired.
ho provato così (SerialPortBil è il nome della mia seriale):
Public Sub StartListener()
Try
'_SerialPort = New Ports.SerialPort
SerialPortBil = New Ports.SerialPort
With SerialPortBil
.PortName = CbSerialPort.Text
.BaudRate = 9600
.DataBits = 8
.Parity = Ports.Parity.None
.StopBits = Ports.StopBits.One
.Handshake = Ports.Handshake.None
AddHandler .DataReceived, AddressOf SerialPortBil_DataReceived 'DataReceivedHandler
End With
SerialPortBil.Open()
'_SerialPort.Open()
Catch ex As Exception
End Try
End Sub
Private Shared buffer As String = ""
Private Sub SerialPortBil_DataReceived(sender As Object, e As Ports.SerialDataReceivedEventArgs) Handles SerialPortBil.DataReceived
DgvDati.Rows.Add(DgvDati.CurrentRow.Index + 1.ToString, SerialPort.ReadLine)
End Sub
sul pulsante di apertura COM ho messo
SerialPortBil.Open()
non vedo arrivare alcun dato...
provando con un hyperterminal vedo che la bilancia invia il dato poi va a capo...
Back to it.comp.lang.visual-basic | Previous | Next — Previous in thread | Next in thread | Find similar
Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-26 10:26 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-05-27 08:04 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-26 23:18 -0700
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-26 23:21 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-05-27 08:46 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-27 02:46 -0700
Re: Popolare datagridview da rs232 "Andrea (Work)" <andrea.isworkDELETEME@gmail.invalid> - 2020-05-27 18:01 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-27 09:12 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-05-28 08:06 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-05-27 23:17 -0700
Re: Popolare datagridview da rs232 "Andrea (Work)" <andrea.isworkDELETEME@gmail.invalid> - 2020-05-30 10:17 +0200
Re: Popolare datagridview da rs232 BobM <dbtools@email.it> - 2020-06-01 14:28 -0700
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-03 00:58 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-06-03 12:51 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-03 03:49 -0700
Re: Popolare datagridview da rs232 logica mente <npaolini_no_spam_@ennepisoft.it> - 2020-06-03 14:25 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-03 05:57 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-06-03 16:34 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-03 07:21 -0700
Re: Popolare datagridview da rs232 RobertoA <amorosik@tiscalinet.it> - 2020-06-03 15:42 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-03 06:57 -0700
Re: Popolare datagridview da rs232 Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2020-06-03 18:57 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-04 04:49 -0700
Re: Popolare datagridview da rs232 Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2020-06-04 21:47 +0200
Re: Popolare datagridview da rs232 Marco75 <marcoporzi75@gmail.com> - 2020-06-04 23:12 -0700
csiph-web