Device Communications Enabler Design

In CIMPLICITY software, a device communications enabler uses a specific protocol to communicate through a single port to one or more devices.

A port typically corresponds to a hardware interface such as a serial port or network adapter. Multiple copies of the same enabler may run concurrently to support several ports.

A port can connect to one or more devices. Usually these devices are addressed by CPU ID, network address, or both.

A device contains one or more domains which are addressed by domain index.

A domain is a contiguous region of homogeneous data elements that are selected by domain offset. Examples of domain elements are bits, bytes, and words. A domain that is bit-addressable is called a "bit domain" or a "digital domain".

A domain that is made up of multi-bit elements (such as bytes or words), is called an "analog domain" because its elements can hold analog values.

A point is an ID and other attributes associated with one or more contiguous elements in a domain.

Multiple points of the same or different type may be configured for the same address in a domain.

Point types need not match domain types. For example, analog values can be made up of multiple bits in a bit domain, and bits can be extracted from elements in analog domains.

Within the data buffers used by CIMPLICITY software, all data is handled in bytes.

Bit data is stored packed, 8 bits per byte with the most significant bit to the left.

Multi-byte data is stored little-endian (least significant bytes first). Floating point values are in 4-byte IEEE format, unless you set use_dp_flag in the SUPPORT structure to TOOLKIT_YES. In that case, floating point values are in 8-byte format.

Multiple points in the same domain may be grouped by the toolkit into a cache for more efficient polling. A cache is a range of memory in a domain that covers one or more points. All points in the cache have the same update criteria and scan rate multiplier. When a point I/O routine is called, the Point ID in the ADDR_DATA structure is for the "top" (or first) point in the cache.

More information

Decisions to be made prior to implementing the enabler.

User customizable functions.

About the Device Communications toolkit.

About the Device Communications Toolkit.