INOS
CINOSMovePath Class Reference

Public Types

enum  EState {
  eStaVirgin = 0 , eStaEdit = 1 , eStaRaw = 2 , eStaReady = 3 ,
  eStaRunning = 4 , eStaStopping = 5 , eStaBreaking = 6 , eStaCanceling = 7 ,
  eStaSettling = 8 , eStaTransient = 9 , eStaPaused = 10 , eStaDone = 11 ,
  eStaLast = 12
}
 move path states
 
enum  {
  eCmdAttach = 256 , eCmdDetach = 257 , eCmdFirst = 258 , eCmdSetAxis ,
  eCmdSetCurve , eCmdReset , eCmdSetMapping , eCmdGetMoveTime ,
  eCmdGetMoveTicks , eCmdGetMoveLength , eCmdGetPositionDelta , eCmdGetMaxConstantVelocity ,
  eCmdAddEvent , eCmdSetEventDescriptor , eCmdPrepare , eCmdStartRun ,
  eCmdRun , eCmdPrepareAppend , eCmdAppend , eCmdBufferLow ,
  eCmdBufferEmpty , eCmdStop , eCmdBreak , eCmdContinue ,
  eCmdCancel , eCmdCancelData , eCmdLast
}
 
enum  {
  eParamIndexGlobalInternal = 0 , eParamIndexGlobal = 0xff , eParamIndexMask = 0x0000ffff , eParamTypeNumber = 0x00010000 ,
  eParamTypeString = 0x00020000
}
 internal flags
 
enum  { eFlgOwnerInterpolator = 0x00000001 , eFlgOwnerTrajectory = 0x00000002 , eFlgHasRapidSegments = 0x00000004 }
 internal flags
 
typedef std::function< uint32(CINOSMovePath *, uint32, TINOSMovePathVec &, TINOSMovePathVec &, TINOSMovePathVec &, TINOSMovePathVec &)> tpActiveCallback
 Set callback method used for active trajectory handling. This callback is called on every sample and let's the application react accordingly if needed.
 

Public Member Functions

EState GetState () const
 Get move path state.
 
bool IsMoving () const
 
uint32 GetError () const
 Return current pending movepath error, see also INOS_MOVEPATH_ERROR_GENERAL.
 
virtual uint32 AcceptError ()
 Accept pending error and return its code, see also INOS_MOVEPATH_ERROR_GENERAL.
 
const char * GetName () const
 Get move path name.
 
uint32 GetOptions () const
 Get move path options.
 
virtual uint32 SetAxis (const char *apName, uint8 auIndex, uint32 auFlags=0x00000000, const char *apType="PosAxis")
 Map given axis name to given index.
 
virtual uint32 AddResource (const char *apName, uint8 &auIndex, uint32 auFlags=0x00000000, const char *apType="PosAxis")
 Add recource with given recource name and type.
 
virtual uint32 EditBegin (uint32 auFlags=0x00000002, double adTolerance=-1.0, double adVelocity=-1.0)
 Enter into edit mode.
 
virtual uint32 EditEnd (bool abIncomplete=false)
 Exit edit mode.
 
virtual uint32 SegBegin (uint32 auId=0xffffffff, uint32 auFlags=0x00000000, double adTolerance=-1.0, double adVelocity=-1.0)
 Mark the begin of a movepath segment.
 
virtual uint32 SegEnd ()
 Exit segment mode.
 
virtual uint32 Start (uint8 auIndex, double adPosition)
 Set curve start position of given axis.
 
virtual uint32 Linear (uint8 auIndex, double adPosition, uint32 auFlags=0)
 Add a linear part to the current segment.
 
virtual uint32 LinearBay (uint8 auIndex1, uint8 auIndex2, double adPosition1, double adPosition2, double adLength, uint32 auFlags=0)
 Add a linear bay part to the current segment.
 
virtual uint32 CircleCW (uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adMid1, double adMid2, uint32 auFlags=0)
 Add a clock wise circle part to the current segment.
 
virtual uint32 CircleCC (uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adMid1, double adMid2, uint32 auFlags=0)
 Add a counter clock wise circle part to the current segment.
 
virtual uint32 CircleCW (uint8 auIndex1, uint8 auIndex2, double adMid1, double adMid2, double adAngle, bool abAngleAbsolute, uint32 auFlags=0)
 Add a clock wise circle part to the current segment.
 
virtual uint32 CircleCC (uint8 auIndex1, uint8 auIndex2, double adMid1, double adMid2, double adAngle, bool abAngleAbsolute, uint32 auFlags=0)
 Add a counter clock wise circle part to the current segment.
 
virtual uint32 CircleCW (uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0)
 Add a clock wise circle part to the current segment.
 
virtual uint32 CircleCC (uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0)
 Add a counter clock wise circle part to the current segment.
 
virtual uint32 NrbBegin (uint32 auId=0xffffffff, uint32 auFlags=0x00000000, uint32 auDegree=3, uint32 auInterpolationPoints=DF_INOS_NURBSCURVE_INTERPOLATION_POINTS, double adVelocity=-1.0)
 Mark the begin of a nurbs curve segment.
 
virtual uint32 NrbEnd ()
 End of nurbs curve segment.
 
virtual uint32 NrbPoint (double adP0, double adP1, double adWeight=1.0)
 Add a control point to the nurbs curve.
 
virtual uint32 NrbKnot (double adValue, uint32 auMultiplicity=1)
 Add a control point to the nurbs curve.
 
virtual uint32 Reset ()
 Reset the path, resets curves, interpolators and trajectories does not reset parameters of the movepath.
 
virtual uint32 SetParam (const char *apName, double adValue)
 Set movepath parameter to given value.
 
virtual uint32 SetParam (uint8 auIndex, const char *apName, double adValue)
 Set axis specific movepath parameter to given value.
 
virtual uint32 SetParam (const char *apName, const char *apValue)
 Set movepath parameter to given value.
 
virtual uint32 SetParam (uint8 auIndex, const char *apName, const char *apValue)
 Set axis specific movepath parameter to given value.
 
virtual uint32 GetParam (const char *apName, double &adValue, double adDefault=0.0)
 Get movepath parameter.
 
virtual uint32 GetParam (uint8 auIndex, const char *apName, double &adValue, double adDefault=0.0)
 Get axis specific movepath parameter.
 
virtual uint32 GetParam (const char *apName, char *apBuffer, uint32 auSize, const char *apDefault="")
 Get movepath parameter.
 
