.. _struct_MACHINE_TENDING_FOCAS_PMC: MACHINE_TENDING_FOCAS_PMC ========================= PMC (Programmable Machine Control) **header + payload** for FOCAS operations. The header specifies target address/type/range; the payload holds typed data buffers. .. list-table:: :widths: 12 30 18 10 30 :header-rows: 1 * - **BYTE#** - **Field Name** - **Data Type** - **Value** - **Remarks** * - 0 - ``_ErrorCode`` - ``short`` - - - 0 on success; negative/positive for errors * - 2 - ``_hHandle`` - ``unsigned short`` - - - Active FOCAS session handle * - 4 - ``_iDataType`` - ``short`` - - - PMC data type selector (vendor-defined) * - 6 - ``_szAddressType`` - ``char[2]`` - e.g. "G", "D" - PMC address type as a one-letter string, for example "G" or "D". * - 8 - ``_iStartAddressNum`` - ``unsigned short`` - - - Start address number (word/bit base) * - 10 - ``_iCount`` - ``unsigned short`` - - - Number of PMC items to read/write * - 12 - ``_iBitOffset`` - ``unsigned char`` - 0-7 - Bit offset for bit-level access * - 13 - ``_tData`` - :ref:`MACHINE_TENDING_FOCAS_PMC_DATA ` - - - Typed PMC payload buffers Size note: The total size is **platform-dependent** (``sizeof(long)``). **Defined in:** ``DRFS.h`` .. code-block:: cpp typedef struct _MACHINE_TENDING_FOCAS_PMC // PMC Information Header { short _ErrorCode; unsigned short _hHandle; short _iDataType; char _szAddressType[2]; // e.g., "G", "D" unsigned short _iStartAddressNum; unsigned short _iCount; // Read & Write data count unsigned char _iBitOffset; MACHINE_TENDING_FOCAS_PMC_DATA _tData; // typed buffers } MACHINE_TENDING_FOCAS_PMC, *LPMACHINE_TENDING_FOCAS_PMC;