Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hjälp med ojämn timer

Postades av 2010-09-24 00:08:10 - lennart arvidsson, i forum vb.net, Tråden har 6 Kommentarer och lästs av 2252 personer

Hjälp med ojämn timer

Jag försöker gjöra ett program som ska ta imot serie data från en mätgrej.
Datan skickas lite olika tex (8 byte) (pause 50ms) (6 byte) (pause 30ms) (12 byte) (pause 80ms) (6 byte)
med mitt program så funkar det ganska bra men i bland gör timern för stor pause så att jag får 14 byte istället för 6 och 8 stycken
Kan man få en timern att ge en mer exakt intervall ?
Finns det nån annan timer funktin som är mer någa ?
Eller finns det nåt annat sätt att gjöra mitt program ?

Public Class Form1

    Dim gammal_buf_storlek As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.PortName = "COM12"
        SerialPort1.BaudRate = 9600
        SerialPort1.Encoding = System.Text.Encoding.GetEncoding("Windows-1252")

        If SerialPort1.IsOpen = False Then
            SerialPort1.Open()
        End If

        Timer1.Interval = 15
        Timer1.Enabled = True

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim buf As String
        Dim ny_buf_storlek As Integer = SerialPort1.BytesToRead

        If ny_buf_storlek > 0 Then

            If ny_buf_storlek > gammal_buf_storlek Then
                gammal_buf_storlek = ny_buf_storlek
            Else
                buf = SerialPort1.ReadExisting
                ListBox1.Items.Add(buf)
            End If

        End If

    End Sub

End Class


Svara

Sv: Hjälp med ojämn timer

Postades av 2010-09-24 07:21:16 - Rickard Lindgren

Koppla på DataReceived-eventet för serieportkontrollen så säger serieporten till när du får data.


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


End Sub


Svara

Sv:Hjälp med ojämn timer

Postades av 2010-09-24 19:25:38 - Joakim Åhl

Jag har ett liknande problem. Men min fråga blir. hur gör man om man bara vill hämta data säg var 10 sec. Medan själva enheten skickar var 10ms.

Jag har med försökt med en timer. Ofan funkar det bra men efter ett tag börjar siffrorna bli fel. Då läsningen ser mitt i en bye.


Svara

Sv:Hjälp med ojämn timer

Postades av 2010-09-24 19:45:00 - lennart arvidsson

Tack för hjälpen jag googlade på SerialPort1_DataReceived och hittade ett exempel så jag prövade

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.PortName = "COM12"
        SerialPort1.BaudRate = 9600
        SerialPort1.Encoding = System.Text.Encoding.GetEncoding("Windows-1252")

        If SerialPort1.IsOpen = False Then
            SerialPort1.Open()
        End If

    End Sub

    Private Sub DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        ListBox1.BeginInvoke(New myDelegate(AddressOf updateListBox), New Object() {})
    End Sub

    Public Delegate Sub myDelegate()

    Public Sub updateListBox()
        Dim buf As String
        Dim HEX_data As String

        buf = SerialPort1.ReadExisting
        ListBox1.Items.Add(buf & "     " & buf.Length)

    End Sub

End Class


men det blir ungefär samma resultat i stället för tex 8 bytes på varje rad får jag 7 och sen nästa rad 1






Svara

Sv: Hjälp med ojämn timer

Postades av 2010-09-25 05:39:04 - Sven Åke Persson

<b>Timer1.Interval = 15</b>
<b>(8 byte) (pause 50ms) (6 byte) (pause 30ms) (12 byte) (pause 80ms) (6 byte)
med mitt program så funkar det ganska bra men i bland gör timern för stor pause
så att jag får 14 byte istället för 6 och 8 stycken.
Kan man få en timern att ge en mer exakt intervall ? </b>

Om du använder den gamla standard Timern från VB tiden
så är det så att den klarar bara att "ticka" 1/18 sek dvs var 56 ms Timer.intervall blir då 56 ms.
Du får inte dom paus-sekvenser du tror/vill ha


Det finns en ocx Hitimer som fixar ner till 1 ms. Kolla om du får igång denna

Programarkivet:HiTimer 1 ms
Lägg Ocx och Osa i ditt System32 eller i samma mapp som din applikation.

Återkom om du inte får den att funka. Kanske det behövs Registrera ocx
Kolla även denna variant.
http://cuinl.tripod.com/activex-7.htm


Svara

Sv:Hjälp med ojämn timer

Postades av 2010-10-07 18:17:54 - Sven Åke Persson

Jag hade FEL !

Timern från VB6 klarar ner till 30 ms utan problem i NT/XP

56 ms gamla data från Win95 tiden. Förmodligen klarar den ner till 10 ms utan problem.

Synpunkter emotses.


Svara

Sv: Hjälp med ojämn timer

Postades av 2010-12-25 17:16:10 - lennart arvidsson

Ursäkta att jag inte har sakt hur det gick och tack för all hjälp
Jag fick igång HiTimer men vb.net började krascha lite då och då. Men under tiden det funkade så han jag testa med 1 ms timer men det fungerade inte nått bättre för SerialPort1.BytesToRead inte uppdateras någ snappt
men jag hittade étt mönster i serie datan så jag ett gjorde ett filter så jag fick ut datan jag ville


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 763
27 959
271 761
546
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies