MotionAttributeMaskOnSet() function usage

Hi community,

I would like to know more on MotionAttributeMaskOnSet() function:
Eg. MotionAttributeMaskOnSet(RSIMotionAttrMaskAPPEND) to append a motion midway

on whether is able to use generally for motion (such as in Position mode) or is it specifically for Streaming Motion?

Just curious whether Streaming Motion is required in order to use the MotionAttributeMaskOnSet() function, or whether it can also be applied to standard motion commands.

Your clarification is much appreciated in helping us further our understanding. Thank you!

Thanks for your question, Gregory.

Motion attribute masks (dictated by the RSIMotionAttrMask enum) are not specific to streaming motion. Most bits apply to regular point-to-point motion (e.g., MoveTrapezoidal), and some also apply to streaming motion (e.g., MovePT).

Regarding RSIMotionAttrMaskAPPEND specifically:

  • Point-to-point: You should have no problem using RSIMotionAttrMaskAPPEND to queue multiple successive point-to-point moves, as described in the FAQ of our point-to-point concept page. Note that it cannot be used simultaneously with RSIMotionAttrMaskDELAY.
  • Streaming: RSIMotionAttrMaskAPPEND actually has no effect on streaming motion, which appends by default if it is supported for that motion type (see our motion type comparison table for more details).

In general, using motion attribute masks comes with some caveats. Some bits will be set by RapidCode internally, meaning you cannot rely on their persistence (e.g., a call to MoveRelative will modify RSIMotionAttrMaskRELATIVE). Furthermore, some bits are not yet supported as of RapidCode 11.1.0 (e.g., RSIMotionAttrMaskNO_BACKTRACK will yield an error if you attempt to enable it).

Rather than dictate the behavior of all the various motion attribute mask bits here, please let us know if there are any other specific bits you are interested in using and we’d be happy to answer questions regarding their behavior.

1 Like