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


Hur skulle du göra ?

Postades av 2006-12-20 07:17:03 - Sven Åke Persson, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 762 personer

<b>Problem :</b>
Jag har ett Delphi/Vb prog som samplar inkommande pulser från en sensor.
Pulserna kommer linjärt i propotion till ett flöde, max 2000 Hz.
Eftersom olika processorer kommer att ge olika svar på antal så vill jag följande.

Det kommer en 1/hög. Nästa mätning fortfarande hög, samma puls.
den vill jag inte räkna. Nästa också hög , samma puls den vill jag inte räkna.Osv.

Dvs jag vill inte räkna den nya höga förrän det har kommit en 0/låg.

Osv samma som ovan. Detta gör jag under 1 sek . Kör med GetTickCount.

Har själv gjort en krånglig <b>If</b> lösning men tycker inte den är optimal.
Hur skulle Ni principtänka och lösa ?


Svara

Sv: Hur skulle du göra ?

Postades av 2006-12-20 08:08:22 - Johan Djupmarker

Spontant skulle jag gjort såhär, men det finns säkert bättre sätt:

Dim Värde As Boolean
Dim SenasteVärde As Boolean
Dim Antal As Integer

While villkor
Värde = LäsVärde
If Värde AND NOT SenasteVärde Then
Antal = Antal + 1
SenasteVärde = True
End If
SenasteVärde = Värde
Wend

/Johan


Svara

Sv:Hur skulle du göra ?

Postades av 2006-12-20 09:02:43 - Sven Åke Persson

Bra du är inne på samma tankegångar som jag.

Dvs hitta en bra binär AND OR eller som du skriver AND NOT lösning.


Svara

Sv: Hur skulle du göra ?

Postades av 2006-12-20 10:09:50 - Niklas Jansson

Jag tycker följande är mer intuitivt:

Value = getValue
Do While ...
NewValue = getValue
Do While NewValue = Value
Loop
count = count+1
Loop

getValue är en funktion.


Svara

Sv:Hur skulle du göra ?

Postades av 2006-12-20 10:47:26 - Sven Åke Persson

mmm... Niklas den är nog fae.... optimal Tack.

Skall prova bägge i min Delphi DLL som lämnar till VB det du kallar för getValue.

PelleSoft är Guld

<b>Edit:</b> Nääää jag gör ju hela jobbet i Delphi DLL:en och ger VB korrekt antal pulser som kom under 1 sek.

<b>Brasklapp:</b>
Som vanligt en DLL skall vara <b>"standalone"</b> garvar åt all som gör DLL:er som i sin tur
behöver andra DLL:er för att klara sitt jobb. Delphi gör jobbet GULD


Svara

Sv: Hur skulle du göra ?

Postades av 2007-01-18 13:16:33 - Sven Åke Persson

Tack för Era tips. Så här blev det (Delphi kod Sampler.dll)
Som Ni ser är det mycket lätt att läsa om man kan VB
<code>
'Funktionen läser adress 889 pinne 13 och räknar antal pulser under en sekund
' GetPuls returnerar en Long(Integer i Delphi) antal höga läge på signalen.
Function GetPuls(AddrVal :Integer ; Pin :Integer) : Integer;StdCall ;
Var
' Dim i Vb
cntHigh : Integer ;
NewSignal : Byte ;
OldSignal : Byte ;
Sek : Dword ;
Begin
' 1 sekund 1000 ms
Sek := GetTickCount + 1000 ;
cntHigh := 0 ;
NewSignal := DlPortReadPortUchar(AddrVal) ;
While GetTickCount < sek do begin
If NewSignal <> OldSignal Then Begin
OldSignal := NewSignal ;
' i VB cntHigh = cntHigh + 1
inc(cntHigh) ;
End;// 'If
NewSignal := DlPortReadPortUchar(AddrVal) ;
End; // 'While
'heltalsdivision
GetPuls := cntHigh div 2 ;
End; ' första Begin
</code>


Svara

Nyligen

  • 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
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 725
27 958
271 751
1 159
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