/*========================================================== File: Dynamic.h Prupose: Dynamic parameters of a connection Author: Yann Le Tensorer Creation Date: 29 january 1997 Revision : Yann Le Tensorer 04 february 1997 Added function fn_vDynamicObject_GetParams Version 1.01 ===========================================================*/ #include "acp_base.h" #include "mth_real.h" #ifndef __DYNA_H__ #define __DYNA_H__ #define C_ucNone 0 #define C_ucConst 1 #define C_ucLinear 2 #define C_ucSinus 3 typedef struct _ACP_tdstDynaParam { unsigned char ucDynamicType; unsigned char ucSamplingRate; MTH_tdxReal xSpeed; MTH_tdxReal xStartSpeed; MTH_tdxReal xStartAngle; MTH_tdxReal xEndAngle; MTH_tdxReal xEndSpeed; MTH_tdxReal xMaxSpeed; MTH_tdxReal* d_stListOfSpeeds; } ACP_tdstDynaParam; #ifdef __cplusplus extern "C" { #endif /*========================================================== Function name: fn_vDynamicObject_Calculate Description: Caculates the speeds at sampled points, according to dynamic parameters Input: p_stDynaParam: pointer to a pre-created tdstDynaParam structure Output: none Author: Yann Le Tensorer Date: 30 january 1997 Revision: ==========================================================*/ void fn_vDynamicObject_Calculate(ACP_tdstDynaParam* p_stDynaParam); /*========================================================== Function name: fn_vDynamicObject_Create Description: Creates a dynamic parameters object Input: p_stDynaParam: pointer to a preallocated tdstDynaParam structure ucSamplingRate: sampling rate ucDynamicType: dynamic type (C_NONE,C_CONST,C_LINEAR,C_SINUS) xFirst,xSecond,xThird: See table below Type: | C_NONE | C_CONST | C_LINEAR | C_SINUS =========================================================== xFirst | - | speed | start speed | start angle | | | | xSecond | - | - | end speed | end angle | | | | xThird | - | - | - | max speed Output: none Author: Yann Le Tensorer Date: 30 january 1997 Revision: ==========================================================*/ void fn_vDynamicObject_Create( ACP_tdstDynaParam* p_stDynaParam, unsigned char ucSamplingRate, unsigned char ucDynamicType, MTH_tdxReal xFirst, MTH_tdxReal xSecond, MTH_tdxReal xThird); /*========================================================== Function name: fn_vDynaParams_Free Description: removes the allocated ram for DynaParams Input: p_stDynaParam: pointer to a pre-created tdstDynaParam structure Output: none Author: Yann Le Tensorer Date: 30 january 1997 Revision: ==========================================================*/ void fn_vDynamicObject_Free(ACP_tdstDynaParam* p_stDynaParam); /*========================================================== Function name: fn_vDynamicObject_ChangeParams Description: changes the dynamic parameters (except sampling rate) Input: p_stDynaParam: pointer to a preallocated tdstDynaParam structure ucDynamicType: dynamic type (C_ucNone,C_ucConst,C_ucLinear,C_ucSinus) xFirst,xSecond,xThird: See table below Type: | C_ucNone | C_ucConst | C_ucLinear | C_ucSinus =========================================================== xFirst | - | speed | start speed | start angle | | | | xSecond | - | - | end speed | end angle | | | | xThird | - | - | - | max speed Output: none Author: Yann Le Tensorer Date: 30 january 1997 Revision: ==========================================================*/ void fn_vDynamicObject_ChangeParams( ACP_tdstDynaParam* p_stDynaParam, unsigned char ucDynamicType, MTH_tdxReal xFirst, MTH_tdxReal xSecond, MTH_tdxReal xThird); /*========================================================== Function name: fn_vDynamicObject_GetParams Description: Gets the dynamic parameters (including sampling rate) Input: p_stDynaParam: pointer to a preallocated tdstDynaParam structure p_ucDynamicType:pointer to get dynamic type (C_ucNone,C_ucConst,C_ucLinear,C_ucSinus) p_SamplingRate: pointer to get sampling rate p_xFirst,p_xSecond,p_xThird:pointers to parameters to get See table below Type: | C_ucNone | C_ucConst | C_ucLinear | C_ucSinus =========================================================== xFirst | - | speed | start speed | start angle | | | | xSecond | - | - | end speed | end angle | | | | xThird | - | - | - | max speed Output: none Author: Yann Le Tensorer Date: 04 february 1997 Revision: ==========================================================*/ void fn_vDynamicObject_GetParams( ACP_tdstDynaParam* p_stDynaParam, unsigned char* p_ucDynamicType, unsigned char* p_ucSamplingRate, MTH_tdxReal* p_xFirst, MTH_tdxReal* p_xSecond, MTH_tdxReal* p_xThird); /*========================================================== Function name: fn_xDynamicObject_GetSpeed Description: returns the speed at a given sample (n° of the point) Input: p_stDynaParam: pointer to a pre-created tdstDynaParam structure ucSampleNo: n° of the point to get the speed from. Output: return value is the speed. Author: Yann Le Tensorer Date: 31 january 1997 Revision: ==========================================================*/ MTH_tdxReal fn_xDynamicObject_GetSpeed(ACP_tdstDynaParam* p_stDynaParams,unsigned char ucSampleNo); /*========================================================== Function name: fn_vDynamicObject_ChangeSamplingRate Description: Changes the sampling rate of a dynamic object Input: p_stDynaParam: pointer to a preallocated tdstDynaParam structure ucSamplingRate: sampling rate Output: none Author: Yann Le Tensorer Date: 5 february 1997 Revision: ==========================================================*/ void fn_vDynamicObject_ChangeSamplingRate( ACP_tdstDynaParam* p_stDynaParam, unsigned char ucSamplingRate); /*========================================================== Function name: fn_vDynamicObject_CreateNotSampled Description: Creates a dynamic parameters object for not sampled type Input: p_stDynaParam: pointer to a preallocated tdstDynaParam structure ucDynamicType: dynamic type (C_NONE,C_CONST,C_LINEAR,C_SINUS) xFirst,xSecond,xThird: See table below Type: | C_NONE | C_CONST | C_LINEAR | C_SINUS =========================================================== xFirst | - | speed | start speed | start angle | | | | xSecond| - | - | end speed | end angle | | | | xThird | - | - | - | max speed Output: none Author: Albert Pais Date: February 04, 1997 Revision: ==========================================================*/ void fn_vDynamicObject_CreateNotSampled ( ACP_tdstDynaParam* /*p_stDynaParam*/, unsigned char /*ucDynamicType*/, MTH_tdxReal /*xFirst*/, MTH_tdxReal /*xSecond*/, MTH_tdxReal /*xThird*/ ); /*========================================================== Function name: fn_vDynamicObject_CalculateNotSampled Description: Caculates specific coef when speed is not sampled Input: p_stDynaParam: pointer to a pre-created tdstDynaParam structure the initial dist beetween the initial point and the final point Output: none Remark : The xSpeed field of the structure is used to store some parameters used at execution Author: Albert Pais Date: Frebruary 4,1997 Revision: ==========================================================*/ void fn_vDynamicObject_CalculateNotSampled ( ACP_tdstDynaParam* /*_p_stDynaParam*/, MTH_tdxReal /*_xInitialDist*/ ); /*========================================================== Function name: fn_xDynamicObject_GetSpeedNotSampled Description: returns the speed at a given position when it is not sampled Input: p_stDynaParam: pointer to a pre-created tdstDynaParam structure _xDist : the dist beetween the position where speed is required and the point to reach Output: return value is the speed. Author: Albert Pais Date: February 4,1997 Revision: ==========================================================*/ MTH_tdxReal fn_xDynamicObject_GetSpeedNotSampled ( ACP_tdstDynaParam* /*_p_stDynaParams*/, MTH_tdxReal /*_xDist*/ ); #ifdef __cplusplus } #endif #endif