Toon posts:

timer in C(++)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe schrijf je een timer in C(++)?

Die timer is bedoeld om bij te houden hoelang het duurt
voordat een bepaalde actie optreed.Als dit niet binnen een bepaald aantal sec is dan treed er een time-out op.

Verwijderd

Boost.org heeft een collectie timer-achtige classes.

Maar misschien kun je iets specifieker zijn over waar je zo'n timer precies voor wil gebruiken ? Misschien is er namelijk meer nodig dan alleen een timertje (extra process/thread misschien).

Verwijderd

Als je single-threaded werkt, kun je misschien mijn class uit [topic=215993/1/25] gebruiken.

Verwijderd

Een event loopje (zoals mietje beschrijft in die andere thread) is leuk, maar ik zeg er even voor de threadstarter bij dat dat (helaas) geen oplossing is als je een system-call wil laten time-out-en.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

O-)

[topic=215993/1/25]

[search=timer]

Doet iets met Cloud (MS/IBM)


Verwijderd

Op maandag 10 september 2001 15:34 schreef Sneech het volgende:
Een event loopje is leuk, maar ik zeg er even voor de threadstarter bij dat dat (helaas) geen oplossing is als je een system-call wil laten time-out-en.
Het kan wel hoor ;) Ik neem aan dat de system call niet onderbroken moet worden indien hij time-outed, dus je moet sowieso pas checken op timeouts nadat de system call uitgevoerd is. 't Is een interpretatie kwesie :+

Verwijderd

Topicstarter
Ik ben een software driver aan het programmeren voor een infrarood poort. Daar zijn meerder timers bij nodig , maar ze werken allemaal hetzelde.

De timer moet meten hoelang bijvoorbeeld een "discovery procedure" duurt.
Bij die procedure probeert mijn infrarood device uit te vinden welke andere device's binnen zijn bereik zijn. Hij broadcast daarop een "discovery request frame" waarop alle andere devices kunnen reageren. Alle devices die reageren worden opgeslagen in een discovery log en daarna kan mijn device verbinding maken met een of meer van die devices.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op maandag 10 september 2001 14:53 schreef Chatfreak112 het volgende:
Hoe schrijf je een timer in C(++)?

Die timer is bedoeld om bij te houden hoelang het duurt
voordat een bepaalde actie optreed.Als dit niet binnen een bepaald aantal sec is dan treed er een time-out op.
Ik denk hierin te lezen dat de feitelijke tijd je geen hol boeit, maar dat je het alleen wil weten als ie niet binnen xxx ms klaar is. SetWaitableTimer is je oplossing dan: in kernelmode wordt bijgehouden of de timer al verstreken is (dus accuraat en drivercompatible), je kunt 'm op ieder moment stoppen en resetten, en als de timer verstreken is wordt er automatisch een timeout-routine aangeroepen.

Tevens kun je andere threads laten wachten totdat het ding is gestopt, afgegaan, of een timeout heeft veroorzaakt.

Zie MSDN voor precieze docs over hoe te gebruiken, zoek ook naar WaitForSingleObject.

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 23:15
Moet het wel Win32 zijn waar je mee werkt.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op maandag 10 september 2001 18:29 schreef farlane het volgende:
Moet het wel Win32 zijn waar je mee werkt.
[half 3 's nachts flamebait mode]
Zijn er andere dan?
[/half 3 's nachts flamebait mode]
;)

Ik ga maar eens een keertje hard :z geloof ik... :Y)

Professionele website nodig?


Verwijderd

Topicstarter
Op maandag 10 september 2001 18:29 schreef farlane het volgende:
Moet het wel Win32 zijn waar je mee werkt.
De tijd zelf boeit inderdaad niet, alleen weet ik niet of ik die functies kan gebruiken want ik schrijf de driver voor Ecos (linux achtig). 8-)

Verwijderd

Asl het een BSD-achtige is, kun je functies getitimer en setitimer gebruiken (in <sys/time.h>). man getitimer vertelt je meer.

Verwijderd

Topicstarter
Op dinsdag 11 september 2001 10:49 schreef mietje het volgende:
Asl het een BSD-achtige is, kun je functies getitimer en setitimer gebruiken (in <sys/time.h>). man getitimer vertelt je meer.
BSD-achtig??

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Kun je geen gebruik maken van de <signal.h> routines?
Zou redelijk standaard moeten zijn (dacht ik).

Verwijderd

BSD-achtig: een unix kloon die zich aan de BSD stijl houdt. Linux heeft bijvoorbeeld een setitimer functie. Overigens zijn setitimer en getitimer signal functies, ze zijn de manier om een timer te programmeren onder 90% van de unices.

Verwijderd

Topicstarter
Op dinsdag 11 september 2001 12:43 schreef Sponz het volgende:
Kun je geen gebruik maken van de <signal.h> routines?
Zou redelijk standaard moeten zijn (dacht ik).
Ik denk inderdaad dat het daarmee gaat lukken. Ik heb een functie:
sigtimedwait() die wacht op een signaal een als er geen signaal komt dan volgt er een time-out. Dit stond inderdaad in de signal.h file van mijn Ecos O.S

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 23:15
Op dinsdag 11 september 2001 02:28 schreef curry684 het volgende:
...
Zijn er andere dan?
...
- tomtiedom -

;)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1