MPIControlSubSampleMap

Declaration

typedef struct MPIControlSubSampleMap {
    MPIControlSubSampleMapObject	object[MPIControlMAX_OBJECTS];
} MPIControlSubSampleMap; 

 

Required Header: mpithread.h

Change History: Added in 04.00.

Description

object An array of sub-sampling configurations. If the MPIControlSubSampleMap structure represents the sub-sampling configuration for Axis objects, then:
object[0] will represent the sub-sampling configuration for Axis[0]
object[1] will represent the sub-sampling configuration for Axis[1]
object[2] will represent the sub-sampling configuration for Axis[2]

Sample Code

/* Configure Sub-Sampling Example 1

    Assume 1-to-1 MS-to-Axis mapping.
    All related objects of a given index have
    (ex: MS[1], Axis[1], Motor[1]) same sampling rate.

    Evaluation Matrix:
    ------------------
        Sample:     0   1   2   3
        Object 0:   X   X   X   X
        Object 1:   X       X
        Object 2:       X       X
        Object 4:   X
    .............................
    Total objects
    Evaluated:      3   2   2   2 (even-weighted)
*/
void configureSubSampling1(MPIControl control)
{
    MPIControlSubSampleMap  subSampleMap =
        {{  /*  subRate,    sampleStartIndex */
            {   1,          0 }, /* Object 0: every sample, must start on sample 0 */
            {   2,          0 }, /* Object 1: every other sample, start on sample 0 */
            {   2,          1 }, /* Object 2: every other sample, start on sample 1 */
            {   4,          0 }  /* Object 3: every 4th sample, start on sample 0 */
        }};
    MPIControlProcessMap    processMap =
        {
            &subSampleMap   /* motionMap */

            /* axisMap, motorMap, mechaWareMap
                are default initialized to NULL.
                This means these maps will be
                indentical to motionMap.
            */

            /* motionOrder, axisOrder, motorOrder,
                mechaWareOrder are default
                initialized to NULL.
                This means deafult ordering applies
                to all objects
            */
        };

    MPIControlConfig        config;
    MPI_RESULT              returnValue;


    returnValue =
        mpiControlConfigGet(control, &config);
    msgCHECK(returnValue);

    config.processMap = processMap;

    returnValue =
        mpiControlConfigSet(control, &config);
    msgCHECK(returnValue);
}

See Also

MPIControlProcessMap | MPIControlSubSampleMapObject