MPIMapPtr
Declaration
typedef struct MPIMapPtr { union { uint32_t ui32; MPIUInt64 ui64; } mask; int32_t shift; union { void* v; double* d; int32_t* i32; uint32_t* ui32; MPIInt64* i64; MPIUInt64* ui64; } ptr; MPIDataType dataType; } MPIMapPtr;
Required Header: map.h
Change History: Added in 04.00.
Description
MPIMapPtr is a structure that represents areas of memory on the motion controller. These areas of memory could represent a single bit (for digital I/O) or multiple bits (for all other types of memory).
MPIMapPtr is used as an intermediate representation of memory between certain MPI configurations (such as MPIRecorder traces) and a version independent representation of memory by the MPIMapSymbol structure.
Warning: The information in MPIMapPtr is not portable between MPI versions. To represent commonly referenced memory locations on the controller, use the MPIMapSymbol structure.
mask | The bit mask associated with a particular memory location. Used when representing I/O on the controller. Digital I/O uses a single bit and analog I/O uses 16 bits. |
---|---|
ptr | The host pointer to the controller memory. |
dataType | The data type of the controller memory. |
Sample Code
MPIMap mpiMap; MFWData* firmware; MPIMapSymbol data; MPIMapPtr info; MPI_RESULT returnValue;
/* ... */
/* Obtain information about firmware->SystemData.SampleCounter assuming a mask of 0xFFFFFFFF*/ info.ptr.ul = &firmware->SystemData.SampleCounter; info.mask.ul = 0xFFFFFFFF;
returnValue = mpiMapPtrToSymbol(mpiMap, &info, &data);
/* data.location should be MPIMapSymbolTypeSAMPLE_COUNTER */
/* All elements of data.index should be equal to -1 indicating they are not */ /* needed when describing the sample counter. */
See Also
mpiMapSymbolToPtr | mpiMapPtrToSymbol | MPIMapSymbol