MPICommandType

Definition

typedef enum {
  MPICommandTypeINVALID = -1,

  MPICommandTypeASSIGN,
  MPICommandTypeBRANCH,
  MPICommandTypeBRANCH_EVENT,
  MPICommandTypeBRANCH_IO,
  MPICommandTypeCOMPUTE,
  MPICommandTypeCOMPUTE_IO,
  MPICommandTypeCOPY,
  MPICommandTypeDELAY,
  MPICommandTypeEVENT,
  MPICommandTypeMOVE,
  MPICommandTypeWAIT,
  MPICommandTypeWAIT_EVENT,
  MPICommandTypeWAIT_IO,

  MPICommandTypeLAST,
  MPICommandTypeFIRST               = MPICommandTypeINVALID + 1,

  MPICommandTypeBIT_COUNT = sizeof(int) * 8,	/* sizeof(enum) */

  MPICommandTypeREF                 = 0x1 << (MPICommandTypeBIT_COUNT - 1),
  MPICommandTypeDOUBLE              = 0x1 << (MPICommandTypeBIT_COUNT - 2),

  MPICommandTypeMASK                = ~(MPICommandTypeREF | MPICommandTypeDOUBLE),

  MPICommandTypeASSIGN_DOUBLE       = MPICommandTypeASSIGN | MPICommandTypeDOUBLE,

  MPICommandTypeBRANCH_REF          = MPICommandTypeBRANCH | MPICommandTypeREF,
  MPICommandTypeBRANCH_DOUBLE       = MPICommandTypeBRANCH | MPICommandTypeDOUBLE,
  MPICommandTypeBRANCH_DOUBLE_REF   = MPICommandTypeBRANCH_DOUBLE | MPICommandTypeREF,

  MPICommandTypeCOMPUTE_REF         = MPICommandTypeCOMPUTE | MPICommandTypeREF,
  MPICommandTypeCOMPUTE_DOUBLE      = MPICommandTypeCOMPUTE | MPICommandTypeDOUBLE,
  MPICommandTypeCOMPUTE_DOUBLE_REF  = MPICommandTypeCOMPUTE_DOUBLE | MPICommandTypeREF,

  MPICommandTypeWAIT_REF            = MPICommandTypeWAIT | MPICommandTypeREF,
  MPICommandTypeWAIT_DOUBLE         = MPICommandTypeWAIT | MPICommandTypeDOUBLE,
  MPICommandTypeWAIT_DOUBLE_REF     = MPICommandTypeWAIT_DOUBLE | MPICommandTypeREF
} MPICommandType;

Description

MPICommandType is an enumeration of controller commands that can be used in a program sequence. It specifies a single instruction for the controller to execute. The CommandType also defines the command parameters that must be passed to mpiCommandCreate(...). For each MPICommandType there is a corresponding structure in the MPICommandParams{...} union. For example, when the MPICommandTypeASSIGN is specified, the assign{...} structure in MPICommandParams{...} must be filled in to specify the address and value.

Commands must be created with mpiCommandCreate(...) and then added to a sequence using mpiSequenceCommandAppend(...), mpiSequenceCommandInsert(...), or mpiSequenceCommandListSet(...). Then the command sequence can be loaded into the controller with mpiSequenceLoad(...) and started with mpiSequenceStart(...).

Element Description Associated MPICommandParams structure
MPICommandTypeASSIGN Writes a constant value (int32_t or float) into the controller's memory at the specified address. Assign
MPICommandTypeASSIGN_FLOAT These commands assign a value to a particular controller address. MPICommandTypeASSIGN assigns a int32_t value while MPICommandTypeASSIGN_FLOAT assigns a float value.
MPICommandTypeBRANCH These commands branch to a particular command (similar to a goto statement) if a particular comparison evaluates to TRUE. MPICommandTypeBRANCH compares a controller address to a specified constant int32_t value. MPICommandTypeBRANCH_REF compares a controller address to a int32_t value at a specified controller address. branch
MPICommandTypeBRANCH_REF Branch to a particular command if the comparison evaluates to TRUE. Compares a controller address to a int32_t value at a specified controller address.
MPICommandTypeBRANCH_FLOAT Compares a controller address to a specified constant float value.
MPICommandTypeBRANCH_FLOAT_REF Compares a controller address to a float value at a specified controller address.
MPICommandTypeBRANCH_EVENT Branch to a particular command (similar to a goto statement) if a particular event occurs or has occured.
branchEvent
MPICommandTypeBRANCH_IO Branch to a particular command (similar to a goto statement) if a particular I/O state matches a specified condition.
branchIO
MPICommandTypeCOMPUTE These commands perform some computation and place the result at some controller address. MPICommandTypeCOMPUTE performs a computation of some controller address and a constant int32_t value. compute
MPICommandTypeCOMPUTE_REF
MPICommandTypeCOMPUTE_FLOAT Performs a computation of some controller address and a constant float value.
MPICommandTypeCOMPUTE_FLOAT_REF Performs a computation of some controller address and a float value at a specified controller address.
MPICommandTypeCOMPUTE_IO Performs a computation on a set of I/O bits.
computeIO
MPICommandTypeCOPY Copies controller memory from one place to another.
copy
MPICommandTypeDELAY Delays execution of the next command.
delay
MPICommandTypeEVENT Generate an event.
event
MPICommandTypeMOVE Commands a motion action. See MPICommandMotion.
motion
MPICommandTypeWAIT These delays execution of the next command until a particular comparison evaluates to TRUE. MPICommandTypeWAIT compares a controller address to a specified constant int32_t value. MPICommandTypeWAIT_REF Compares a controller address to a int32_t value at a specified controller address. wait
MPICommandTypeWAIT_REF Compares a controller address to a int32_t value at a specified controller address.
MPICommandTypeWAIT_FLOAT Compares a controller address to a specified constant float value.
MPICommandTypeWAIT_FLOAT_REF Compares a controller address to a float value at a specified controller address.
MPICommandTypeWAIT_EVENT Delays execution of the next command until a particular event occurs.
waitEvent
MPICommandTypeWAIT_IO Delays execution of the next command until a particular I/O state matches a specified condition.
waitIO

See Also

MPICommand | MPICommandMotion | MPICommandParams | mpiCommandCreate | mpiCommandType | mpiSequenceCommandAppend | mpiSequenceCommandInsert | mpiSequenceCommandListSet | mpiSequenceLoad | mpiSequenceStart