Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19796
| From | RobertoA <amorosik@tiscalinet.it> |
|---|---|
| Newsgroups | it.comp.lang.visual-basic |
| Subject | Re: Popolare datagridview da rs232 |
| Date | 2020-06-03 12:51 +0200 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <rb7ufh$16rt$1@gioia.aioe.org> (permalink) |
| References | (6 earlier) <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> <937572c5-a043-4091-b7b9-172cacf34b97@googlegroups.com> |
Il 03/06/2020 09:58, Marco75 ha scritto: > 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... > Dovresti provare con altro programma un po' piu' flessibile, tipo RealTerm o simili Ti possono far vedere i dati anche in binario o esadecimale Cosi' vedi esattamente cosa manda a fine riga, se un car 13, un 10, l'accoppiata dei due o altro E da quello che spara fuori la bilancia poi dipende il software che riceve cosa deve attendersi per chiudere una riga in lettura
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