cml__linkage_8h-source.html

来自「美国COPLEY驱动器,程序开发工具之一.」· HTML 代码 · 共 444 行 · 第 1/4 页

HTML
444
字号
<a name="l00325"></a>00325 <span class="comment">   /// @param pos An array of amplifer positions on entry, and axes positions</span><a name="l00326"></a>00326 <span class="comment">   ///            on exit.</span><a name="l00327"></a>00327 <span class="comment">   /// @param vel An array of amplifier velocities on entry, and axis velocities</span><a name="l00328"></a>00328 <span class="comment">   ///            on exit.</span><a name="l00329"></a>00329 <span class="comment">   /// @return NULL on success or an Error pointer on failure.</span><a name="l00330"></a><a class="code" href="classLinkage.html#a24">00330</a> <span class="comment"></span>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *<a class="code" href="classLinkage.html#a24">ConvertAmpToAxis</a>( <a class="code" href="CML__Utils_8h.html#a11">uunit</a> pos[], <a class="code" href="CML__Utils_8h.html#a11">uunit</a> vel[] ){ <span class="keywordflow">return</span> 0; }<a name="l00331"></a>00331 <span class="comment"></span><a name="l00332"></a>00332 <span class="comment">   /// Convert position &amp; velocity information from the axis frame to the amplifier frame.</span><a name="l00333"></a>00333 <span class="comment">   ///</span><a name="l00334"></a>00334 <span class="comment">   /// The passed arrays contain a position and velocity for each axis on entry.</span><a name="l00335"></a>00335 <span class="comment">   /// These values should be converted to amp positions &amp; velocities in this function.</span><a name="l00336"></a>00336 <span class="comment">   ///</span><a name="l00337"></a>00337 <span class="comment">   /// By default, this function doesn't do anything, however it is a virtual </span><a name="l00338"></a>00338 <span class="comment">   /// function to allow it to be extended in sub-classes.</span><a name="l00339"></a>00339 <span class="comment">   /// @param pos An array of axis positions on entry, and amplifier positions</span><a name="l00340"></a>00340 <span class="comment">   ///            on exit.</span><a name="l00341"></a>00341 <span class="comment">   /// @param vel An array of axis velocities on entry, and amplifier velocities</span><a name="l00342"></a>00342 <span class="comment">   ///            on exit.</span><a name="l00343"></a>00343 <span class="comment">   /// @return NULL on success or an Error pointer on failure.</span><a name="l00344"></a><a class="code" href="classLinkage.html#a25">00344</a> <span class="comment"></span>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *<a class="code" href="classLinkage.html#a25">ConvertAxisToAmp</a>( <a class="code" href="CML__Utils_8h.html#a11">uunit</a> pos[], <a class="code" href="CML__Utils_8h.html#a11">uunit</a> vel[] ){ <span class="keywordflow">return</span> 0; }<a name="l00345"></a>00345 <span class="comment"></span><a name="l00346"></a>00346 <span class="comment">   /// This is an event map that is used to track linkage</span><a name="l00347"></a>00347 <span class="comment">   /// events and state changes</span><a name="l00348"></a><a class="code" href="classLinkage.html#o0">00348</a> <span class="comment"></span>   <a class="code" href="classEventMap.html">EventMap</a> <a class="code" href="classLinkage.html#o0">eventMap</a>;<a name="l00349"></a>00349 <a name="l00350"></a>00350 <span class="keyword">private</span>:<a name="l00351"></a>00351    <a class="code" href="classLinkSettings.html">LinkSettings</a> cfg;<a name="l00352"></a>00352    <a class="code" href="classRPDO__LinkCtrl.html">RPDO_LinkCtrl</a> ctrlPDO;<a name="l00353"></a>00353    <a class="code" href="CML__Utils_8h.html#a8">uint16</a> ampct;<a name="l00354"></a>00354    <a class="code" href="classAmp.html">Amp</a> *amp[ <a class="code" href="CML__Settings_8h.html#a6">CML_MAX_AMPS_PER_LINK</a> ];<a name="l00355"></a>00355    <a class="code" href="CML__Utils_8h.html#a11">uunit</a> maxVel, maxAcc, maxDec, maxJrk;<a name="l00356"></a>00356    <a class="code" href="classSemaphore.html">Semaphore</a> startSema;<a name="l00357"></a>00357 <a name="l00358"></a>00358 <span class="preprocessor">#ifdef CML_ALLOW_FLOATING_POINT</span><a name="l00359"></a>00359 <span class="preprocessor"></span>   <a class="code" href="classLinkTrjScurve.html">LinkTrjScurve</a> scurve;<a name="l00360"></a>00360 <span class="preprocessor">#endif</span><a name="l00361"></a>00361 <span class="preprocessor"></span><a name="l00362"></a>00362    <span class="keywordtype">int</span> latchedErrAmp;<a name="l00363"></a>00363    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *latchedErr;<a name="l00364"></a>00364 <a name="l00365"></a>00365    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *LatchError( <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *err, <span class="keywordtype">int</span> ndx );<a name="l00366"></a>00366 <a name="l00367"></a>00367    <span class="keywordtype">void</span> CheckIndex( <a class="code" href="CML__Utils_8h.html#a8">uint16</a> i );<a name="l00368"></a>00368 <a name="l00369"></a>00369 <span class="preprocessor">#ifdef CML_LINKAGE_TRJ_BUFFER_SIZE</span><a name="l00370"></a>00370 <span class="preprocessor"></span><span class="comment">   /// Utility class used internally by the linkage object</span><a name="l00371"></a>00371 <span class="comment"></span>   <span class="keyword">class </span><a class="code" href="classLinkage.html#n0">AmpTrj</a>: <span class="keyword">public</span> <a class="code" href="classTrajectory.html">Trajectory</a><a name="l00372"></a>00372    {<a name="l00373"></a>00373       <a class="code" href="classLinkage.html">Linkage</a> *linkPtr;<a name="l00374"></a>00374       <a class="code" href="CML__Utils_8h.html#a6">uint8</a> ampNum, head, tail;<a name="l00375"></a>00375       <span class="keywordtype">bool</span> inUse;<a name="l00376"></a>00376       <a class="code" href="CML__Utils_8h.html#a11">uunit</a> p[ <a class="code" href="CML__Settings_8h.html#a7">CML_LINKAGE_TRJ_BUFFER_SIZE</a> ];<a name="l00377"></a>00377       <a class="code" href="CML__Utils_8h.html#a11">uunit</a> v[ <a class="code" href="CML__Settings_8h.html#a7">CML_LINKAGE_TRJ_BUFFER_SIZE</a> ];<a name="l00378"></a>00378       <a class="code" href="CML__Utils_8h.html#a6">uint8</a> t[ <a class="code" href="CML__Settings_8h.html#a7">CML_LINKAGE_TRJ_BUFFER_SIZE</a> ];<a name="l00379"></a>00379       <span class="keywordtype">bool</span>  u[ <a class="code" href="CML__Settings_8h.html#a7">CML_LINKAGE_TRJ_BUFFER_SIZE</a> ];<a name="l00380"></a>00380 <a name="l00381"></a>00381    <span class="keyword">public</span>:<a name="l00382"></a>00382       <span class="keywordtype">void</span> <a class="code" href="classLinkage.html#a2">Init</a>( <a class="code" href="classLinkage.html">Linkage</a> *lptr );<a name="l00383"></a>00383       <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *StartNew( <span class="keywordtype">void</span> );<a name="l00384"></a>00384       <span class="keywordtype">void</span> Finish( <span class="keywordtype">void</span> );<a name="l00385"></a>00385       <span class="keywordtype">bool</span> UseVelocityInfo( <span class="keywordtype">void</span> );<a name="l00386"></a>00386       <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *NextSegment( <a class="code" href="CML__Utils_8h.html#a11">uunit</a> &amp;pos, <a class="code" href="CML__Utils_8h.html#a11">uunit</a> &amp;vel, <a class="code" href="CML__Utils_8h.html#a6">uint8</a> &amp;time );<a name="l00387"></a>00387       <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *AddPoint( <a class="code" href="CML__Utils_8h.html#a11">uunit</a> pos, <a class="code" href="CML__Utils_8h.html#a11">uunit</a> vel, <a class="code" href="CML__Utils_8h.html#a6">uint8</a> time, <span class="keywordtype">bool</span> useVel );<a name="l00388"></a>00388    };<a name="l00389"></a><a class="code" href="classLinkage.html#n0">00389</a>    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classLinkage.html#n0">AmpTrj</a>;<a name="l00390"></a>00390 <a name="l00391"></a>00391    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *RequestNextTrjPoint( <span class="keywordtype">void</span> );<a name="l00392"></a>00392 <a name="l00393"></a>00393    <a class="code" href="classLinkTrajectory.html">LinkTrajectory</a> *linkTrjPtr;<a name="l00394"></a>00394    <a class="code" href="classLinkage.html#n0">AmpTrj</a> ampTrj[ <a class="code" href="CML__Settings_8h.html#a6">CML_MAX_AMPS_PER_LINK</a> ];<a name="l00395"></a>00395 <span class="preprocessor">#endif</span><a name="l00396"></a>00396 <span class="preprocessor"></span><span class="comment"></span><a name="l00397"></a>00397 <span class="comment">   /// Utility class used to keep the linkage status up to date</span><a name="l00398"></a>00398 <span class="comment">   /// as the status of it's amplifiers change.</span><a name="l00399"></a>00399 <span class="comment"></span>   <span class="keyword">class </span><a class="code" href="classLinkage.html#n1">StateEvent</a>: <span class="keyword">public</span> <a class="code" href="classEvent.html">Event</a><a name="l00400"></a>00400    {<a name="l00401"></a>00401       <span class="keyword">public</span>:<a name="l00402"></a>00402     <a class="code" href="classLinkage.html">Linkage</a> *link;<a name="l00403"></a>00403     <a class="code" href="classLinkage.html#n1">StateEvent</a>( <span class="keywordtype">void</span> ): <a class="code" href="classEvent.html">Event</a>(0){}<a name="l00404"></a>00404     <span class="keywordtype">bool</span> isTrue( <a class="code" href="CML__Utils_8h.html#a10">uint32</a> mask );<a name="l00405"></a>00405    };<a name="l00406"></a><a class="code" href="classLinkage.html#n1">00406</a>    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classLinkage.html#n1">StateEvent</a>;<a name="l00407"></a>00407    <a class="code" href="classLinkage.html#n1">StateEvent</a> stateEvent[ <a class="code" href="CML__Settings_8h.html#a6">CML_MAX_AMPS_PER_LINK</a> ];<a name="l00408"></a>00408 <a name="l00409"></a>00409    <span class="keywordtype">int</span> trjUseCount;<a name="l00410"></a>00410    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *IncTrjUseCount( <span class="keywordtype">void</span> );<a name="l00411"></a>00411    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *DecTrjUseCount( <span class="keywordtype">void</span> );<a name="l00412"></a>00412    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *SetControlWord( <a class="code" href="CML__Utils_8h.html#a8">uint16</a> value );<a name="l00413"></a>00413    <span class="keyword">const</span> <a class="code" href="classError.html">Error</a> *GetError( <a class="code" href="CML__Utils_8h.html#a10">uint32</a> mask );<a name="l00414"></a>00414    <span class="keywordtype">void</span> run( <span class="keywordtype">void</span> );<a name="l00415"></a>00415 <a name="l00416"></a>00416    <span class="keywordtype">void</span> UpdateStatus( <span class="keywordtype">void</span> );<a name="l00417"></a>00417 <a name="l00418"></a>00418    <span class="keywordtype">void</span> InvalidateAmp( <a class="code" href="classAmp.html">Amp</a> *a );<a name="l00419"></a><a class="code" href="classLinkage.html#n2">00419</a>    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classAmp.html">Amp</a>;<a name="l00420"></a>00420 };<a name="l00421"></a>00421 <a name="l00422"></a>00422 <a class="code" href="CML__Settings_8h.html#a12">CML_NAMESPACE_END</a>()<a name="l00423"></a>00423 #endif<a name="l00424"></a>00424 </pre></div><hr><address style="align: right;"><small>Copley Motion Library, Copyright (c) 2002-2003<a href="http://www.copleycontrols.com"><img src="CCC_logo.gif" alt="Copley Controls Corp." align="middle" border=0 ></a></small></address></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?