comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: tasking design for keylock
Date: Fri, 3 Mar 2006 18:55:09 +0100
Date: 2006-03-03T18:55:06+01:00	[thread overview]
Message-ID: <emtbaoc49i51.1e92iib56aipe$.dlg@40tude.net> (raw)
In-Reply-To: 1141389368.420323.184550@v46g2000cwv.googlegroups.com

On 3 Mar 2006 04:36:08 -0800, Rolf wrote:

> The following problem arose when I was thinking about the design for a
> minimal tasking runtime system.
> 
> Many doors are locked by electronic keylocks where one has to type four
> correct keys on a small keyboard (mostly 0 .. 9, *, #) before the lock
> is opened. Now there are requirements
> 
> - that the time between the key presses must not exceed 0.5 seconds,
> - and that after the 4th correct key you must not type any key at all
> for at least 0.5 seconds.
> 
> How do you model the timing requirements using Ada tasking? (I can
> attach the h/w interrupt from the key press to a protected procedure,
> but I don't know how to proceed from there, i.e. how to cancel or serve
> a timed entry call now)

You can implement your FSM directly in the protected object. Timing
constraints will be checked in the protected procedure attached to the
keypad interrupt. This procedure will change the state (of the FSM)
according to your diagram. The state "Open" can be used as a barrier for
the entry Open. This entry can be then waited for from some (or several)
external task. You will also need protected procedure attached to the
door/lock interrupt (I presume that it closes automatically after some
delay.) It seems to me that you need no tasks to control the lock.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  parent reply	other threads:[~2006-03-03 17:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-03 12:36 tasking design for keylock Rolf
2006-03-03 13:04 ` Jean-Pierre Rosen
2006-03-03 17:55 ` Dmitry A. Kazakov [this message]
2006-03-03 20:48 ` Simon Wright
2006-03-05 19:27   ` Nick Roberts
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox