CEM User
Release Notes
Release 20010308
Version 3.9.19
Purpose
The purpose of this document is to provide information pertaining to the release of the CEM Kernel and user interface. This document is divided into three sections:
Enhancements Describes changes that enhance the capability of the CEM Kernel.
Problem Reports Describes changes that correct errors reported in problem reports.
CEM Help Describes changes made to the user interface that will eventually be added to the CEM On-Line Help.
Enhancements
CEM Error Message with Error Bits (ErrMsgBits()) vice Error Number (ErrMsg())
Prior to this release, the CEM Kernel only allowed a CEM Device Driver to register an error by specifying an Error Number plus a Message String. When the RTS receives the Error Message from the CEM Kernel, the RTS takes various actions depending on the value of the Error Number.
With this release, the CEM Kernel also allows a CEM Device Driver to register an error by specifying one or more Error Bits plus a Message String. When the RTS receives the Error Message from the CEM Kernel, the RTS takes the actions specified by the Error Bits. See the CEM Help Section below for detailed information about the new CEM Macro ErrMsgBits().
Note CEM Error Messages with Error Bits are supported by the Studio RTS but are not supported by the Windows RTS (WRTS) and the X-Window RTS (XRTS). If by some chance the WRTS or XRTS were to receive one of these Messages, the Message would be processed as if it were a CEM Error Message with an Error Number of zero.
Problem Reports
None.
CEM Help
Update to Terminal I/O CEM Macro Group
ErrMsgBits()
Note ErrMsgBits() is new and is documented below. ErrMsg() is not new but is documented below because it is not sufficiently documented in the current CEM Help Files.
Name: ErrMsg
Type: Terminal I/O
Usage:
short nErrNum;
char *pcErrMsg;
ErrMsg( nErrNum, pcErrMsg );
Description: This Macro causes an Error Message to be queued for eventual delivery to the RTS. The Error Message has the following format:
F Error Device:CHChannel [Name]Line:StatNo Message
| where
|
is
|
| F
|
a Literal.
|
| Error
|
the Decimal Error Number specified by nErrNum
|
| Device
|
the Device Name.
|
| :CH
|
a Literal.
|
| Channel
|
the Device Channel.
|
| [
|
a Literal.
|
| Name
|
the ATLAS Module Name.
|
| ]
|
a Literal
|
| Line
|
the ATLAS Module Source File Line Number.
|
| :
|
a Literal
|
| StatNo
|
the ATLAS Module Statement Number.
|
| Message
|
the Message String specified by pcErrMsg
|
See Also: CEM Macro ErrMsgBits().
Name: ErrMsgBits
Note CEM Error Messages with Error Bits are supported only by the Studio RTS.
Type: Terminal I/O
Usage:
short nErrBits;
char *pcErrMsg;
ErrMsgBits( nErrBits, pcErrMsg );
Description: This Macro causes an Error Message to be queued for eventual delivery to the RTS. The Error Message has the following format:
F Error Device:CHChannel [Name]Line:StatNo Message
| where
|
is
|
| F
|
a Literal.
|
| Error
|
the Decimal Error Number derived from nErrBits as follows:
1. If nErrBits is zero, set nErrBits to 0x7FFF. Otherwise, clear nErrBits Sign Bit (Bit 2**15).
2. Convert nErrBits to Long Integer.
3. Logical-Left-Shift Long Integer 16 bit positions.
Therefore, the minimum decimal value will be +65,536 (for 0x0001) and the maximum decimal value will be +2,147,418,112 (for 0x7FFF). See below for the defined bit values of nErrBits.
|
| Device
|
the Device Name.
|
| :CH
|
a Literal.
|
| Channel
|
the Device Channel.
|
| [
|
a Literal.
|
| Name
|
the ATLAS Module Name.
|
| ]
|
a Literal
|
| Line
|
the ATLAS Module Source File Line Number.
|
| :
|
a Literal
|
| StatNo
|
the ATLAS Module Statement Number.
|
| Message
|
the Message String specified by pcErrMsg.
|
nErrBits is defined as containing three Bit Fields that should be set using the Labels specified below (which are defined in the CEM Header File cem.h):
Severity Field There are three mutually-exclusive Labels for specifying the severity of the error:
EB_SEVERITY_INFO
EB_SEVERITY_WARNING
EB_SEVERITY_ERROR
Action Field There are three mutually exclusive Labels for specifying what action the RTS is to take pertaining to the execution of the ATLAS Program:
EB_ACTION_HALT
EB_ACTION_RESET
EB_ACTION_ABORT
Set Field There is one Label for specifying a specific RTS action:
EB_SET_MAXTIME
See Also: CEM Macro ErrMsg().
|