Springen naar inhoud


- - - - -
VS 2010 SOLVED

Snelheid Inlezen Data Via Serial Port?

VS2010 Data Serial Port

  • Log in a.u.b. om te beantwoorden
Er zijn 6 reacties in dit onderwerp

#1 Magellan

Magellan

    Starting Developer

  • Leden
  • 6 berichten
    Laatst bezocht 20 dec 2015 12:32
  • LocatieComines

Geplaatst op 31 augustus 2013 - 08:45

Hallo iedereen.
Ik ben nieuw op deze lijst. Ook is het nu een 12-tal jaren geleden dat ik met VB bezig was. :-(
Om data in te lezen van een "interval-meter" (in AVR Bascom) gebruikte ik de 9-pens seriële poort. Dat ging via VB6 en MSComm1.input enz..

Met die intervalmeter meet ik de periode(in µSec) van zeer lage frequenties, wat nauwkeuriger is dan frequentiemeting.
Nu gaat Rx/Tx via tutorial  " USB en "Serial Port Interfacing met VB.net 2010. "
Ik vul een rtbBox met de binnenkomende data. Op het eerste zicht gaat dit goed, maar zo nu en dan zijn er lege plaatsen, alsof VB tekort komt
in snelheid. Bedoeling is een array te vullen, dan het gemiddelde berekenen en een grafiekje te plotten. Maar lege plaatsen zijn nefast.
Heb testgenerator gemaakt op 20 Hz. Zou moeten gaan tussen 100Hz en 0,01Hz (10.000 - 100.000.000 µsec). Lager dan 20Hz heb
ik echter nog niet geprobeerd.

Visual Basic Code:
Private Sub ReceivedText(ByVal [text] As String)

'Dim time(500) As Integer
'Dim i, som As Integer
'i = i + 1
If Me.lblReceived.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.rtbReceived.Text &= [text]
'time(i) = CInt(text)
'som = som + time(i)
'lblGemiddelde.Text = CStr(som / i) & " " & i
End If
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

'automatically called every time a data is received at the serial Port
ReceivedText(SerialPort1.ReadExisting()

End Sub

Veranderd door RedThread, 04 september 2013 - 13:48.
A.u.b. de volgende keer codes tussen de juiste tags plaatsen, is voor nu aangepast.


#2 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4382 berichten
    Laatst bezocht 11 aug 2018 16:12
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 31 augustus 2013 - 17:15

Citeren

Ik vul een rtbBox met de binnenkomende data. Op het eerste zicht gaat dit goed, maar zo nu en dan zijn er lege plaatsen, alsof VB tekort komt
in snelheid
Vermoedelijk zit je dan nog iets te hoog in je frequenties.

#3 Magellan

Magellan

    Starting Developer

  • Leden
  • 6 berichten
    Laatst bezocht 20 dec 2015 12:32
  • LocatieComines

Geplaatst op 02 september 2013 - 08:36

Hallo

Citeren

iets te hoog in je frequenties
Momenteel kan ik niet lager, wel hoger.

Maar dat verwondert mij wel dat het niet sneller kan (een telexmachine kon sneller).
Ik zal mijn testopstelling moeten veranderen, en dat kan nog even duren. Ik heb i+1 eens geplaatst voor ReceivedText(SerialPort1.ReadExisting() om te controleren of er wel degelijk : "automatically called every time a data is received at the serial Port  ".

En inderdaad het textvak wordt mooi opgevuld zonder maar één plaats over te laten.
Voor mij zijn verschillende termen nieuw zoals invoke.

Ik moet dringend mijn leerboek hernemen (VB2005).

#4 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 16 aug 2018 11:34
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 04 september 2013 - 13:47

Bericht bekijkenMagellan, op 02 september 2013 - 08:36, zei:

     Ik moet dringend mijn leerboek hernemen (VB2005).

Maak daar ondertussen maar 2012 van ;)

#5 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1052 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 04 september 2013 - 13:52

Bericht bekijkenRedThread, op 04 september 2013 - 13:47, zei:

Maak daar ondertussen maar 2012 van ;)
Of nog beter: Visual Studio 2013

#6 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 16 aug 2018 11:34
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 04 september 2013 - 13:57

Bericht bekijkenDirk Andries, op 04 september 2013 - 13:52, zei:

Of nog beter: Visual Studio 2013

Ik denk niet dat je daar al boeken van kunt kopen. Het gaat zo al snel genoeg... ;)

#7 Magellan

Magellan

    Starting Developer

  • Leden
  • 6 berichten
    Laatst bezocht 20 dec 2015 12:32
  • LocatieComines

Geplaatst op 04 september 2013 - 17:02

Heb VB2012express geïnstalleerd èn meteen geregistreerd.
Ook het leerboek voor 2012 van Douglas Bell besteld.
Het gaat inderdaad al snel genoeg.
Ik zal toch niet ieder jaar een nieuw boek moeten kopen :-| .
Bedankt toch voor de tip.
Om verder te spreken over de code: bij debuggen (F7) bevat "text" soms meer dan 1 meting.
Moest ik nu werken met een Function en Return i.p.v. een Sub op lijn 01 ? t'Is alsof Private Sub ReceivedText niet mee kan met Private Sub SerialPort1_DataReceived . Of is dat een te amateuristisch idee :idea:?





Ook met taq VS 2010 SOLVED, VS2010, Data, Serial, Port voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2010 SOLVED] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)