Device: Task Device
Class Name:
<<Device>>lsfTASKDEV
Description:
Control of the Task Devices used by a sub-system.
Inheritance:
LCU Server Framework <<Device>>lsfDEVICE
Use Case diagram:

Class diagram:

Architecture:
The <<Device>> class Taskdev
is based on the LCC Task handling (lccTaskLib).
The public methods are:
- lsfTaskDevTrigger ( const char
*taskDevName ): asynchronous triggering of the task
device; the core function will be invoked once. If the period is
based on a TIM timer, the overall periodicity will not be
affected otherwise the next periodic activation will be one full
period later (pseudo periodicity).
- <app><taskName>ProHook():
- <app><taskName>EpiHook():
are the two optional hooks (application specific) that are
invoked resp. at activation and termination of the task.
The protected methods are:
- lsfTaskDevConstructor():
this method allocates all the resources needed by the
device. Especially it resolves the addresses of the optional
hook functions, allocates the task TCB and the checks the
presence of the TIM device when timers are required.
- lsfTaskDevDestructor(): this
method releases all the allocated resources.
- lsfTaskDevInit():
- lsfTaskDevStandby():
- lsfTaskDevOnline():
- lsfTaskDevStop():
- lsfTaskDevOff():
- lsfTaskDevExit():
- lsfTaskDevSimulat():
- lsfTaskDevStopsim():
- lsfTaskDevSelftest():
- lsfTaskDevTest(): these
methods implement the minimum behaviour associated to the
Standard Commands for this type of device.
The private methods are:
- lsfTaskDevLoop(): is the
function running as a task in the system; it is pending on a
semaphore either given by the TIM timer or released on
timeout. It shall invoke the core function declared as a (lsfTASKDEV_HOOK.
*)<app><taskName>().
- lsfTaskDevActivate():
activate the task.
- lsfTaskDevTerminate():
terminate the task.
- lsfTaskDevSchedule(): check
the task device state and activate resp. terminate the task
according to the configuration start state.
The task TCB is created once at device construction according to the database attributes.
The public attributes are: None
The private attributes are:
- startState: minimum state at which the task shall be activated
- ignoreStop: when set the
task is not terminated on reception of the STOP command (default).
- timerNum: associated timer
number; when -1 the CPU system clocks is used (10ms ticks). The
timers 6 and 7 are bound to the TRS and correspond resp. to the
built-in OneSecond and 10MilliSeconds timers.
- period: task period in
milli-seconds; when zero, the task is pending forever until
explicitely triggered..
- priority : task priority
(from 2 to 255).
- stackSize: stack size in
[kB] (cannot be redefined at run-time).
Related Packages:
- lcc: The LCU Common Software
Issues to be Determined or Resolved: None
Last modified: Mon Jul 23 11:20:54 UTC 2001