virtual uint32 GetParam (uint8 auIndex, const char *apName, char *apBuffer, uint32 auSize, const char *apDefault="")
 Get axis specific movepath parameter.
 
virtual uint32 GetCycleTime (double &adCycleTime)
 Return the path cycle time [sec].
 
virtual uint32 GetCycleData (double &adMainCycleTime, uint8 &auMainAxisIndex, inos_std::vector< uint8 > &auMainCycleDownSampling, uint8 &auMainOversampling)
 Return path cycle data.
 
virtual uint32 GetMoveTime (double &adMoveTime, double adDelta=0.0)
 Return time [sec] the path needs until End - Delta.
 
virtual uint32 GetMoveTicks (uint64 &adMoveTicks, double arDelta=0.0)
 Return bus ticks the path needs until End - Delta.
 
virtual uint32 GetMoveLength (double &adMoveLength)
 Return the path length [path units].
 
virtual uint32 GetMoveRemaining (double &adMoveRemaining)
 Return the remaining path length [path units]. It can be used to ask for the actual remaining length still needs to move during a running path. At path start it returns adMoveRemaining = PathLength, at the end adMoveRemaining = 0.0.
 
virtual uint32 GetMaxConstantVelocity (double &adMaxConstantVelocity)
 Return the max. allowed constant velocity the path can be run with without violating any axes limits (V, A, B, J). Axis limits can be set with e.g. SetParam(aIndex, "Amax", value) for the max. allowed acceleration of axis with index 'aIndex'. Deceleration 'Bmax', Velocity 'Vmax' and Jerk 'Jmax'. If no maximum is set, the configured max. values of the corresponding ramp geni are taken.
 
virtual uint32 AddEvent (const char *apName, double adValue, uint32 auType)
 Return the path cycle time [sec].
 
virtual uint32 SetEventDescriptor (struct SINOSMovePathEventDesc *apDesc)
 Set event receiver.
 
