Next: Device server startup
Up: How to write
Previous: State machine
Errors, faults and alarms all represent problems of some kind.
In the DSM an attempt is made to distinguish between the three classes
of problems.
This section will describe the difference between error, faults and
alarms and explain how to treat them.
-
Errors indicate that a command has not been able to be
executed to completion correctly. This can be due to a partial hardware
failure, an incorrect parameter or a bad configuration.
Errors are the least serious of the three problem types which have
been defined.
They should be signalled to the client and can be treated or corrected
by the client.
They do not require any privileged intervention from above i.e.
operator or device server administrator.
Errors in command execution should be indicated by the status DS_NOTOK
being returned.
-
Faults indicate a serious failure of the hardware which
needs to be signalled to the operator.
The device should change its state to DEVFAULT and should
not permit further commands until the cause of the fault
(bad or missing hardware for example) has been remedied.
The fault mode requires execution of a special command
(normally DevReset) to put the device back in an operational state.
Faults in the device which prevent a command from being executed
should be signalled by the status DS_NOTOK being returned.
-
Alarms indicate faults which can endanger personal or equipment safety.
They are context dependent and should therefore be treated by a
dedicated application.
Alarms should not be treated inside the device servers because (1) the
device servers are not aware of the context in which they are used,
and (2) device servers are `` dumb'' and not supposed to be polling
devices eternally nor waiting for interrupts.
Commands should be provided for recovering from any of the above
conditions.
It should be possible to bring the device back into a usable state
(as far as the hardware permits of course).
Next: Device server startup
Up: How to write
Previous: State machine
Andy Goetz
Tue Jan 28 13:58:13 MET 1997