CEM User
Release Notes
Release 19991026
26 October 1999
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
Current Channel Number
Prior to this release, the CEM Macro GetCurChnNum() was incorrectly returning a zero (0) to indicate that an error was detected.
With this release, the CEM Macro GetCurChnNum() correctly returns a minus one (-1) to indicate that an error was detected.
Current Noun and Measured Characteristic
With the previous release, the RTS was changed to send the Noun and Measured Characteristic of the Current ATLAS Statement to the CEM Module. However, this did not fully resolve all conflicts when a CEM Device Driver required Noun and Measured Characteristic information.
With this release, these conflicts have been resolved.
W A R N I N G
CEM Device Drivers that use the CEM Macros GetCurMChar() within their FETCH Atlas Action must be changed to use the new CEM Macro GetCurDevMChar() in order to correctly determine what is being fetched.
Noun and Measured Characteristic for Current ATLAS Statement
With this release, the CEM Macros GetCurNoun() and GetCurMChar() return the Noun and Measured Characteristic Mnemonics, respectively, of the Current ATLAS Statement. Refer to Section 3 for the new descriptions of these CEM Macros.
Noun and Measured Characteristic for Current Device / Channel
With this release, the new CEM Macros GetCurDevNoun() and GetCurDevMChar() return the Noun and Measured Characteristic Mnemonics, respectively, of the Current Device / Channel. Refer to Section 3 for a full description of these new CEM Macros.
User Stub Functions
Prior to this release, User Stub Functions printed the CIIL Strings for the Noun and Measured Characteristic Mnemonics returned by the CEM Macros GetCurNoun() and GetCurMChar(), respectively, when printing an Action Line.
With this release, User Stub Functions print the CIIL Strings for the Noun and Measured Characteristic Mnemonics returned by the CEM Macros GetCurNoun(), GetCurMChar(), GetCurDevNoun() and GetCurDevMChar() as follows:
- If the CEM Macros GetCurNoun() and GetCurDevNoun() (or GetCurMChar() and GetCurDevMChar()) return the same Mnemonic, only the appropriate CIIL Noun (or Measured Characteristic) String will be printed.
Note The Measured Characteristic is not printed if it is not defined.
- If the CEM Macros GetCurNoun() and GetCurDevNoun() (or GetCurMChar() and GetCurDevMChar()) return different Mnemonics, the CIIL Noun (or Measured Characteristic) String for the Current ATLAS Statement will be printed first, followed by an ASCII Vertical Bar (|) Character, followed by the CIIL Noun (or Measured Characteristic) String for the Current Device / Channel.
Note The String "None" is printed when any Noun or Measured Characteristic is either not defined or not available.
Problem Reports
None.
CEM Help
Update to Current State CEM Macro Group
GetCurDevMChar()
GetCurDevNoun()
Name: GetCurDevMChar
Type: Current State
Usage: short nMeasChar;
nMeasChar = GetCurDevMChar();
Description: This Macro causes the Short Variable nMeasChar to be set to the Modifier Mnemonic that represents the Current Device Measured Characteristic.
Note The Current Device Measured Characteristic is the Measured Characteristic that the RTS sends to the CEM Kernel within certain RTS-to-CEM Data Messages.
Modifier Mnemonics are of the form M_XXXX (e.g., M_VOLT for "Voltage") and may be found in the PAWS-generated CEM Header File key.h.
If an error is detected or if there is no Current Device Measured Characteristic, nMeasChar will be set to zero.
Some ATLAS Signal Statements have a Measured Characteristic Field and some do not. If a CEM Device Driver needs to know the Measured Characteristic of the Current ATLAS Statement, the CEM Macro GetCurMChar() must be used. However, there are some ATLAS Signal Statements that do not have a Measured Characteristic (e.g., DO, DIGITAL TEST) but for which the RTS sends additional information (e.g., STIM or RESP) to the CEM Kernel as the Measured Characteristic. And there are some ATLAS Actions (e.g., FETCH) for which the Measured Charactistic needed by a CEM Device Driver is not the Measured Characteristic in the ATLAS Statement.
The RTS sends a Measured Characteristic (if appropriate) to the CEM Kernel within the following RTS-to-CEM Data Messages: Function/Setup (FNC); Initiate (INX); Fetch (FTH); and Remove (REM). When the CEM Kernel receives an FNC Message, the Measured Characteristic (if specified) is saved for the Current Device/Channel and is available to the CEM Device Driver for all ATLAS Actions (except INITIATE, FETCH and REMOVE) until the Device/Channel is reset. When the CEM Kernel receives either an INX, FTH or REM Message, the Measured Characteristic is saved in a Global Variable and is available to the CEM Device Driver during the CEM Device Driver's INITIATE, FETCH and RESET ATLAS Actions, respectively.
Therefore, CEM Device Drivers should perform as follows:
INITIATE, FETCH and REMOVE ATLAS Actions These Actions should always use this CEM Macro. It is by no means unusual for the RTS to send multiple FETCH Messages to the CEM Kernel for certain ATLAS Statements. Thus, this CEM Macro will tell the CEM Device Driver what is being fetched.
All other ATLAS Actions These Actions should probably use the CEM Macro GetCurMChar() to get the Measured Characteristic of the Current ATLAS Statement.
When there is doubt about which CEM Macro to use, the CEM Device Driver Action Function should be temporarily modified to include a call to the appropriate CEM User Stub Function, which will print the CIIL Strings for the Modifier Mneumonics returned by both this CEM Macro and the CEM Macro GetCurMChar() (if they are different).
See Also: CEM Macros GetCurDevNoun() and GetCurMChar().
Name: GetCurDevNoun
Type: Current State
Usage: short nNoun;
nNoun = GetCurDevNoun();
Description: This Macro causes the Short Variable nNoun to be set to the Noun Mnemonic that represents the Current Device Noun.
Note The Current Device Noun is the Noun that the RTS sends to the CEM Kernel within certain RTS-to-CEM Data Messages.
Noun Mnemonics are of the form N_XXX (e.g., N_ACS for "AC Signal") and may be found in the PAWS-generated CEM Header File key.h.
If an error is detected or if there is no Current Device Noun, nNoun will be set to zero.
Every ATLAS Signal Statement (except REMOVE, ALL) has a Noun Field. If a CEM Device Driver needs to know the Noun of the Current ATLAS Statement, the CEM Macro GetCurNoun() must be used. As currently implemented, there are several situations where this CEM Macro would return a zero value, but thare are no known situations where this CEM Macro would return a non-zero value that was different from what the CEM Macro GetCurNoun() would return.
See Also: CEM Macros GetCurNoun() and GetCurDevMChar().
Name: GetCurMChar
Type: Current State
Usage: short nMeasChar;
nMeasChar = GetCurMChar();
Description: This Macro causes the Short Variable nMeasChar to be set to the Modifier Mnemonic that represents the Current ATLAS Statement Measured Characteristic.
Modifier Mnemonics are of the form M_XXXX (e.g., M_VOLT for "Voltage") and may be found in the PAWS-generated CEM Header File key.h.
If an error is detected or if there is no Current ATLAS Statement Measured Characteristic, nMeasChar will be set to zero.
Some ATLAS Signal Statements have a Measured Characteristic Field and some do not. If a CEM Device Driver needs to know the Measured Characteristic of the Current ATLAS Statement, this CEM Macro must be used. However, there are some situations where the ATLAS Statement Measured Characteristic is not what the CEM Device Driver needs. It is strongly recommended that the CEM Macro GetCurDevMChar() section be read.
See Also: CEM Macros GetCurDevMChar() and GetCurNoun().
Name: GetCurNoun
Type: Current State
Usage: short nNoun;
nNoun = GetCurNoun();
Description: This Macro causes the Short Variable nNoun to be set to the Noun Mnemonic that represents the Current ATLAS Statement Noun.
Noun Mnemonics are of the form N_XXX (e.g., N_ACS for "AC Signal") and may be found in the PAWS-generated CEM Header File key.h.
If an error is detected or if there is no Current ATLAS Statement Noun, nNoun will be set to zero.
Every ATLAS Signal Statement (except REMOVE, ALL) has a Noun Field. If a CEM Device Driver needs to know the Noun of the Current ATLAS Statement, this CEM Macro must be used. However, it is recommended that the CEM Macro GetCurDevNoun() section be read.
See Also: CEM Macros GetCurDevNoun() and GetCurMChar().
|