virtual CMcResult Prepare (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Precalculate the path.
 
virtual CMcResult Prepare (const char *apSpeedset, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Precalculate the path.
 
virtual CMcResult Run (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Run the path.
 
virtual CMcResult Run (const char *apSpeedset, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Run the path.
 
virtual uint32 Append (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Appends curves that have been edited to the path.
 
virtual uint32 Stop (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Stop the running path.
 
virtual uint32 Break (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Break the running path.
 
virtual uint32 Continue (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Continue paused path.
 
virtual CMcResult Cancel (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Cancel the running path.
 
virtual uint32 GetData (TINOSMovePathVec &vPos, TINOSMovePathVec &vVel, TINOSMovePathVec &vAcc, TINOSMovePathVec &vJrk)
 Get actual path data.
 
virtual uint32 GetData (uint32 &auSegmentId, TINOSMovePathVec &vPos, TINOSMovePathVec &vVel, TINOSMovePathVec &vAcc, TINOSMovePathVec &vJrk)
 Get actual path data.
 
virtual CINOSMovePathSegmentGetActSegment ()
 
virtual uint32 CancelData ()
 Cancel data from running path (inform trajectory generator, that we don't need data anymore.
 
virtual uint32 Fail (uint32 auError)
 Cancel running path with a given error.
 
virtual uint32 GetPositionDelta (TINOSMovePathVec &vDelta)
 Get position delta between end and start of path.
 
virtual bool GetPosition (uint32 auIndex, TINOSMovePathVec &ovPos)
 get position vector at index auIndex
 
virtual uint32 GetTorqueLimit ()
 get torque limit
 
virtual double GetEpsilon ()
 get path epsilon
 
virtual double GetTolerance ()
 get path tolerance
 
virtual uint32 GetVmax (TINOSMovePathVec &aVmax)
 get Vmax vector
 
virtual uint32 GetVtrq (TINOSMovePathVec &aVtrq)
 get Vtrq vector
 
virtual uint32 GetAmax (TINOSMovePathVec &aAmax)
 get Amax vector
 
virtual uint32 GetAtrq (TINOSMovePathVec &aAtrq)
 get Atrq vector
 
virtual uint32 GetBmax (TINOSMovePathVec &aBmax)
 get Bmax vector
 
virtual uint32 GetBtrq (TINOSMovePathVec &aBtrq)
 get Btrq vector
 
virtual uint32 GetJmax (TINOSMovePathVec &aJmax)
 get Jmax vector
 
uint32 SetCurve (CINOSMovePathCurve *apCurve)
 set pointer to path curve (deprecated)
 
CINOSMovePathCurveGetCurve ()
 get pointer to maincurve
 
CINOSMovePathCurveGetEditCurve ()
 get pointer to path edit curve
 
CINOSMovePathCurveGetPrepareCurve ()
 get pointer to path prepare curve
 
CINOSMovePathCurveGetRunCurve ()
 get pointer to path run curve
 
CINOSMovePathTrajectoryGetTrajectory ()
 get pointer to path trajectory
 
void SetTrajectory (CINOSMovePathTrajectory *apTrajectory)
 set pointer to path trajectory
 
class CINOSMovePathResourceAxis * GetAxis (uint32 auIndex)
 get pointer to axis
 
class CINOSMovePathResource * GetResource (uint32 auIndex)
 
void GetActPosition (TINOSMovePathVec &ovAct)
 get actual axes position vector
 
void GetPositionFirst (TINOSMovePathVec &ovFirst)
 get first path position vector
 
void GetPositionLast (TINOSMovePathVec &ovLast)
 get last path position vector
 
bool GetBufferFillLevel (uint32 &auBufferFillLevel) const
 
uint32 SetMapping (class CINOSMatrix *apMapping)
 Set a virtual to physical axis mapping.
 
uint32 GetAxesErrorMask ()
 Get axes error mask. Returns an axis on error pattern (bit set means, the corresponding axis is on error). This method is e.g. useful to get the indices of the axes which caused an INOS_MOVEPATH_ERROR_TRJ_AXIS_ON_ERROR error.
 
void SetActiveCallback (tpActiveCallback aCallback)
 
void GetActual (SINOSRampData &aActual)
 Get actual path s,v,a,j.
 

Static Public Member Functions

static uint32 Create (CINOSMovePath *&apPath, uint32 auOptions=uint32(0x00000000))
 Create a movepath instance.
 
static uint32 Create (CINOSMovePath *&apPath, const char *apName, uint32 auOptions=uint32(0x00000000))
 Create a movepath instance with given name.
 
static uint32 Create (CINOSMovePath *&apPath, const char *apCurveType, const char *apInterpolatorType, const char *apTrajectoryType, uint32 auOptions=uint32(0x00000000))
 Create a movepath instance.
 
static uint32 Create (CINOSMovePath *&apPath, const char *apName, const char *apCurveType, const char *apInterpolatorType, const char *apTrajectoryType, uint32 auOptions=uint32(0x00000000))
 Create a movepath instance with given name.
 
static uint32 Create (CINOSMovePath *&apPath, const char *apName, const char *apCurveType, const char *apInterpolatorType, const char *apTrajectoryType, const char *apParam, uint32 auOptions=uint32(0x00000000))
 Create a movepath instance with given name.
 
static uint32 Destroy (CINOSMovePath *apPath)
 Destroy given movepath.
 
static uint32 glbSetAxis (const char *apName, uint8 auIndex, uint32 auFlags=0x00000000, uint32 auOptions=uint32(0x00000000))
 Globally map given axis name to given index.
 
static CINOSBaseAxisglbGetAxis (uint8 auIndex)
 Get pointer to globally mapped axis with given index.
 
static uint32 glbGetActPosition (const char *apName, double &adPosition, uint32 auOptions=uint32(0x00000000))
 Get actual commanded position of given axis.
 

Public Attributes

EState m_eState
 state
 
uint32 m_uFlags
 flags
 
uint32 m_uOptions
 options
 
uint32 m_uError
 error
 
uint32 m_uActInvolved
 temporary segment involved
 
CINOSMutex m_MainMutex
 the main mutex
 
CINOSMovePathCurvem_pEditCurve
 pointer to edit curve
 
CINOSMovePathCurvem_pRawCurve
 pointer to raw curve
 
CINOSMovePathCurvem_pAppendCurve
 pointer to curve to append
 
CINOSMovePathCurvem_pPrepareCurve
 pointer to prepare curve
 
CINOSMovePathCurvem_pRunCurve
 pointer to run curve
 
CINOSMovePathCurvem_pMainCurve
 pointer to main curve
 
CINOSMovePathTrajectorym_pTrajectory
 pointer to trajectory
 
class CINOSMovePathHelper * m_pPrepareHelper
 pointer to prepare helper thread
 
class CINOSMovePathHelper * m_pRunHelper
 pointer to run helper thread
 
uint32 m_uLengthMask
 axes flags
 

Protected Member Functions

 CINOSMovePath (const char *apName, const char *apCurveType, const char *apInterpolatorType, const char *apTrajectoryType, uint32 auOptions)
 constructor (application should use CINOSMovePath::Create)
 
virtual ~CINOSMovePath ()
 destructor (application should use CINOSMovePath::Destroy)
 
virtual uint32 iCircle (bool abCw, uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adMid1, double adMid2, uint32 auFlags)
 
virtual uint32 iCircleAngle (bool abCw, uint8 auIndex1, uint8 auIndex2, double adMid1, double adMid2, double adAngle, bool abAngleAbsolute, uint32 auFlags)
 internal circle angle
 
virtual uint32 iCircleRadius (bool abCw, uint8 auIndex1, uint8 auIndex2, double adEnd1, double adEnd2, double adRadius, uint32 auFlags)
 internal circle radius
 
virtual uint32 iPrepare (class CINOSTaskExMsg *apMsg)
 internal prepare
 
virtual uint32 iPrepare (const char *apSpeedSet)
 
virtual uint32 iStartRun (class CINOSTaskExMsg *apMsg)
 internal run
 
virtual uint32 iStartRun (const char *apSpeedSet, CINOSSync *apSync)
 
virtual uint32 iRun (class CINOSTaskExMsg *apMsg)
 
virtual uint32 iRun (const char *apSpeedSet, CINOSSync *apSync)
 
virtual uint32 iPrepareAppend (class CINOSTaskExMsg *apMsg)
 internal prepare append
 
virtual uint32 iPrepareAppend (CINOSSync *apSync)
 
virtual uint32 iAppend (class CINOSTaskExMsg *apMsg)
 internal append
 
virtual uint32 iAppend (CINOSMovePathCurve *apCurve, CINOSSync *apSync)
 
virtual uint32 iStop (class CINOSTaskExMsg *apMsg)
 internal stop
 
virtual uint32 iBreak (class CINOSTaskExMsg *apMsg)
 internal break
 
virtual uint32 iContinue (class CINOSTaskExMsg *apMsg)
 internal continue
 
virtual uint32 iCancel (class CINOSTaskExMsg *apMsg)
 internal cancel
 
virtual uint32 iCancelData (class CINOSTaskExMsg *apMsg)
 internal cancel data
 
virtual uint32 iSetParam (uint8 auIndex, const char *apName, double adValue)
 internal set param
 
virtual uint32 iSetParam (uint8 auIndex, const char *apName, const char *apValue)
 internal set param
 
virtual uint32 iGetParam (uint8 auIndex, const char *apName, double *adValue, double adDefault)
 internal get param
 
virtual uint32 iGetParam (uint8 auIndex, const char *apName, char *apValue, uint32 auSize, const char *apDefault)
 internal get param
 
CMcResult PutMsg (CINOSTaskExMsg *apMsg)
 put message into helpers queue
 
CMcResult PutCmd (uint32 auCommand, CINOSSync *apSync=DF_INOS_ASYNCHRONOUS)
 put command to queue
 
uint32 HandleCmd (uint32 auError=INOS_OK)
 check command queue (return auError if no command queue available)
 
uint32 WaitCmd (uint32 auCommand, uint32 auError=INOS_MOVEPATH_ERROR_NO_COMMAND_QUEUE)
 wait for auCommand or eCmdAbort (return auError if no command queue available)
 
CINOSTaskQueue * GetCmdQueue ()
 get pointer to command queue
 
uint32 DispatchCmd (CINOSTaskExMsg *apCmd)
 dispatch command
 
uint32 AddPart (CINOSMovePathPart *apPart, uint32 auFlags)
 add part to actual segment
 
virtual void SetState (EState aeState)
 set move path state
 
virtual void SetError (uint32 auError)
 set move path error
 
class TINOSMotionFrame< DF_INOS_MOVEPATH_MAX_AXES > * GetFrame ()
 get currently selected frame
 
struct SINOSMovePathEventDesc * GetEventDescriptor ()
 get event receiver
 
CINCOObject * RequestRegister ()
 return inco registration of path
 
void ReleaseRegister ()
 release inco registration of path
 

Friends

class CINOSMovePathHelper
 
class CINOSMovePathInterpolator
 
class CINOSMovePathInterpolatorBlend
 
class CINOSMovePathInterpolatorClothoid
 
class CINOSMovePathInterpolatorPolynom
 
class CINOSMovePathTrajectory
 
template<typename CINOSMovePath >
class CINOSTaskExMsgParam::CPtrContainer
 
class CINOSMcTargetMovePath
 
class CINOSMovePathHelperTest
 
void _INI_0300_CINOSMovePath ()
 

Member Typedef Documentation

◆ tpActiveCallback

typedef std::function<uint32(CINOSMovePath*,uint32,TINOSMovePathVec&,TINOSMovePathVec&,TINOSMovePathVec&,TINOSMovePathVec&)> CINOSMovePath::tpActiveCallback

Set callback method used for active trajectory handling. This callback is called on every sample and let's the application react accordingly if needed.

Parameters
aCallbackMethod called

Member Function Documentation

◆ AddEvent()

virtual uint32 CINOSMovePath::AddEvent ( const char *  apName,
double  adValue,
uint32  auType 
)
virtual

Return the path cycle time [sec].

Parameters
adCycleTimeReference to variable where to write the result to
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ AddResource()

virtual uint32 CINOSMovePath::AddResource ( const char *  apName,
uint8 &  auIndex,
uint32  auFlags = 0x00000000,
const char *  apType = "PosAxis" 
)
virtual

Add recource with given recource name and type.

Parameters
[in]apNameName of axis to map
[in]auIndexOut parameter, index the axis name was be mapped to
[in]auFlagsResource flags, only DF_INOS_MOVEPATH_FLAG_NLG valid here
[in]apTypeResource type
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_RESOURCE_INDEX, INOS_MOVEPATH_ERROR_ASCENDING_AXIS_INDEX, INOS_MOVEPATH_ERROR_UNKNOWN_AXIS

◆ Append()

virtual uint32 CINOSMovePath::Append ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Appends curves that have been edited to the path.

Depending on the state of the previous curves it also prepares and runs the curve.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Break()

virtual uint32 CINOSMovePath::Break ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Break the running path.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Cancel()

virtual CMcResult CINOSMovePath::Cancel ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Cancel the running path.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ CancelData()

virtual uint32 CINOSMovePath::CancelData ( )
inlinevirtual

Cancel data from running path (inform trajectory generator, that we don't need data anymore.

Returns
Returns INOS_OK in case of success or an appropriate error

◆ CircleCC() [1/3]

virtual uint32 CINOSMovePath::CircleCC ( uint8  auIndex1,
uint8  auIndex2,
double  adEnd1,
double  adEnd2,
double  adMid1,
double  adMid2,
uint32  auFlags = 0 
)
virtual

Add a counter clock wise circle part to the current segment.

A circle part is added with the given end and middle coordinates

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adEnd1Ending position of first axis
[in]adEnd2Ending position of second axis
[in]adMid1Circle center position of first axis
[in]adMid1Circle center position of second axis
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ CircleCC() [2/3]

virtual uint32 CINOSMovePath::CircleCC ( uint8  auIndex1,
uint8  auIndex2,
double  adEnd1,
double  adEnd2,
double  adRadius,
uint32  auFlags = 0 
)
virtual

Add a counter clock wise circle part to the current segment.

A circle part is added with the given end coordinates and the requested radius [deg].

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adEnd1Ending position of first axis
[in]adEnd2Ending position of second axis
[in]adRadiusRequested radius
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ CircleCC() [3/3]

virtual uint32 CINOSMovePath::CircleCC ( uint8  auIndex1,
uint8  auIndex2,
double  adMid1,
double  adMid2,
double  adAngle,
bool  abAngleAbsolute,
uint32  auFlags = 0 
)
virtual

Add a counter clock wise circle part to the current segment.

A circle part is added with the given middle coordinates and the requested angle [deg].

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adMid1Circle center position of first axis
[in]adMid1Circle center position of second axis
[in]adAngleRequested angle
[in]abAngleAbsoluteTrue if the given angle is an absolute value
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ CircleCW() [1/3]

virtual uint32 CINOSMovePath::CircleCW ( uint8  auIndex1,
uint8  auIndex2,
double  adEnd1,
double  adEnd2,
double  adMid1,
double  adMid2,
uint32  auFlags = 0 
)
virtual

Add a clock wise circle part to the current segment.

A circle part is added with the given end and middle coordinates

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adEnd1Ending position of first axis
[in]adEnd2Ending position of second axis
[in]adMid1Circle center position of first axis
[in]adMid1Circle center position of second axis
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ CircleCW() [2/3]

virtual uint32 CINOSMovePath::CircleCW ( uint8  auIndex1,
uint8  auIndex2,
double  adEnd1,
double  adEnd2,
double  adRadius,
uint32  auFlags = 0 
)
virtual

Add a clock wise circle part to the current segment.

A circle part is added with the given end coordinates and the requested radius [deg].

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adEnd1Ending position of first axis
[in]adEnd2Ending position of second axis
[in]adRadiusRequested radius
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ CircleCW() [3/3]

virtual uint32 CINOSMovePath::CircleCW ( uint8  auIndex1,
uint8  auIndex2,
double  adMid1,
double  adMid2,
double  adAngle,
bool  abAngleAbsolute,
uint32  auFlags = 0 
)
virtual

Add a clock wise circle part to the current segment.

A circle part is added with the given middle coordinates and the requested angle [deg].

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adMid1Circle center position of first axis
[in]adMid1Circle center position of second axis
[in]adAngleRequested angle
[in]abAngleAbsoluteTrue if the given angle is an absolute value
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ Continue()

virtual uint32 CINOSMovePath::Continue ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Continue paused path.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Create() [1/5]

static uint32 CINOSMovePath::Create ( CINOSMovePath *&  apPath,
const char *  apCurveType,
const char *  apInterpolatorType,
const char *  apTrajectoryType,
uint32  auOptions = uint32(0x00000000) 
)
static

Create a movepath instance.

Creates a movepath instance with the given curve-, interpolator- and trajectory type. If no type is given, default values are taken.

Parameters
[out]apPathPointer to created movepath instance
[in]apCurveTypeRequired curve type, see also Curve
[in]apInterpolatorTypeRequired interpolator type, see also Interpolator
[in]apTrajectoryTypeRequired trajectory type, see also Trajectory
[in]auOptionsRequired movepath options, valid options are DF_INOS_MOVEPATH_OPTION_NONE, DF_INOS_MOVEPATH_OPTION_EXCEPTION_SUPPORT, DF_INOS_MOVEPATH_OPTION_ASYNCH_SUPPORT, DF_INOS_MOVEPATH_OPTION_REGISTER_INCO
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_OPTION_INVALID, INOS_MOVEPATH_ERROR_OPTION_EXCEPTION, INOS_MOVEPATH_ERROR_OPTION_ASYNCH, INOS_MOVEPATH_ERROR_UNKNOWN_CURVE_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_INTERPOLATOR_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_TRAJECTORY_TYPE

◆ Create() [2/5]

static uint32 CINOSMovePath::Create ( CINOSMovePath *&  apPath,
const char *  apName,
const char *  apCurveType,
const char *  apInterpolatorType,
const char *  apTrajectoryType,
const char *  apParam,
uint32  auOptions = uint32(0x00000000) 
)
static

Create a movepath instance with given name.

Creates a movepath instance with the given curve-, interpolator- and trajectory type. If no type is given, default values are taken.

Parameters
[out]apPathPointer to created movepath instance
[in]apNameRequired movepath name
[in]apCurveTypeRequired curve type, see also Curve
[in]apInterpolatorTypeRequired interpolator type, see also Interpolator
[in]apTrajectoryTypeRequired trajectory type, see also Trajectory
[in]apParamA JSON string containing params that need to be available right at the beginning (e.g. Helper.Priority or Helper.Core)
[in]auOptionsRequired movepath options, valid options are DF_INOS_MOVEPATH_OPTION_NONE, DF_INOS_MOVEPATH_OPTION_EXCEPTION_SUPPORT, DF_INOS_MOVEPATH_OPTION_ASYNCH_SUPPORT, DF_INOS_MOVEPATH_OPTION_REGISTER_INCO
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_OPTION_INVALID, INOS_MOVEPATH_ERROR_OPTION_EXCEPTION, INOS_MOVEPATH_ERROR_OPTION_ASYNCH, INOS_MOVEPATH_ERROR_UNKNOWN_CURVE_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_INTERPOLATOR_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_TRAJECTORY_TYPE

◆ Create() [3/5]

static uint32 CINOSMovePath::Create ( CINOSMovePath *&  apPath,
const char *  apName,
const char *  apCurveType,
const char *  apInterpolatorType,
const char *  apTrajectoryType,
uint32  auOptions = uint32(0x00000000) 
)
static

Create a movepath instance with given name.

Creates a movepath instance with the given curve-, interpolator- and trajectory type. If no type is given, default values are taken.

Parameters
[out]apPathPointer to created movepath instance
[in]apNameRequired movepath name
[in]apCurveTypeRequired curve type, see also Curve
[in]apInterpolatorTypeRequired interpolator type, see also Interpolator
[in]apTrajectoryTypeRequired trajectory type, see also Trajectory
[in]auOptionsRequired movepath options, valid options are DF_INOS_MOVEPATH_OPTION_NONE, DF_INOS_MOVEPATH_OPTION_EXCEPTION_SUPPORT, DF_INOS_MOVEPATH_OPTION_ASYNCH_SUPPORT, DF_INOS_MOVEPATH_OPTION_REGISTER_INCO
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_OPTION_INVALID, INOS_MOVEPATH_ERROR_OPTION_EXCEPTION, INOS_MOVEPATH_ERROR_OPTION_ASYNCH, INOS_MOVEPATH_ERROR_UNKNOWN_CURVE_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_INTERPOLATOR_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_TRAJECTORY_TYPE

◆ Create() [4/5]

static uint32 CINOSMovePath::Create ( CINOSMovePath *&  apPath,
const char *  apName,
uint32  auOptions = uint32(0x00000000) 
)
static

Create a movepath instance with given name.

Creates a movepath instance and returns a pointer to it. Use default curve-, interpolator- and trajectory type. Default types are defined with system variables MOVEPATH.Curve (default = 'Base'), MOVEPATH.Interpolator (default = 'None') and MOVEPATH.Trajectory (default = 'Constant')

Parameters
[out]apPathPointer to created movepath instance
[in]apNameRequired movepath name
[in]auOptionsRequired movepath options, valid options are DF_INOS_MOVEPATH_OPTION_NONE, DF_INOS_MOVEPATH_OPTION_EXCEPTION_SUPPORT, DF_INOS_MOVEPATH_OPTION_ASYNCH_SUPPORT, DF_INOS_MOVEPATH_OPTION_REGISTER_INCO
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_OPTION_INVALID, INOS_MOVEPATH_ERROR_OPTION_EXCEPTION, INOS_MOVEPATH_ERROR_OPTION_ASYNCH, INOS_MOVEPATH_ERROR_UNKNOWN_CURVE_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_INTERPOLATOR_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_TRAJECTORY_TYPE

◆ Create() [5/5]

static uint32 CINOSMovePath::Create ( CINOSMovePath *&  apPath,
uint32  auOptions = uint32(0x00000000) 
)
static

Create a movepath instance.

Creates a movepath instance and returns a pointer to it. Use default curve-, interpolator- and trajectory type. Default types are defined with system variables MOVEPATH.Curve (default = 'Base'), MOVEPATH.Interpolator (default = 'None') and MOVEPATH.Trajectory (default = 'Constant')

Parameters
[out]apPathPointer to created movepath instance
[in]auOptionsRequired movepath options, valid options are DF_INOS_MOVEPATH_OPTION_NONE, DF_INOS_MOVEPATH_OPTION_EXCEPTION_SUPPORT, DF_INOS_MOVEPATH_OPTION_ASYNCH_SUPPORT, DF_INOS_MOVEPATH_OPTION_REGISTER_INCO
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_OPTION_INVALID, INOS_MOVEPATH_ERROR_OPTION_EXCEPTION, INOS_MOVEPATH_ERROR_OPTION_ASYNCH, INOS_MOVEPATH_ERROR_UNKNOWN_CURVE_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_INTERPOLATOR_TYPE, INOS_MOVEPATH_ERROR_UNKNOWN_TRAJECTORY_TYPE

◆ Destroy()

static uint32 CINOSMovePath::Destroy ( CINOSMovePath apPath)
static

Destroy given movepath.

Parameters
[in]apPathPointer to movepath to be destroyed
Returns
Returns alwys INOS_OK even if a null pointer is given

◆ EditBegin()

virtual uint32 CINOSMovePath::EditBegin ( uint32  auFlags = 0x00000002,
double  adTolerance = -1.0,
double  adVelocity = -1.0 
)
virtual

Enter into edit mode.

Before defining the geometry of a movepath, one has to enter into edit mode. This ensures an movepath is not changed during its execution. In later versions it will be possible to live adjust the path, but currently it is not.

Parameters
[in]auFlagsRequired path flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
[in]adToleranceRequested path tolerance [units]. It depends on the interpolator if this value is taken into account
[in]adVelocityRequested path velocity [units/sec]
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_NO_AXIS_SET, INOS_MOVEPATH_ERROR_INVALID_TOLERANCE, INOS_MOVEPATH_ERROR_INVALID_VELOCITY, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ EditEnd()

virtual uint32 CINOSMovePath::EditEnd ( bool  abIncomplete = false)
virtual

Exit edit mode.

Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ Fail()

virtual uint32 CINOSMovePath::Fail ( uint32  auError)
virtual

Cancel running path with a given error.

Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetActual()

void CINOSMovePath::GetActual ( SINOSRampData aActual)
inline

Get actual path s,v,a,j.

Parameters
apHandlerThe handler function
apObjectThe handler instance

◆ GetAxesErrorMask()

uint32 CINOSMovePath::GetAxesErrorMask ( )

Get axes error mask. Returns an axis on error pattern (bit set means, the corresponding axis is on error). This method is e.g. useful to get the indices of the axes which caused an INOS_MOVEPATH_ERROR_TRJ_AXIS_ON_ERROR error.

Returns
The requested pattern.

◆ GetBufferFillLevel()

bool CINOSMovePath::GetBufferFillLevel ( uint32 &  auBufferFillLevel) const
Parameters
auBufferFillLevelwill be set to the current buffer fill level. 0 means 'empty'. The value will not be set if the function returns false. One use case may be to check whether the last buffer value has already been pulled to the axes to decide whether a followup-move may already be calculated for the axes part of the movepath.
Returns
true if apBufferFillLevel was set correctly, false otherwise (e.g. because no trajectory object is available)

◆ GetCycleData()

virtual uint32 CINOSMovePath::GetCycleData ( double &  adMainCycleTime,
uint8 &  auMainAxisIndex,
inos_std::vector< uint8 > &  auMainCycleDownSampling,
uint8 &  auMainOversampling 
)
virtual

Return path cycle data.

Parameters
adMainCycleTimeMain path cycle time [sec]
auMainAxisIndexIndex of main path axis
adMainCycleDownSamplingArray of down sampling values per axis
auMainOversamplingOversampling of main axis (no oversampling = 1)
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetCycleTime()

virtual uint32 CINOSMovePath::GetCycleTime ( double &  adCycleTime)
virtual

Return the path cycle time [sec].

Parameters
adCycleTimeReference to variable where to write the result to
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetData() [1/2]

virtual uint32 CINOSMovePath::GetData ( TINOSMovePathVec &  vPos,
TINOSMovePathVec &  vVel,
TINOSMovePathVec &  vAcc,
TINOSMovePathVec &  vJrk 
)
inlinevirtual

Get actual path data.

Use this method if you selected 'Trajectory.Buffer.Type' = 'passive' to get actual path data and Pull them to the correspinding axis. This has to be done in a hook that runs sysnchronous to the path axes

Parameters
[out]vPosActual position vector
[out]vVelActual velocity vector
[out]vAccActual acceleration vector
[out]vPosActual Jerk vector
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetData() [2/2]

virtual uint32 CINOSMovePath::GetData ( uint32 &  auSegmentId,
TINOSMovePathVec &  vPos,
TINOSMovePathVec &  vVel,
TINOSMovePathVec &  vAcc,
TINOSMovePathVec &  vJrk 
)
inlinevirtual

Get actual path data.

Use this method if you selected 'Trajectory.Buffer.Type' = 'passive' to get actual path data and Pull them to the correspinding axis. This has to be done in a hook that runs sysnchronous to the path axes

Parameters
[out]auSegmentIdActual segment id
[out]vPosActual position vector
[out]vVelActual velocity vector
[out]vAccActual acceleration vector
[out]vPosActual Jerk vector
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetMaxConstantVelocity()

virtual uint32 CINOSMovePath::GetMaxConstantVelocity ( double &  adMaxConstantVelocity)
virtual

Return the max. allowed constant velocity the path can be run with without violating any axes limits (V, A, B, J). Axis limits can be set with e.g. SetParam(aIndex, "Amax", value) for the max. allowed acceleration of axis with index 'aIndex'. Deceleration 'Bmax', Velocity 'Vmax' and Jerk 'Jmax'. If no maximum is set, the configured max. values of the corresponding ramp geni are taken.

Parameters
adMaxConstantVelocityReference to variable where to write the result to
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetMoveLength()

virtual uint32 CINOSMovePath::GetMoveLength ( double &  adMoveLength)
virtual

Return the path length [path units].

Parameters
adMoveLengthReference to variable where to write the result to
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetMoveRemaining()

virtual uint32 CINOSMovePath::GetMoveRemaining ( double &  adMoveRemaining)
virtual

Return the remaining path length [path units]. It can be used to ask for the actual remaining length still needs to move during a running path. At path start it returns adMoveRemaining = PathLength, at the end adMoveRemaining = 0.0.

Parameters
adMoveRemainingReference to variable where to write the result to
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetMoveTicks()

virtual uint32 CINOSMovePath::GetMoveTicks ( uint64 &  adMoveTicks,
double  arDelta = 0.0 
)
virtual

Return bus ticks the path needs until End - Delta.

Parameters
auMoveTicksReference to variable where to write the result to
adDeltaThe requested end delta [path units].
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetMoveTime()

virtual uint32 CINOSMovePath::GetMoveTime ( double &  adMoveTime,
double  adDelta = 0.0 
)
virtual

Return time [sec] the path needs until End - Delta.

Parameters
adMoveTimeReference to variable where to write the result to
adDeltaThe requested end delta [path units].
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ GetParam() [1/4]

virtual uint32 CINOSMovePath::GetParam ( const char *  apName,
char *  apBuffer,
uint32  auSize,
const char *  apDefault = "" 
)
virtual

Get movepath parameter.

Parameters
[in]apNameParameter name, see also Parameter
[in]apBufferBuffer where to write result to
[in]auSizeSize [bytes] of given buffer
[in]apDefaultDefault value, used if parameter not found
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetParam() [2/4]

virtual uint32 CINOSMovePath::GetParam ( const char *  apName,
double &  adValue,
double  adDefault = 0.0 
)
virtual

Get movepath parameter.

Parameters
[in]apNameParameter name, see also Parameter
[out]adValueParamater value
[in]adDefaultDefault value, used if parameter not found
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetParam() [3/4]

virtual uint32 CINOSMovePath::GetParam ( uint8  auIndex,
const char *  apName,
char *  apBuffer,
uint32  auSize,
const char *  apDefault = "" 
)
virtual

Get axis specific movepath parameter.

Parameters
[in]auIndexRequested axis index
[in]apNameParameter name, see also Parameter
[in]apBufferBuffer where to write result to
[in]auSizeSize [bytes] of given buffer
[in]apDefaultDefault value, used if parameter not found
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetParam() [4/4]

virtual uint32 CINOSMovePath::GetParam ( uint8  auIndex,
const char *  apName,
double &  adValue,
double  adDefault = 0.0 
)
virtual

Get axis specific movepath parameter.

Parameters
[in]auIndexRequested axis index
[in]apNameParameter name, see also Parameter
[out]adValueParamater value
[in]adDefaultDefault value, used if parameter not found
Returns
Returns INOS_OK in case of success or an appropriate error

◆ GetPositionDelta()

virtual uint32 CINOSMovePath::GetPositionDelta ( TINOSMovePathVec &  vDelta)
virtual

Get position delta between end and start of path.

Use this method to get the position delta between the path end and the path start position

Parameters
[out]vDeltaThe calculated position delta
Returns
Returns INOS_OK in case of success or an appropriate error

◆ glbGetActPosition()

static uint32 CINOSMovePath::glbGetActPosition ( const char *  apName,
double &  adPosition,
uint32  auOptions = uint32(0x00000000) 
)
static

Get actual commanded position of given axis.

Parameters
[in]apNameName of axis
[out]adPositionRequested position
[out]auOptionsRequired options for the call, only INOS_MOVEPATH_ERROR_OPTION_EXCEPTION valid here
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_UNKNOWN_AXIS

◆ glbGetAxis()

static CINOSBaseAxis * CINOSMovePath::glbGetAxis ( uint8  auIndex)
static

Get pointer to globally mapped axis with given index.

Parameters
[in]auIndexIndex the axis name is to be mapped to
Returns
Returns Pointer to axis if any or nullptr

◆ glbSetAxis()

static uint32 CINOSMovePath::glbSetAxis ( const char *  apName,
uint8  auIndex,
uint32  auFlags = 0x00000000,
uint32  auOptions = uint32(0x00000000) 
)
static

Globally map given axis name to given index.

Parameters
[in]apNameName of axis to map
[in]auIndexIndex the axis name is to be mapped to
[in]auFlagsGlobally valid flags, only DF_INOS_MOVEPATH_FLAG_NLG valid here
[in]auOptionsRequired options for the call, only INOS_MOVEPATH_ERROR_OPTION_EXCEPTION valid here
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_UNKNOWN_AXIS

◆ IsMoving()

bool CINOSMovePath::IsMoving ( ) const
Returns
true if one or multiple axes are currently 'moving' because of this movepath. 'moving' includes things like 'stopping', 'settling', etc, but does not include things 'paused', which means that the movepath has not yet completed, but the axes are currently not moving, because the movepath execution has been paused.

◆ Linear()

virtual uint32 CINOSMovePath::Linear ( uint8  auIndex,
double  adPosition,
uint32  auFlags = 0 
)
virtual

Add a linear part to the current segment.

Parameters
[in]auIndexIndex of requested axis
[in]adPositionRequested axis position
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC, DF_INOS_MOVEPATH_FLAG_NLG
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ LinearBay()

virtual uint32 CINOSMovePath::LinearBay ( uint8  auIndex1,
uint8  auIndex2,
double  adPosition1,
double  adPosition2,
double  adLength,
uint32  auFlags = 0 
)
virtual

Add a linear bay part to the current segment.

Customer specific part to smoothly enter a bay with a linear and a circular axis

Parameters
[in]auIndex1Index of the first involved axis
[in]auIndex2Index of the second involved axis
[in]adPosition1Requested position of first axis
[in]adPosition2Requested position of second axis
[in]adLengthSmoothing length
[in]auFlagsRequested flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ NrbBegin()

virtual uint32 CINOSMovePath::NrbBegin ( uint32  auId = 0xffffffff,
uint32  auFlags = 0x00000000,
uint32  auDegree = 3,
uint32  auInterpolationPoints = DF_INOS_NURBSCURVE_INTERPOLATION_POINTS,
double  adVelocity = -1.0 
)
virtual

Mark the begin of a nurbs curve segment.

Parameters
[in]auIdRequested segment id. This can be any value and can be used to later identify the currently running segment.
[in]auFlagsRequested path flags (for future use)
[in]auDegreeRequested nurbs curve degree (order - 1), usually 3
[in]auInterpolationPointsRequested number of interpolation points (e.g. used to calculate curve length)
[in]adVelocityRequested segment velocity [units/sec]
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_NO_AXIS_SET, INOS_MOVEPATH_ERROR_INVALID_VELOCITY, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ NrbEnd()

virtual uint32 CINOSMovePath::NrbEnd ( )
virtual

End of nurbs curve segment.

Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ NrbKnot()

virtual uint32 CINOSMovePath::NrbKnot ( double  adValue,
uint32  auMultiplicity = 1 
)
virtual

Add a control point to the nurbs curve.

Parameters
[in]adP0First coordinate of control point
[in]adP1Second coordinate of control point
[in]adP2Third coordinate of control point
[in]adWWeight of control point
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

Add a control point to the nurbs curve

Parameters
[in]adP0First coordinate of control point
[in]adP1Second coordinate of control point
[in]adP2Third coordinate of control point
[in]adP3Forth coordinate of control point
[in]adWWeight of control point
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

Add a control point to the nurbs curve

Parameters
[in]adP0First coordinate of control point
[in]adP1Second coordinate of control point
[in]adP2Third coordinate of control point
[in]adP3Forth coordinate of control point
[in]adP4Fifth coordinate of control point
[in]adWWeight of control point
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

Add a knot to the nurbs curve. If no knot given, the nurbs curve is setup with a uniform knot vector

Parameters
[in]adValueKnot value
[in]auMultiplicityRequested knot multiplicity
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_AXIS_INDEX_USED_TWICE, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ NrbPoint()

virtual uint32 CINOSMovePath::NrbPoint ( double  adP0,
double  adP1,
double  adWeight = 1.0 
)
virtual

Add a control point to the nurbs curve.

Parameters
[in]adP0First coordinate of control point
[in]adP1Second coordinate of control point
[in]adWWeight of control point
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ Prepare() [1/2]

virtual CMcResult CINOSMovePath::Prepare ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Precalculate the path.

Precalculation is useful if you have a complex path geometry, which needs time to calculate. A following Run to the path will immediately start the movements.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Prepare() [2/2]

virtual CMcResult CINOSMovePath::Prepare ( const char *  apSpeedset,
CINOSSync apSync = DF_INOS_SYNCHRONOUS 
)
virtual

Precalculate the path.

Precalculation is useful if you have a complex path geometry, which needs time to calculate. A following Run to the path will immediately start the movements.

Parameters
[in]apSpeedsetRequested speedset to run the path
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Reset()

virtual uint32 CINOSMovePath::Reset ( )
virtual

Reset the path, resets curves, interpolators and trajectories does not reset parameters of the movepath.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Run() [1/2]

virtual CMcResult CINOSMovePath::Run ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Run the path.

If you have a complex path, use Precalculate to ensure the path immediately starts at Run

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ Run() [2/2]

virtual CMcResult CINOSMovePath::Run ( const char *  apSpeedset,
CINOSSync apSync = DF_INOS_SYNCHRONOUS 
)
virtual

Run the path.

If you have a complex path, use Precalculate to ensure the path immediately starts at Run

Parameters
[in]apSpeedsetapSpeedset Requested speedset to run the path
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

◆ SegBegin()

virtual uint32 CINOSMovePath::SegBegin ( uint32  auId = 0xffffffff,
uint32  auFlags = 0x00000000,
double  adTolerance = -1.0,
double  adVelocity = -1.0 
)
virtual

Mark the begin of a movepath segment.

In a movepath segment, all added geometry parts are done in parallel

Parameters
[in]auIdRequested segment id. This can be any value and can be used to later identify the currently running segment.
[in]auFlagsRequested path flags, valid flags are DF_INOS_MOVEPATH_FLAG_ABS, DF_INOS_MOVEPATH_FLAG_INC
[in]adToleranceRequested segment tolerance [units]. It depends on the interpolator if this value is taken into account
[in]adVelocityRequested segment velocity [units/sec]
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_NO_AXIS_SET, INOS_MOVEPATH_ERROR_INVALID_TOLERANCE, INOS_MOVEPATH_ERROR_INVALID_VELOCITY, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ SegEnd()

virtual uint32 CINOSMovePath::SegEnd ( )
virtual

Exit segment mode.

Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ SetAxis()

virtual uint32 CINOSMovePath::SetAxis ( const char *  apName,
uint8  auIndex,
uint32  auFlags = 0x00000000,
const char *  apType = "PosAxis" 
)
virtual

Map given axis name to given index.

Parameters
[in]apNameName of axis to map
[in]auIndexIndex the axis name is to be mapped to
[in]auFlagsAxis flags, only DF_INOS_MOVEPATH_FLAG_NLG valid here
[in]apTypeAxis type, only "PosAxis" and "SpeedAxis" valid here
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_ASCENDING_AXIS_INDEX, INOS_MOVEPATH_ERROR_UNKNOWN_AXIS

◆ SetEventDescriptor()

virtual uint32 CINOSMovePath::SetEventDescriptor ( struct SINOSMovePathEventDesc *  apDesc)
virtual

Set event receiver.

Parameters
apDescPointer to event descriptor
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ SetMapping()

uint32 CINOSMovePath::SetMapping ( class CINOSMatrix *  apMapping)

Set a virtual to physical axis mapping.

Parameters
apMappingPointer to the corresponding translation matrix or NULL if current mapping needs to be cleared
Returns
Returns INOS_OK if successful or an appropriate error code (see INOS_MOVEPATH_ERROR_xxx in inoserror.h).

◆ SetParam() [1/4]

virtual uint32 CINOSMovePath::SetParam ( const char *  apName,
const char *  apValue 
)
virtual

Set movepath parameter to given value.

Parameters
[in]apNameParameter name, see also Parameter
[in]apValueRequested value
Returns
Returns INOS_OK in case of success or an appropriate error

◆ SetParam() [2/4]

virtual uint32 CINOSMovePath::SetParam ( const char *  apName,
double  adValue 
)
virtual

Set movepath parameter to given value.

Parameters
[in]apNameParameter name, see also Parameter
[in]adValueRequested value
Returns
Returns INOS_OK in case of success or an appropriate error

◆ SetParam() [3/4]

virtual uint32 CINOSMovePath::SetParam ( uint8  auIndex,
const char *  apName,
const char *  apValue 
)
virtual

Set axis specific movepath parameter to given value.

Parameters
[in]auIndexRequested axis index
[in]apNameParameter name, see also Parameter
[in]apValueRequested value
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX

◆ SetParam() [4/4]

virtual uint32 CINOSMovePath::SetParam ( uint8  auIndex,
const char *  apName,
double  adValue 
)
virtual

Set axis specific movepath parameter to given value.

Parameters
[in]auIndexRequested axis index
[in]apNameParameter name, see also Parameter
[in]adValueRequested value
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX

◆ Start()

virtual uint32 CINOSMovePath::Start ( uint8  auIndex,
double  adPosition 
)
virtual

Set curve start position of given axis.

This method allows to set an axis starting point of a movepath and is only used if the path has absolute positions.

Parameters
[in]auIndexIndex of requested axis
[in]adPositionRequested axis starting position
Returns
Returns INOS_OK in case of success or one of the following errors INOS_MOVEPATH_ERROR_INVALID_AXIS_INDEX, INOS_MOVEPATH_ERROR_COMMAND_REJECTED_WRONG_STATE

◆ Stop()

virtual uint32 CINOSMovePath::Stop ( CINOSSync apSync = DF_INOS_SYNCHRONOUS)
virtual

Stop the running path.

Parameters
[in]apSyncapSync A pointer to a sync object if used asynchronous
Returns
Returns INOS_OK in case of success or an appropriate error

The documentation for this class was generated from the following file: