27#ifndef INC_CINOSMOVEPATHTRAJECTORY_H
28#define INC_CINOSMOVEPATHTRAJECTORY_H
156 TINOSMovePathVec&
vPos,
157 TINOSMovePathVec&
vVel,
158 TINOSMovePathVec&
vAcc,
159 TINOSMovePathVec&
vJrk);
162 TINOSMovePathVec&
vPos,
163 TINOSMovePathVec&
vVel,
164 TINOSMovePathVec&
vAcc,
165 TINOSMovePathVec&
vJrk);
179 TINOSMovePathVec &
avPos,
180 TINOSMovePathVec &
avVel,
181 TINOSMovePathVec &
avAcc,
182 TINOSMovePathVec &
avJrk);
186 eFlgNone = 0x00000000,
187 eFlgStopSupported = 0x00000001,
188 eFlgNeedsInterpolatorSegments = 0x00000002,
241 TINOSMovePathVec&
vPos) = 0;
244 ePutDataFlgNone = 0x00000000,
245 ePutDataFlgWaitIfFull = 0x00000001,
276 TINOSMovePathVec&
vDir);
328 inos_std::vector<CINOSMovePathResource*> m_vResources;
330 uint32 m_uNoResources = 0;
339 eFlgIntCancelRequest = 0x00000001
354 eFlgFull = 0x00000001,
355 eFlgNoMoreData = 0x00000002,
356 eFlgWrapAround = 0x00000004,
357 eFlgCalculated = 0x00000008,
358 eFlgDelegate = 0x00000010,
359 eFlgFollow = 0x00000020,
360 eFlgEnd = 0x00000040,
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmcrobot.h:206
Definition cinosmovepathcurve.h:56
Definition cinosmovepathsegment.h:45
Definition cinosmovepathtrajectory.h:81
uint32 m_uFilterLength
filter length
Definition cinosmovepathtrajectory.h:443
TINOSMovePathVec * m_pBuffer
the buffer
Definition cinosmovepathtrajectory.h:385
void ReleaseRegister()
release inco registration
Definition cinosmovepathtrajectory.h:284
uint32 HandlePrestartEvent()
handle prestart event
virtual uint32 PrepareRun()
prepare trajectory to run
double m_dTime
current timestamp
Definition cinosmovepathtrajectory.h:409
inos_std::vector< uint8 > m_uMainCycleDownSampling
main cycle down sampling
Definition cinosmovepathtrajectory.h:326
uint32 WaitCmd(uint32 auCommand, uint32 auError=INOS_MOVEPATH_ERROR_NO_COMMAND_QUEUE)
wait for either auCommand or eCmdAbort
void GetActual(SINOSRampData &aActual)
Get actual path s,v,a,j.
Definition cinosmovepathtrajectory.h:200
double CalcRotationAngle(TINOSMovePathVec &vUnitVector1, TINOSMovePathVec &vUnitVector2)
uint32 m_uBufferTotalWr
buffer write total index
Definition cinosmovepathtrajectory.h:373
virtual uint32 PrepareEvents()
prepare events
CINOSMovePathTrajectory(class CINOSMovePath *apPath=NULL)
constructor
uint32 m_uBufferCnt
buffer entries
Definition cinosmovepathtrajectory.h:379
uint32 m_uBufferSize
buffer size
Definition cinosmovepathtrajectory.h:365
TINOSMovePathVec m_vFollowDir
actual direction vector
Definition cinosmovepathtrajectory.h:458
virtual uint32 Stop()=0
stop move path
class CINOSMovePathResourceAxis * GetAxis(uint32 auIndex)
get pointer to axis
uintid m_uActiveHookId
active hook id
Definition cinosmovepathtrajectory.h:387
uint32 HandleEvents()
handle events
virtual uint32 GetData(TINOSMovePathVec &vPos, TINOSMovePathVec &vVel, TINOSMovePathVec &vAcc, TINOSMovePathVec &vJrk)
get data from trajectory buffer
virtual uint32 iPrepare()=0
prepare run
uint8 m_uMainOversampling
main axis oversampling
Definition cinosmovepathtrajectory.h:324
uint64 m_uTicksStart
start ticks
Definition cinosmovepathtrajectory.h:399
uint32 m_uFollowIndex
index of axis to follow
Definition cinosmovepathtrajectory.h:452
double m_dCycleTime
cycle time
Definition cinosmovepathtrajectory.h:316
class CINOSMovePathCurve * GetPrepareCurve()
get pointer to my prepare curve
TINOSMovePathVec m_vPos
position
Definition cinosmovepathtrajectory.h:421
uint32 m_uBufferReady
buffer ready level
Definition cinosmovepathtrajectory.h:367
uint32 m_uBufferWr
buffer write index
Definition cinosmovepathtrajectory.h:371
class CINOSMovePath * m_pPath
pointer to my path
Definition cinosmovepathtrajectory.h:314
double m_dFollowFactor
follow unit factor
Definition cinosmovepathtrajectory.h:454
uint32 m_uBufferFlags
buffer flags
Definition cinosmovepathtrajectory.h:363
TINOSMovePathVec m_vVel
velocity
Definition cinosmovepathtrajectory.h:423
virtual uint32 Prepare()
prepare move path
TINOSMovePathVec m_vOffset
running offset
Definition cinosmovepathtrajectory.h:389
virtual uint32 Break()=0
break move path
virtual uint32 iCancelData()
internal cancel data
virtual uint32 PrepareAppend()=0
prepare trajectory of curve to append
virtual uint32 Run(TINOSMovePathVec &vOffset, bool abDelegate)
run move path
void GetPositionLast(TINOSMovePathVec &ovLast)
get last path position vector
uint32 GetBufferFillLevel() const
double m_dFilterFactor
filter
Definition cinosmovepathtrajectory.h:445
void CalcFollow(TINOSMovePathVec &vPos, TINOSMovePathVec &vDir)
calc follow axis
CINOSMovePathSegment * m_pActSegment
current act segment
Definition cinosmovepathtrajectory.h:434
CINOSMovePathSegment * m_pPathSegment
current segment
Definition cinosmovepathtrajectory.h:394
inos_std::vector< uint8 > m_vCycleDownSampling
main cycle down sampling
Definition cinosmovepathtrajectory.h:438
TINOSMovePathVec m_vFilterPos
filtered position
Definition cinosmovepathtrajectory.h:447
uint32 m_uBufferLow
buffer low level
Definition cinosmovepathtrajectory.h:369
virtual uint32 PutData(CINOSMovePathSegment *apSegment, double adP, TINOSMovePathVec &vPos, uint32 auFlags)
put data into trajectory buffer
uint32 m_uBusTicksPerAxisTick
bus ticks per axis tick
Definition cinosmovepathtrajectory.h:407
class CINOSMovePath * GetPath()
get pointer to my path
Definition cinosmovepathtrajectory.h:223
virtual uint32 Append()=0
prepare trajectory of curve to append
CINOSMovePathSegment * m_pNextSegment
next act segment
Definition cinosmovepathtrajectory.h:436
virtual uint32 GetMoveLength(double &adMoveLength)
Return the path length [path units].
CINCOObject * GetRegister()
get pointer to inco registration (if any)
Definition cinosmovepathtrajectory.h:302
uint8 m_uMainAxisIndex
main axis index
Definition cinosmovepathtrajectory.h:322
uint32 HandleCmd(uint32 auError=INOS_OK)
check command queue
double m_dP
current position
Definition cinosmovepathtrajectory.h:411
SINOSRampParam m_sSpeedSet
speedset
Definition cinosmovepathtrajectory.h:335
uint32 m_uBufferRd
buffer read index
Definition cinosmovepathtrajectory.h:375
class CINOSMovePathCurve * GetRunCurve()
get pointer to run curve
SINOSMovePathActual * m_pActual
actuals (handled over to inco registration of involved axes)
Definition cinosmovepathtrajectory.h:417
inosName32 m_cType
type
Definition cinosmovepathtrajectory.h:310
double * m_pBufferP
corresponding buffer virtual position P
Definition cinosmovepathtrajectory.h:383
virtual uint32 CancelData()
cancel trajectory buffer data
virtual ~CINOSMovePathTrajectory()
destructor
virtual bool GenData(CINOSMovePathSegment *&opSegment, double &adP, TINOSMovePathVec &vPos)=0
generate data
void EmitEvent(CINOSMovePathEvent *apEvent, uint64 auTicksStart)
emit event
uint8 m_uCycleDownSampling[DF_INOS_MOVEPATH_MAX_AXES]
main cycle down sampling
Definition cinosmovepathtrajectory.h:430
double m_dCycleTime_1
inverse cycle time
Definition cinosmovepathtrajectory.h:318
virtual CINCOObject * RequestRegister()
return pointer to inco registration
virtual uint32 GetMoveTicks(uint64 &adMoveTicks, double arDelta=0.0)
Return bus ticks the path needs until End - Delta.
virtual uint32 Continue()=0
continue move path
TINOSMovePathVec m_vJrk
jerk
Definition cinosmovepathtrajectory.h:427
virtual uint32 GetMoveTime(double &adMoveTime, double adDelta=0.0)
Return time [sec] the path needs until End - Delta.
Definition cinosmovepathtrajectory.h:93
double m_dActP
p value
Definition cinosmovepathtrajectory.h:419
virtual void iActiveHook()
active hook
double m_dSlowMotion
slowmotion factor
Definition cinosmovepathtrajectory.h:320
uint32 GetFlags()
Returns general trajectory generator flags.
Definition cinosmovepathtrajectory.h:193
virtual uint32 GetMoveRemaining(double &adMoveRemaining)
Return the remaining path length [path units]. It can be used to ask for the actual remaining length ...
void SetPath(class CINOSMovePath *apPath)
set pointer to my path
Definition cinosmovepathtrajectory.h:226
uint32 m_uFlags
trajectory generator flags
Definition cinosmovepathtrajectory.h:312
virtual uint32 GetMaxConstantVelocity(double &adMaxConstantVelocity, CINOSMovePathCurve *apCurve)
Return the max. allowed constant velocity the path can be run with without violating any axes limits ...
char m_cSpeedSet[64]
speedset name
Definition cinosmovepathtrajectory.h:333
virtual uint32 Cancel()
cancel move path
SINOSMovePathActual m_Actual
internal actuals
Definition cinosmovepathtrajectory.h:415
CINOSMovePathSegment ** m_ppBufferSegment
corresponding segment
Definition cinosmovepathtrajectory.h:381
uint8 m_uBusId
bus id
Definition cinosmovepathtrajectory.h:403
virtual uint32 GetData(uint32 &ouSegmentId, TINOSMovePathVec &vPos, TINOSMovePathVec &vVel, TINOSMovePathVec &vAcc, TINOSMovePathVec &vJrk)
get data from trajectory buffer
CINCOObject * m_pRegister
pointer to inco registration
Definition cinosmovepathtrajectory.h:463
uint32 m_uBusTicksPerMs
bus ticks per ms
Definition cinosmovepathtrajectory.h:405
double m_dFollowAngle
actual follow angle
Definition cinosmovepathtrajectory.h:456
uint32 PutCmd(uint32 auCommand)
put command to command queue
uint32 m_uRegisterCnt
inco tree registration counter
Definition cinosmovepathtrajectory.h:461
TINOSMovePathVec m_vAcc
acceleration
Definition cinosmovepathtrajectory.h:425
uint32 m_uBufferTotalRd
buffer read total index
Definition cinosmovepathtrajectory.h:377
EBufferType
buffer type
Definition cinosmovepathtrajectory.h:347
virtual uint32 HandleData(CINOSMovePathSegment *apSegment, TINOSMovePathVec &avPos, TINOSMovePathVec &avVel, TINOSMovePathVec &avAcc, TINOSMovePathVec &avJrk)
handle data of all resources
uint32 m_uTicksCurrent
current ticks
Definition cinosmovepathtrajectory.h:401
uint32 m_uFlagsInternal
internal flags
Definition cinosmovepathtrajectory.h:342
Definition cinosmovepath.h:566
#define DF_INOS_MOVEPATH_MAX_AXES
Definition inosdefault.h:144
uint32 INOS_OK
Definition inoserror.h:1677
uint32 INOS_MOVEPATH_ERROR_NO_COMMAND_QUEUE
Definition inoserror.h:1677
uint32 INOS_MOVEPATH_ERROR_TRJ_NOT_SUPPORTED
Definition inoserror.h:1677
Definition cinosmovepathtrajectory.h:50
static void Free(SINOSMovePathActual *apActual)
alloc
double m_dJerk
jerk
Definition cinosmovepathtrajectory.h:60
double m_dVelocity
velocity
Definition cinosmovepathtrajectory.h:56
double m_dPosition
position
Definition cinosmovepathtrajectory.h:54
uint32 m_uSegmentId
segment id
Definition cinosmovepathtrajectory.h:52
double m_dAcceleration
acceleration
Definition cinosmovepathtrajectory.h:58
SINOSMovePathActual * m_pNext
pointer to next in chain
Definition cinosmovepathtrajectory.h:68
static SINOSMovePathActual * m_pFirst
head of chain
Definition cinosmovepathtrajectory.h:70
static SINOSMovePathActual * Alloc()
alloc
ramp data
Definition cinosbaseramp.h:602
ramp parameters
Definition cinosbaseramp.h:503