Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19797

Re: Popolare datagridview da rs232

Newsgroups it.comp.lang.visual-basic
Date 2020-06-03 03:49 -0700
References (7 earlier) <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> <rb7ufh$16rt$1@gioia.aioe.org>
Message-ID <e6aca18e-af41-4e2d-a698-62290e43c795@googlegroups.com> (permalink)
Subject Re: Popolare datagridview da rs232
From Marco75 <marcoporzi75@gmail.com>

Show all headers | View raw


Il giorno mercoledì 3 giugno 2020 12:36:36 UTC+2, RobertoA ha scritto:
> 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

io ho a disposizione Hyperterminal Putty non so se può fare le stesse cose... L'azienda non mi permette l'uso di software anche free che si installano sui PC, se ce n'è uno che non va installato ma lanciato direttamente posso provare... in ogni caso io i dati li ricevo, credo sia solo una questione di modificare il codice che li riceve, ora uso un timer, magari sbaglio lì

Back to it.comp.lang.visual-basic | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

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