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


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

Re: Popolare datagridview da rs232

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>

Show all headers | View raw


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 | 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