<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>KatanaNativeInterface: include/KNI/kmlMotBase.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">KatanaNativeInterface <span id="projectnumber">$VERSION$</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('kmlMotBase_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <h1>kmlMotBase.h</h1> </div> </div> <div class="contents"> <a href="kmlMotBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span> <a name="l00002"></a>00002 <span class="comment">// C++ Interface: MotBase</span> <a name="l00003"></a>00003 <span class="comment">//</span> <a name="l00004"></a>00004 <span class="comment">// Description: </span> <a name="l00005"></a>00005 <span class="comment">//</span> <a name="l00006"></a>00006 <span class="comment">//</span> <a name="l00007"></a>00007 <span class="comment">// Author: Tiziano Müller <tiziano.mueller@neuronics.ch>, (C) 2006</span> <a name="l00008"></a>00008 <span class="comment">//</span> <a name="l00009"></a>00009 <span class="comment">// Copyright: See COPYING file that comes with this distribution</span> <a name="l00010"></a>00010 <span class="comment">//</span> <a name="l00011"></a>00011 <span class="comment">//</span> <a name="l00012"></a>00012 <a name="l00013"></a>00013 <span class="preprocessor">#ifndef KMLMOTBASE_H</span> <a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define KMLMOTBASE_H</span> <a name="l00015"></a>00015 <span class="preprocessor"></span> <a name="l00016"></a>00016 <span class="preprocessor">#include "common/exception.h"</span> <a name="l00017"></a>00017 <span class="preprocessor">#include "common/dllexport.h"</span> <a name="l00018"></a>00018 <a name="l00019"></a>00019 <span class="preprocessor">#include "KNI/kmlCommon.h"</span> <a name="l00020"></a>00020 <span class="preprocessor">#include "KNI/cplBase.h"</span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="preprocessor">#include <vector></span> <a name="l00023"></a>00023 <a name="l00024"></a>00024 <span class="keyword">class </span><a class="code" href="classCKatBase.html" title="Base Katana class.">CKatBase</a>; <span class="comment">// forward declaration</span> <a name="l00025"></a>00025 <span class="keyword">class </span><a class="code" href="classCMotBase.html" title="Motor class.">CMotBase</a>; <span class="comment">// forward declaration</span> <a name="l00026"></a>00026 <a name="l00027"></a>00027 <a name="l00028"></a>00028 <span class="comment">/****************************************************************************/</span> <a name="l00029"></a>00029 <span class="comment">// CMotBase ----------------------------------------------------------------//</span> <a name="l00030"></a>00030 <span class="comment">/****************************************************************************/</span> <a name="l00031"></a>00031 <a name="l00034"></a><a class="code" href="structTMotDesc.html">00034</a> <span class="keyword">struct </span><a class="code" href="structTMotDesc.html" title="motor description (partly)">TMotDesc</a> { <a name="l00035"></a><a class="code" href="structTMotDesc.html#a60bfea639b2f9f5ff8f2f74ff48f2177">00035</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDesc.html#a60bfea639b2f9f5ff8f2f74ff48f2177" title="slave number">slvID</a>; <a name="l00036"></a>00036 }; <a name="l00037"></a>00037 <a name="l00040"></a><a class="code" href="structTKatMOT.html">00040</a> <span class="keyword">struct </span><a class="code" href="structTKatMOT.html" title="[MOT] every motor&#39;s attributes">TKatMOT</a> { <a name="l00041"></a><a class="code" href="structTKatMOT.html#a822e9a16374937982558c139c257c757">00041</a> <span class="keywordtype">short</span> <a class="code" href="structTKatMOT.html#a822e9a16374937982558c139c257c757" title="count of motors">cnt</a>; <a name="l00042"></a><a class="code" href="structTKatMOT.html#a0130fd74b087f3868da0fdc763fe7aac">00042</a> <a class="code" href="classCMotBase.html" title="Motor class.">CMotBase</a>* <a class="code" href="structTKatMOT.html#a0130fd74b087f3868da0fdc763fe7aac" title="array of motors">arr</a>; <a name="l00043"></a><a class="code" href="structTKatMOT.html#af215a8f25c56e8dcc2d2c2dd49e20a96">00043</a> <a class="code" href="structTMotDesc.html" title="motor description (partly)">TMotDesc</a>* <a class="code" href="structTKatMOT.html#af215a8f25c56e8dcc2d2c2dd49e20a96" title="description[]">desc</a>; <a name="l00044"></a>00044 }; <a name="l00045"></a>00045 <a name="l00048"></a><a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343">00048</a> <span class="keyword">enum</span> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343" title="command flags">TMotCmdFlg</a> { <a name="l00049"></a><a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a3918f38f721e46b7fc74c8f8e9138f88">00049</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a3918f38f721e46b7fc74c8f8e9138f88" title="set the motor off">MCF_OFF</a> = 0, <a name="l00050"></a><a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a6d0109f9a662721667f731b5c04e9571">00050</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a6d0109f9a662721667f731b5c04e9571" title="calibrate">MCF_CALIB</a> = 4, <a name="l00051"></a><a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a313d9e0e728920106bda8541c2823086">00051</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a313d9e0e728920106bda8541c2823086" title="freeze the motor">MCF_FREEZE</a> = 8, <a name="l00052"></a><a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a9eea4a1984ad4910643fc2a9fb64d400">00052</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343a9eea4a1984ad4910643fc2a9fb64d400" title="set the motor on">MCF_ON</a> = 24 <a name="l00053"></a>00053 }; <a name="l00054"></a>00054 <a name="l00057"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9">00057</a> <span class="keyword">enum</span> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9" title="status flags">TMotStsFlg</a> { <a name="l00058"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a2a81029083bd6ad6edf57741f8d9c615">00058</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a2a81029083bd6ad6edf57741f8d9c615" title="mechanical stopper reached">MSF_MECHSTOP</a> = 1, <a name="l00059"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a74a862cdeab078729e6de4cb5814190a">00059</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a74a862cdeab078729e6de4cb5814190a" title="max. position was reached">MSF_MAXPOS</a> = 2, <a name="l00060"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9aceb47e65cbda2629eb57802eb07bbe4d">00060</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9aceb47e65cbda2629eb57802eb07bbe4d" title="min. position was reached">MSF_MINPOS</a> = 4, <a name="l00061"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9adf583df0969e5ea605f29a25518ae211">00061</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9adf583df0969e5ea605f29a25518ae211" title="in desired position">MSF_DESPOS</a> = 8, <a name="l00062"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a09a0b42f676d4bae943219c7d39c396d">00062</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a09a0b42f676d4bae943219c7d39c396d" title="trying to follow target">MSF_NORMOPSTAT</a> = 16, <a name="l00063"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9ac7d321f25db2c2ed6d26a1f191a161f8">00063</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9ac7d321f25db2c2ed6d26a1f191a161f8" title="motor has crashed">MSF_MOTCRASHED</a> = 40, <a name="l00064"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a628d480128ddf4b9b3cc51a77a420367">00064</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9a628d480128ddf4b9b3cc51a77a420367" title="non-linear movement ended">MSF_NLINMOV</a> = 88, <a name="l00065"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9abce01b6c162a5abf78d255d10d0c60d2">00065</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9abce01b6c162a5abf78d255d10d0c60d2" title="linear movement ended">MSF_LINMOV</a> = 152, <a name="l00066"></a><a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9abf817c191b35caddc18b0c03cce4fe21">00066</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9abf817c191b35caddc18b0c03cce4fe21" title="motor data not valid">MSF_NOTVALID</a> = 128 <a name="l00067"></a>00067 }; <a name="l00068"></a><a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71b">00068</a> <span class="keyword">enum</span> <a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71b">TSearchDir</a> { <a name="l00069"></a><a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71baa4895ca32bbe7ac5e12689125075b855">00069</a> <a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71baa4895ca32bbe7ac5e12689125075b855" title="search direction for the meachanical stopper">DIR_POSITIVE</a>, <a name="l00070"></a><a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71ba5ead8e8c76023f78988bf28de9080fbd">00070</a> <a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71ba5ead8e8c76023f78988bf28de9080fbd">DIR_NEGATIVE</a> <a name="l00071"></a>00071 }; <a name="l00072"></a>00072 <a name="l00073"></a>00073 <a name="l00074"></a>00074 <span class="comment">//--------------------------------------------------------------------------//</span> <a name="l00075"></a>00075 <a name="l00078"></a><a class="code" href="structTMotGNL.html">00078</a> <span class="keyword">struct </span><a class="code" href="structTMotGNL.html" title="[GNL] motor generals">TMotGNL</a> { <a name="l00079"></a><a class="code" href="structTMotGNL.html#a2aa0f63fe4abbdd7bcf8e4e3ca3bf116">00079</a> <a class="code" href="classCKatBase.html" title="Base Katana class.">CKatBase</a>* <a class="code" href="structTMotGNL.html#a2aa0f63fe4abbdd7bcf8e4e3ca3bf116" title="parent robot">own</a>; <a name="l00080"></a><a class="code" href="structTMotGNL.html#a2fc8e2cc524f6345a2d26272fefa97fb">00080</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotGNL.html#a2fc8e2cc524f6345a2d26272fefa97fb" title="slave ID">SID</a>; <a name="l00081"></a>00081 }; <a name="l00082"></a>00082 <a name="l00085"></a><a class="code" href="structTMotSFW.html">00085</a> <span class="keyword">struct </span><a class="code" href="structTMotSFW.html" title="[SFW] slave firmware">TMotSFW</a> { <a name="l00086"></a><a class="code" href="structTMotSFW.html#a41b95b243fe9cbbc85b9a8ed8055f784">00086</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSFW.html#a41b95b243fe9cbbc85b9a8ed8055f784" title="firmware version number">version</a>; <a name="l00087"></a><a class="code" href="structTMotSFW.html#a55ffd9267fdec1fc84db46dbc0b8ac43">00087</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSFW.html#a55ffd9267fdec1fc84db46dbc0b8ac43" title="firmware subversion number">subversion</a>; <a name="l00088"></a><a class="code" href="structTMotSFW.html#a5859ca51cefc3738df4dbbc765c86abd">00088</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSFW.html#a5859ca51cefc3738df4dbbc765c86abd" title="firmware revision number">revision</a>; <a name="l00089"></a><a class="code" href="structTMotSFW.html#a4054260007cc7ff9835f8ddb67b15e08">00089</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSFW.html#a4054260007cc7ff9835f8ddb67b15e08" title="firmware type">type</a>; <a name="l00090"></a><a class="code" href="structTMotSFW.html#ab8992f9489ad0480343dedcd6b3f8b17">00090</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSFW.html#ab8992f9489ad0480343dedcd6b3f8b17" title="firmware subtype">subtype</a>; <a name="l00091"></a>00091 }; <a name="l00092"></a>00092 <a name="l00095"></a><a class="code" href="structTMotAPS.html">00095</a> <span class="keyword">struct </span><a class="code" href="structTMotAPS.html" title="[APS] actual position">TMotAPS</a> { <a name="l00096"></a><a class="code" href="structTMotAPS.html#aae5ab0479276862dcb17c8743ba06d69">00096</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343" title="command flags">TMotCmdFlg</a> <a class="code" href="structTMotAPS.html#aae5ab0479276862dcb17c8743ba06d69" title="motor command flag">mcfAPS</a>; <a name="l00097"></a><a class="code" href="structTMotAPS.html#aa978eef414d9c1f1c8c790600143d822">00097</a> <span class="keywordtype">short</span> <a class="code" href="structTMotAPS.html#aa978eef414d9c1f1c8c790600143d822" title="actual position">actpos</a>; <a name="l00098"></a>00098 }; <a name="l00099"></a>00099 <a name="l00102"></a><a class="code" href="structTMotTPS.html">00102</a> <span class="keyword">struct </span><a class="code" href="structTMotTPS.html" title="[TPS] target position">TMotTPS</a> { <a name="l00103"></a><a class="code" href="structTMotTPS.html#a5517f73d38abca15b25b261871c3c432">00103</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343" title="command flags">TMotCmdFlg</a> <a class="code" href="structTMotTPS.html#a5517f73d38abca15b25b261871c3c432" title="motor command flag">mcfTPS</a>; <a name="l00104"></a><a class="code" href="structTMotTPS.html#ac6e0c69e2d228d8d7f1f5d906ceb91c7">00104</a> <span class="keywordtype">short</span> <a class="code" href="structTMotTPS.html#ac6e0c69e2d228d8d7f1f5d906ceb91c7" title="target position">tarpos</a>; <a name="l00105"></a>00105 }; <a name="l00106"></a>00106 <a name="l00109"></a><a class="code" href="structTMotSCP.html">00109</a> <span class="keyword">struct </span><a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a> { <a name="l00110"></a>00110 <a name="l00111"></a>00111 <span class="comment">//--------------- Motor old parameters -------------------------------//</span> <a name="l00112"></a>00112 <span class="comment">//</span> <a name="l00113"></a><a class="code" href="structTMotSCP.html#a75c81c7c55a492c6d9ccd08c3f328f2a">00113</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a75c81c7c55a492c6d9ccd08c3f328f2a" title="max. val for pos. voltage">maxppwm</a>; <a name="l00114"></a><a class="code" href="structTMotSCP.html#a4529ff05ffdfe11ae47363dafe3a73a2">00114</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a4529ff05ffdfe11ae47363dafe3a73a2" title="max. val for neg. voltage; pos!">maxnpwm</a>; <a name="l00115"></a><a class="code" href="structTMotSCP.html#aa47d98b148778d89cb2dd0ecb25505e4">00115</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#aa47d98b148778d89cb2dd0ecb25505e4" title="prop. factor of pos comp">kP</a>; <a name="l00116"></a><a class="code" href="structTMotSCP.html#af2e7cb17bbe149f56fb5b65ad0fc1548">00116</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#af2e7cb17bbe149f56fb5b65ad0fc1548" title="not yet active">kI</a>; <a name="l00117"></a><a class="code" href="structTMotSCP.html#a7d27225a80c89b8b4881af5b6220e4b5">00117</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a7d27225a80c89b8b4881af5b6220e4b5" title="derivate factor of pos comp">kD</a>; <a name="l00118"></a><a class="code" href="structTMotSCP.html#a196e97ad1aafd9ddbe6c278fdf75758f">00118</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a196e97ad1aafd9ddbe6c278fdf75758f" title="not yet active">kARW</a>; <a name="l00119"></a>00119 <span class="comment">//byte kSpeed; //!< prop. factor of speed limit comp</span> <a name="l00120"></a><a class="code" href="structTMotSCP.html#ad183a7d76c974511524afe83e7488859">00120</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#ad183a7d76c974511524afe83e7488859" title="Proportional factor of the speed compensator.">kP_speed</a>; <a name="l00121"></a><a class="code" href="structTMotSCP.html#a43a0be6ac51a0193e2ff54328d376636">00121</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a43a0be6ac51a0193e2ff54328d376636" title="Integral factor of the speed compensator.">kI_speed</a>; <a name="l00122"></a><a class="code" href="structTMotSCP.html#a0618b2f12fd6541cc3eedbe4c7e894fa">00122</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a0618b2f12fd6541cc3eedbe4c7e894fa" title="Derivative factor of the speed compensator.">kD_speed</a>; <a name="l00123"></a>00123 <a name="l00124"></a>00124 <span class="comment">//--------------- Motor new parameters -------------------------------//</span> <a name="l00125"></a>00125 <span class="comment">//</span> <a name="l00126"></a><a class="code" href="structTMotSCP.html#a287f0e83ce25a2a42ab9cf07a452e2fa">00126</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a287f0e83ce25a2a42ab9cf07a452e2fa" title="Max. value for positive voltage (0 =&gt; 0%, +70 =&gt; 100%)">maxppwm_nmp</a>; <a name="l00127"></a><a class="code" href="structTMotSCP.html#a1bd29014b5e83d5623e53cbccbd7e8a1">00127</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a1bd29014b5e83d5623e53cbccbd7e8a1" title="Max. value for negative voltage (0 =&gt; 0%, +70 =&gt; 100%)">maxnpwm_nmp</a>; <a name="l00128"></a><a class="code" href="structTMotSCP.html#ad14709ec96dab87dd226b8e0e26c5fa2">00128</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#ad14709ec96dab87dd226b8e0e26c5fa2" title="Proportional factor of speed compensator.">kspeed_nmp</a>; <a name="l00129"></a><a class="code" href="structTMotSCP.html#a60e49ea70d42bcb6f893667cc984ee2b">00129</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a60e49ea70d42bcb6f893667cc984ee2b" title="Proportional factor of position compensator.">kpos_nmp</a>; <a name="l00130"></a><a class="code" href="structTMotSCP.html#a822f69b8bcc50d42b8f5340439a6946d">00130</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotSCP.html#a822f69b8bcc50d42b8f5340439a6946d" title="Integral factor (1/kI) of control output added to the final control output.">kI_nmp</a>; <a name="l00131"></a><a class="code" href="structTMotSCP.html#a866807ce75336b5bccc8dee8ad6ebe29">00131</a> <span class="keywordtype">int</span> <a class="code" href="structTMotSCP.html#a866807ce75336b5bccc8dee8ad6ebe29" title="Limit of error in position.">crash_limit_nmp</a>; <a name="l00132"></a><a class="code" href="structTMotSCP.html#adac8bf96bf305ae115337c52930ddbf8">00132</a> <span class="keywordtype">int</span> <a class="code" href="structTMotSCP.html#adac8bf96bf305ae115337c52930ddbf8" title="Limit of error in position in linear movement.">crash_limit_lin_nmp</a>; <a name="l00133"></a>00133 }; <a name="l00134"></a>00134 <a name="l00137"></a><a class="code" href="structTMotDYL.html">00137</a> <span class="keyword">struct </span><a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a> { <a name="l00138"></a>00138 <a name="l00139"></a>00139 <span class="comment">//--------------- Motor old parameters -------------------------------//</span> <a name="l00140"></a>00140 <span class="comment">//</span> <a name="l00141"></a><a class="code" href="structTMotDYL.html#a6e2413322735701e8f2c2c0c7effcb7c">00141</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#a6e2413322735701e8f2c2c0c7effcb7c" title="max acceleration">maxaccel</a>; <a name="l00142"></a><a class="code" href="structTMotDYL.html#ac71d79cad34e2c71aa6c9d1a9e2d0e90">00142</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#ac71d79cad34e2c71aa6c9d1a9e2d0e90" title="max deceleration">maxdecel</a>; <a name="l00143"></a><a class="code" href="structTMotDYL.html#a2afb9422f6a5e8c601739c35e292eec4">00143</a> <span class="keywordtype">short</span> <a class="code" href="structTMotDYL.html#a2afb9422f6a5e8c601739c35e292eec4" title="not yet active">minpos</a>; <a name="l00144"></a><a class="code" href="structTMotDYL.html#a8773e21cdcfb37cd9a798e8705c477e7">00144</a> <span class="keywordtype">short</span> <a class="code" href="structTMotDYL.html#a8773e21cdcfb37cd9a798e8705c477e7" title="max. allowed forward speed">maxpspeed</a>; <a name="l00145"></a><a class="code" href="structTMotDYL.html#a661068df70ffda77ff9bf991a0279185">00145</a> <span class="keywordtype">short</span> <a class="code" href="structTMotDYL.html#a661068df70ffda77ff9bf991a0279185" title="max. allowed reverse speed; pos!">maxnspeed</a>; <a name="l00146"></a>00146 <span class="comment">//byte maxpcurr; // no more active</span> <a name="l00147"></a>00147 <span class="comment">//byte maxncurr; // no more active</span> <a name="l00148"></a><a class="code" href="structTMotDYL.html#a12f73a5755f2dbb79b3550b564b31d59">00148</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#a12f73a5755f2dbb79b3550b564b31d59" title="max current">maxcurr</a>; <a name="l00149"></a><a class="code" href="structTMotDYL.html#aa136a5d79a33a6d626a767804784096a">00149</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#aa136a5d79a33a6d626a767804784096a" title="actual current">actcurr</a>; <a name="l00150"></a>00150 <a name="l00151"></a>00151 <span class="comment">//--------------- Motor new parameters -------------------------------//</span> <a name="l00152"></a>00152 <span class="comment">//</span> <a name="l00153"></a><a class="code" href="structTMotDYL.html#a3c1401c457a4fa944a45ccb51e803802">00153</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#a3c1401c457a4fa944a45ccb51e803802" title="Maximal acceleration and deceleration.">maxaccel_nmp</a>; <a name="l00154"></a><a class="code" href="structTMotDYL.html#a5452d671b40131de0c9b945d6ad2f3b1">00154</a> <span class="keywordtype">short</span> <a class="code" href="structTMotDYL.html#a5452d671b40131de0c9b945d6ad2f3b1" title="Max. allowed forward speed.">maxpspeed_nmp</a>; <a name="l00155"></a><a class="code" href="structTMotDYL.html#a4148e3604be69032d6a0cac6e889d464">00155</a> <span class="keywordtype">short</span> <a class="code" href="structTMotDYL.html#a4148e3604be69032d6a0cac6e889d464" title="Max. allowed reverse speed.">maxnspeed_nmp</a>; <a name="l00156"></a><a class="code" href="structTMotDYL.html#a95a58e22172ff1b32d029b2eb50141ae">00156</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotDYL.html#a95a58e22172ff1b32d029b2eb50141ae" title="set the maximal current">maxcurr_nmp</a>; <a name="l00157"></a>00157 }; <a name="l00158"></a>00158 <a name="l00161"></a><a class="code" href="structTMotPVP.html">00161</a> <span class="keyword">struct </span><a class="code" href="structTMotPVP.html" title="[PVP] position, velocity, pulse width modulation">TMotPVP</a> { <a name="l00162"></a><a class="code" href="structTMotPVP.html#aade2b6c96f2a3058cdaa6d87a196439d">00162</a> <a class="code" href="kmlMotBase_8h.html#a796b50724e4fd015f0ea73cf2ec4c8e9" title="status flags">TMotStsFlg</a> <a class="code" href="structTMotPVP.html#aade2b6c96f2a3058cdaa6d87a196439d" title="motor status flag">msf</a>; <a name="l00163"></a><a class="code" href="structTMotPVP.html#a10eb7205f99bf76ae189da1b03fd9d2c">00163</a> <span class="keywordtype">short</span> <a class="code" href="structTMotPVP.html#a10eb7205f99bf76ae189da1b03fd9d2c" title="position">pos</a>; <a name="l00164"></a><a class="code" href="structTMotPVP.html#a639dad63bb11fd2e58ad846ea0b1c97c">00164</a> <span class="keywordtype">short</span> <a class="code" href="structTMotPVP.html#a639dad63bb11fd2e58ad846ea0b1c97c" title="velocity">vel</a>; <a name="l00165"></a><a class="code" href="structTMotPVP.html#a33db940f4b7b6e81fa44c5a122876cfc">00165</a> <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> <a class="code" href="structTMotPVP.html#a33db940f4b7b6e81fa44c5a122876cfc" title="pulse with modulation">pwm</a>; <a name="l00166"></a>00166 }; <a name="l00167"></a>00167 <a name="l00170"></a><a class="code" href="structTMotENL.html">00170</a> <span class="keyword">struct </span><a class="code" href="structTMotENL.html" title="[ENL] limits in encoder values (INTERNAL STRUCTURE!)">TMotENL</a> { <a name="l00171"></a><a class="code" href="structTMotENL.html#a745cfb2c7b8cafbbefecbaff3ee25b3e">00171</a> <span class="keywordtype">int</span> <a class="code" href="structTMotENL.html#a745cfb2c7b8cafbbefecbaff3ee25b3e" title="motor&#39;s range in encoder values">enc_range</a>; <a name="l00172"></a><a class="code" href="structTMotENL.html#a3a5e72a9f117c15ad60ba36e04911aa8">00172</a> <span class="keywordtype">int</span> <a class="code" href="structTMotENL.html#a3a5e72a9f117c15ad60ba36e04911aa8" title="motor&#39;s minimum position in encoder values">enc_minpos</a>; <a name="l00173"></a><a class="code" href="structTMotENL.html#ac58ef24df1a3655b6c9e892949f1c659">00173</a> <span class="keywordtype">int</span> <a class="code" href="structTMotENL.html#ac58ef24df1a3655b6c9e892949f1c659" title="motor&#39;s maximum position in encoder values">enc_maxpos</a>; <a name="l00174"></a><a class="code" href="structTMotENL.html#ab7da05be27bf94cdd956d8f35b6d4d84">00174</a> <span class="keywordtype">int</span> <a class="code" href="structTMotENL.html#ab7da05be27bf94cdd956d8f35b6d4d84" title="number of encoder units needed to complete 360 degrees;">enc_per_cycle</a>; <a name="l00175"></a><a class="code" href="structTMotENL.html#a3178fb7125c1856b9fdf8685c312dd5e">00175</a> <span class="keywordtype">int</span> <a class="code" href="structTMotENL.html#a3178fb7125c1856b9fdf8685c312dd5e" title="encoder units of tolerance to accept that a position has been reached">enc_tolerance</a>; <a name="l00176"></a>00176 }; <a name="l00177"></a>00177 <a name="l00178"></a>00178 <a name="l00181"></a><a class="code" href="structTMotCLB.html">00181</a> <span class="keyword">struct </span><a class="code" href="structTMotCLB.html" title="Calibration structure for single motors.">TMotCLB</a> { <a name="l00182"></a><a class="code" href="structTMotCLB.html#a2591eaa70a32ece1c09d1eab80f498bf">00182</a> <span class="keywordtype">bool</span> <a class="code" href="structTMotCLB.html#a2591eaa70a32ece1c09d1eab80f498bf" title="enable/disable">enable</a>; <a name="l00183"></a><a class="code" href="structTMotCLB.html#aea13069cf9030c96eeede5c48aaf01f1">00183</a> <span class="keywordtype">short</span> <a class="code" href="structTMotCLB.html#aea13069cf9030c96eeede5c48aaf01f1" title="order in which this motor will be calibrated. range: 0..5">order</a>; <a name="l00184"></a>00184 <a name="l00185"></a><a class="code" href="structTMotCLB.html#a422fa79d99050038dd195640eb3c4469">00185</a> <a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71b">TSearchDir</a> <a class="code" href="structTMotCLB.html#a422fa79d99050038dd195640eb3c4469" title="search direction for mech. stopper">dir</a>; <a name="l00186"></a><a class="code" href="structTMotCLB.html#a2371961a421eabb6ab5b448d719f29fb">00186</a> <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343" title="command flags">TMotCmdFlg</a> <a class="code" href="structTMotCLB.html#a2371961a421eabb6ab5b448d719f29fb" title="motor flag after calibration">mcf</a>; <a name="l00187"></a>00187 <a name="l00188"></a><a class="code" href="structTMotCLB.html#a54ec5e99eb9ba77628c9b45d31663644">00188</a> <span class="keywordtype">int</span> <a class="code" href="structTMotCLB.html#a54ec5e99eb9ba77628c9b45d31663644">encoderPositionAfter</a>; <a name="l00189"></a><a class="code" href="structTMotCLB.html#af4499c71b632a7c83ca850da7f0e5c77">00189</a> <span class="keywordtype">bool</span> <a class="code" href="structTMotCLB.html#af4499c71b632a7c83ca850da7f0e5c77">isCalibrated</a>; <a name="l00190"></a>00190 <a name="l00191"></a><a class="code" href="structTMotCLB.html#a44e5b95dcc9010af7afc09cffabb3953">00191</a> <a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a> <a class="code" href="structTMotCLB.html#a44e5b95dcc9010af7afc09cffabb3953">dyl</a>; <a name="l00192"></a><a class="code" href="structTMotCLB.html#a8d63a6311561df8c9a752d3ee75a49ef">00192</a> <a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a> <a class="code" href="structTMotCLB.html#a8d63a6311561df8c9a752d3ee75a49ef">scp</a>; <a name="l00193"></a>00193 }; <a name="l00194"></a>00194 <a name="l00195"></a>00195 <a name="l00198"></a><a class="code" href="structTMotInit.html">00198</a> <span class="keyword">struct </span><a class="code" href="structTMotInit.html" title="Initial motor parameters.">TMotInit</a> { <a name="l00199"></a><a class="code" href="structTMotInit.html#aa5e3bd5e36b35c855670121a8e634359">00199</a> <span class="keywordtype">int</span> <a class="code" href="structTMotInit.html#aa5e3bd5e36b35c855670121a8e634359">encoderOffset</a>; <a name="l00200"></a><a class="code" href="structTMotInit.html#a030ed7d427488f1c64f04ff5b1bc0c71">00200</a> <span class="keywordtype">int</span> <a class="code" href="structTMotInit.html#a030ed7d427488f1c64f04ff5b1bc0c71">encodersPerCycle</a>; <a name="l00201"></a><a class="code" href="structTMotInit.html#ad7a0ad0e4872c033984d8c8ace4d174c">00201</a> <span class="keywordtype">double</span> <a class="code" href="structTMotInit.html#ad7a0ad0e4872c033984d8c8ace4d174c">angleOffset</a>; <a name="l00202"></a><a class="code" href="structTMotInit.html#ad13a2f881533187c052b4b32796f2bff">00202</a> <span class="keywordtype">double</span> <a class="code" href="structTMotInit.html#ad13a2f881533187c052b4b32796f2bff">angleRange</a>; <a name="l00203"></a><a class="code" href="structTMotInit.html#ac6d23bedaec6e337d0ebb58fc91010a4">00203</a> <span class="keywordtype">int</span> <a class="code" href="structTMotInit.html#ac6d23bedaec6e337d0ebb58fc91010a4">rotationDirection</a>; <a name="l00204"></a>00204 <a name="l00205"></a>00205 <span class="comment">// calculated ones:</span> <a name="l00206"></a><a class="code" href="structTMotInit.html#acc448d69b8ded1695e80c85d7fc5b99f">00206</a> <span class="keywordtype">double</span> <a class="code" href="structTMotInit.html#acc448d69b8ded1695e80c85d7fc5b99f">angleStop</a>; <a name="l00207"></a>00207 }; <a name="l00208"></a>00208 <a name="l00209"></a>00209 <span class="comment">//--------------------------------------------------------------------------//</span> <a name="l00210"></a>00210 <a name="l00219"></a><a class="code" href="classCMotBase.html">00219</a> <span class="keyword">class </span><a class="code" href="dllexport_8h.html#af6e7daabccc187ef1005a8e9a68ecce4">DLLDIR</a> <a class="code" href="classCMotBase.html" title="Motor class.">CMotBase</a> { <a name="l00220"></a>00220 <a name="l00221"></a><a class="code" href="classCMotBase.html#a099603b3fbe6a04e3b0d667a5e4770f3">00221</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classCKatBase.html" title="Base Katana class.">CKatBase</a>; <a name="l00222"></a>00222 <a name="l00223"></a>00223 <a name="l00224"></a>00224 <span class="keyword">protected</span>: <a name="l00225"></a><a class="code" href="classCMotBase.html#a94a3017f0c6195521f37c8284827f3d9">00225</a> <a class="code" href="structTMotGNL.html" title="[GNL] motor generals">TMotGNL</a> <a class="code" href="classCMotBase.html#a94a3017f0c6195521f37c8284827f3d9" title="motor generals">gnl</a>; <a name="l00226"></a><a class="code" href="classCMotBase.html#ab0236abff7c0502724311bed0d3dcf07">00226</a> <a class="code" href="structTMotAPS.html" title="[APS] actual position">TMotAPS</a> <a class="code" href="classCMotBase.html#ab0236abff7c0502724311bed0d3dcf07" title="actual position">aps</a>; <a name="l00227"></a><a class="code" href="classCMotBase.html#af2216347d8a7a4c39e007060a944bb2b">00227</a> <a class="code" href="structTMotTPS.html" title="[TPS] target position">TMotTPS</a> <a class="code" href="classCMotBase.html#af2216347d8a7a4c39e007060a944bb2b" title="target position">tps</a>; <a name="l00228"></a><a class="code" href="classCMotBase.html#a754dca6c5982077b6a2d80bd79c2cca0">00228</a> <a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a> <a class="code" href="classCMotBase.html#a754dca6c5982077b6a2d80bd79c2cca0" title="static controller parameters">scp</a>; <a name="l00229"></a><a class="code" href="classCMotBase.html#a3fb7810362426fdd48df72317be65427">00229</a> <a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a> <a class="code" href="classCMotBase.html#a3fb7810362426fdd48df72317be65427" title="dynamic limits">dyl</a>; <a name="l00230"></a><a class="code" href="classCMotBase.html#a92b64310d3b990a7451a155ca75709aa">00230</a> <a class="code" href="structTMotPVP.html" title="[PVP] position, velocity, pulse width modulation">TMotPVP</a> <a class="code" href="classCMotBase.html#a92b64310d3b990a7451a155ca75709aa" title="reading motor parameters">pvp</a>; <a name="l00231"></a><a class="code" href="classCMotBase.html#a1efaedeead0f850d1cf567a826d1ea1f">00231</a> <a class="code" href="structTMotSFW.html" title="[SFW] slave firmware">TMotSFW</a> <a class="code" href="classCMotBase.html#a1efaedeead0f850d1cf567a826d1ea1f" title="slave firmware">sfw</a>; <a name="l00232"></a><a class="code" href="classCMotBase.html#a7df110e89c2f34bb8bacba4c9ee804df">00232</a> <a class="code" href="structTMotCLB.html" title="Calibration structure for single motors.">TMotCLB</a> <a class="code" href="classCMotBase.html#a7df110e89c2f34bb8bacba4c9ee804df" title="calibration structure">_calibrationParameters</a>; <a name="l00233"></a><a class="code" href="classCMotBase.html#a568551fd2c45b8da94abd9afa4eaa7b0">00233</a> <a class="code" href="structTMotENL.html" title="[ENL] limits in encoder values (INTERNAL STRUCTURE!)">TMotENL</a> <a class="code" href="classCMotBase.html#a568551fd2c45b8da94abd9afa4eaa7b0" title="motor limits in encoder values">_encoderLimits</a>; <a name="l00234"></a><a class="code" href="classCMotBase.html#af70dfb2e18a9cf41f4fae051a6a8d0c3">00234</a> <a class="code" href="structTMotInit.html" title="Initial motor parameters.">TMotInit</a> <a class="code" href="classCMotBase.html#af70dfb2e18a9cf41f4fae051a6a8d0c3">_initialParameters</a>; <a name="l00235"></a><a class="code" href="classCMotBase.html#ab9aebfbc3a429f560cd5dfba6ecc3fdb">00235</a> <span class="keywordtype">bool</span> <a class="code" href="classCMotBase.html#ab9aebfbc3a429f560cd5dfba6ecc3fdb" title="if it is set, it will move on a parallel movement">freedom</a>; <a name="l00236"></a><a class="code" href="classCMotBase.html#a808658576b2bf34a99a5339896768928">00236</a> <span class="keywordtype">bool</span> <a class="code" href="classCMotBase.html#a808658576b2bf34a99a5339896768928" title="true if new motor parameters are implemented on the firmware">nmp</a>; <a name="l00237"></a><a class="code" href="classCMotBase.html#adfed1980c70b83892f3d6f12e70649f8">00237</a> <span class="keywordtype">bool</span> <a class="code" href="classCMotBase.html#adfed1980c70b83892f3d6f12e70649f8" title="true if the motor was blocked due to a crash of the robot">blocked</a>; <a name="l00238"></a>00238 <a name="l00239"></a>00239 <a name="l00240"></a>00240 <span class="keyword">public</span>: <a name="l00241"></a><a class="code" href="classCMotBase.html#a40aeb5bd256b758fceaf82432b1d9896">00241</a> <span class="keyword">const</span> <a class="code" href="structTMotGNL.html" title="[GNL] motor generals">TMotGNL</a>* <a class="code" href="classCMotBase.html#a40aeb5bd256b758fceaf82432b1d9896">GetGNL</a>() { <span class="keywordflow">return</span> &<a class="code" href="classCKatBase.html#ac07e59aae6f45d186b9c17cf5dd18c9c" title="katana general">gnl</a>; } <a name="l00242"></a><a class="code" href="classCMotBase.html#a35532f3236b00e3d153fb9cbee454a5e">00242</a> <span class="keyword">const</span> <a class="code" href="structTMotAPS.html" title="[APS] actual position">TMotAPS</a>* <a class="code" href="classCMotBase.html#a35532f3236b00e3d153fb9cbee454a5e">GetAPS</a>() { <span class="keywordflow">return</span> &aps; } <a name="l00243"></a><a class="code" href="classCMotBase.html#a93c6b34fd38c3a011e65abb901ff92cc">00243</a> <span class="keyword">const</span> <a class="code" href="structTMotTPS.html" title="[TPS] target position">TMotTPS</a>* <a class="code" href="classCMotBase.html#a93c6b34fd38c3a011e65abb901ff92cc">GetTPS</a>() { <span class="keywordflow">return</span> &tps; } <a name="l00244"></a><a class="code" href="classCMotBase.html#af656939b08aca949be6bf2dd9eb8758b">00244</a> <span class="keyword">const</span> <a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a>* <a class="code" href="classCMotBase.html#af656939b08aca949be6bf2dd9eb8758b">GetSCP</a>() { <span class="keywordflow">return</span> &scp; } <a name="l00245"></a><a class="code" href="classCMotBase.html#a6216175ebd3f4e40d205b70a6972f1ce">00245</a> <span class="keyword">const</span> <a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a>* <a class="code" href="classCMotBase.html#a6216175ebd3f4e40d205b70a6972f1ce">GetDYL</a>() { <span class="keywordflow">return</span> &dyl; } <a name="l00246"></a><a class="code" href="classCMotBase.html#ada614abdc4932d4d5e907d3026d90367">00246</a> <span class="keyword">const</span> <a class="code" href="structTMotPVP.html" title="[PVP] position, velocity, pulse width modulation">TMotPVP</a>* <a class="code" href="classCMotBase.html#ada614abdc4932d4d5e907d3026d90367">GetPVP</a>() { <span class="keywordflow">return</span> &pvp; } <a name="l00247"></a><a class="code" href="classCMotBase.html#acac44d3830b023527ab16dcb143c2caf">00247</a> <span class="keyword">const</span> <a class="code" href="structTMotSFW.html" title="[SFW] slave firmware">TMotSFW</a>* <a class="code" href="classCMotBase.html#acac44d3830b023527ab16dcb143c2caf">GetSFW</a>() { <span class="keywordflow">return</span> &sfw; } <a name="l00248"></a><a class="code" href="classCMotBase.html#a49af3d94ba8870d7743973167b83ee87">00248</a> <span class="keyword">const</span> <a class="code" href="structTMotCLB.html" title="Calibration structure for single motors.">TMotCLB</a>* <a class="code" href="classCMotBase.html#a49af3d94ba8870d7743973167b83ee87">GetCLB</a>() { <span class="keywordflow">return</span> &_calibrationParameters; } <a name="l00249"></a>00249 <a name="l00250"></a><a class="code" href="classCMotBase.html#a13be8a88bfc39ccc789c9ccfb27db517">00250</a> <span class="keyword">const</span> <a class="code" href="structTMotInit.html" title="Initial motor parameters.">TMotInit</a>* <a class="code" href="classCMotBase.html#a13be8a88bfc39ccc789c9ccfb27db517">GetInitialParameters</a>() { <span class="keywordflow">return</span> &_initialParameters; } <a name="l00251"></a><a class="code" href="classCMotBase.html#ab3ae1da175114d5995ebed7d5d34ca64">00251</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classCMotBase.html#ab3ae1da175114d5995ebed7d5d34ca64">GetEncoderTolerance</a>() { <span class="keywordflow">return</span> _encoderLimits.enc_tolerance; } <a name="l00252"></a><a class="code" href="classCMotBase.html#a2ea850f6c70732ae218fe3d92f359d49">00252</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classCMotBase.html#a2ea850f6c70732ae218fe3d92f359d49" title="Returns the min Position of the Encoder.">GetEncoderMinPos</a>() { <span class="keywordflow">return</span> _encoderLimits.enc_minpos; } <a name="l00253"></a><a class="code" href="classCMotBase.html#a8477c99f3fb79e72a4e0524c38f9cffb">00253</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classCMotBase.html#a8477c99f3fb79e72a4e0524c38f9cffb" title="Returns the max Position of the Encoder.">GetEncoderMaxPos</a>() { <span class="keywordflow">return</span> _encoderLimits.enc_maxpos; } <a name="l00254"></a><a class="code" href="classCMotBase.html#a79973fcf346cb02bd9f7ffb91ea6364f">00254</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classCMotBase.html#a79973fcf346cb02bd9f7ffb91ea6364f" title="Returns Encoder Range of the Encoder.">GetEncoderRange</a>() { <span class="keywordflow">return</span> _encoderLimits.enc_range; } <a name="l00255"></a>00255 <span class="keyword">const</span> <span class="keywordtype">bool</span> GetFreedom() { <span class="keywordflow">return</span> freedom; }<span class="keyword">const</span> <span class="keywordtype">bool</span> GetBlocked() { <span class="keywordflow">return</span> blocked; }<span class="keyword">const</span> <span class="keywordtype">bool</span> GetNmp() { <span class="keywordflow">return</span> nmp; } <a name="l00262"></a>00262 <a name="l00263"></a>00263 <span class="keyword">protected</span>: <a name="l00264"></a><a class="code" href="classCMotBase.html#a19e4a6c8e319c2d815e07599092beace">00264</a> <a class="code" href="classCCplBase.html" title="Abstract base class for protocol definiton.">CCplBase</a>* <a class="code" href="classCMotBase.html#a19e4a6c8e319c2d815e07599092beace" title="protocol interface">protocol</a>; <a name="l00265"></a>00265 <a name="l00266"></a>00266 <span class="keyword">public</span>: <a name="l00267"></a><a class="code" href="classCMotBase.html#a0fcdc1da04c25e6147ac409f91567fc2">00267</a> <span class="keyword">virtual</span> <a class="code" href="classCMotBase.html#a0fcdc1da04c25e6147ac409f91567fc2">~CMotBase</a>() {} <span class="comment">//destructor</span> <a name="l00268"></a>00268 <a name="l00269"></a>00269 <span class="keywordtype">bool</span> <a class="code" href="classCKatBase.html#a73d003579561bb2a91d043362b8568c7">init</a>(<a class="code" href="classCKatBase.html" title="Base Katana class.">CKatBase</a>* _own, <span class="keyword">const</span> <a class="code" href="structTMotDesc.html" title="motor description (partly)">TMotDesc</a> _motDesc, <a class="code" href="classCCplBase.html" title="Abstract base class for protocol definiton.">CCplBase</a>* <a class="code" href="classCKatBase.html#afc5f8ed4cd2793a9b839ccbbf4e72a4a" title="protocol interface">protocol</a>); <a name="l00270"></a>00270 <span class="keywordtype">void</span> sendAPS(<span class="keyword">const</span> <a class="code" href="structTMotAPS.html" title="[APS] actual position">TMotAPS</a>* _aps); <span class="keywordtype">void</span> sendTPS(<span class="keyword">const</span> <a class="code" href="structTMotTPS.html" title="[TPS] target position">TMotTPS</a>* _tps); <span class="keywordtype">void</span> sendSCP(<span class="keyword">const</span> <a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a>* _scp); <span class="keywordtype">void</span> sendDYL(<span class="keyword">const</span> <a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a>* _dyl); <a name="l00279"></a>00279 <span class="keywordtype">void</span> recvPVP(); <span class="keywordtype">void</span> recvSCP(); <span class="keywordtype">void</span> recvDYL(); <span class="keywordtype">void</span> recvSFW(); <a name="l00288"></a>00288 <a name="l00289"></a><a class="code" href="classCMotBase.html#af06800796d9045c7019c3041d274c5f6">00289</a> <span class="keywordtype">void</span> <a class="code" href="classCMotBase.html#af06800796d9045c7019c3041d274c5f6">setSCP</a>(<a class="code" href="structTMotSCP.html" title="[SCP] static controller parameters">TMotSCP</a> _scp) { scp = _scp; } <a name="l00290"></a><a class="code" href="classCMotBase.html#acad3c21151fdfc3d4ba96de49bd18358">00290</a> <span class="keywordtype">void</span> <a class="code" href="classCMotBase.html#acad3c21151fdfc3d4ba96de49bd18358">setDYL</a>(<a class="code" href="structTMotDYL.html" title="[DYL] dynamic limits">TMotDYL</a> _dyl) { dyl = _dyl; } <a name="l00291"></a>00291 <a name="l00296"></a>00296 <span class="keywordtype">void</span> setTPSP(<span class="keywordtype">int</span> tar); <a name="l00297"></a>00297 <span class="keywordtype">void</span> setTPSPDegrees(<span class="keywordtype">double</span> tar); <span class="keywordtype">void</span> resetTPSP(); <a name="l00302"></a>00302 <a name="l00303"></a>00303 <a name="l00304"></a>00304 <span class="keywordtype">void</span> setInitialParameters(<span class="keywordtype">double</span> angleOffset, <span class="keywordtype">double</span> angleRange, <span class="keywordtype">int</span> encodersPerCycle, <span class="keywordtype">int</span> encoderOffset, <span class="keywordtype">int</span> rotationDirection); <a name="l00305"></a>00305 <span class="keywordtype">void</span> setCalibrationParameters(<span class="keywordtype">bool</span> doCalibration, <span class="keywordtype">short</span> order, <a class="code" href="kmlMotBase_8h.html#adef107e616c782dbe7138446a2edf71b">TSearchDir</a> direction, <a class="code" href="kmlMotBase_8h.html#a1b93f23a077cc22845f59079c30ef343" title="command flags">TMotCmdFlg</a> motorFlagAfter, <span class="keywordtype">int</span> encoderPositionAfter); <a name="l00306"></a>00306 <span class="keywordtype">void</span> setCalibrated(<span class="keywordtype">bool</span> calibrated); <a name="l00307"></a>00307 <a name="l00308"></a>00308 <span class="keywordtype">void</span> setTolerance(<span class="keywordtype">int</span> tolerance); <a name="l00309"></a>00309 <a name="l00312"></a>00312 <span class="keywordtype">bool</span> checkAngleInRange(<span class="keywordtype">double</span> angle); <a name="l00313"></a>00313 <span class="keywordtype">bool</span> checkEncoderInRange(<span class="keywordtype">int</span> encoder); <a name="l00314"></a>00314 <a name="l00317"></a>00317 <span class="keywordtype">void</span> inc(<span class="keywordtype">int</span> dif, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00320"></a>00320 <span class="keywordtype">void</span> dec(<span class="keywordtype">int</span> dif, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00323"></a>00323 <span class="keywordtype">void</span> mov(<span class="keywordtype">int</span> tar, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00324"></a>00324 <a name="l00327"></a>00327 <span class="keywordtype">void</span> waitForMotor(<span class="keywordtype">int</span> tar, <span class="keywordtype">int</span> encTolerance = 100, <span class="keywordtype">short</span> mode = 0, <span class="keywordtype">int</span> waitTimeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00328"></a>00328 <a name="l00331"></a>00331 <span class="keywordtype">void</span> incDegrees(<span class="keywordtype">double</span> dif, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00334"></a>00334 <span class="keywordtype">void</span> decDegrees(<span class="keywordtype">double</span> dif, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00337"></a>00337 <span class="keywordtype">void</span> movDegrees(<span class="keywordtype">double</span> tar, <span class="keywordtype">bool</span> wait = <span class="keyword">false</span>, <span class="keywordtype">int</span> tolerance = 100, <span class="keywordtype">long</span> timeout = <a class="code" href="kmlBase_8h.html#ad6ffe504357959900a023228f12b10ae" title="timeout symbol for &#39;endless&#39; waiting">TM_ENDLESS</a>); <a name="l00338"></a>00338 <a name="l00341"></a>00341 <span class="keywordtype">void</span> resetBlocked(); <a name="l00342"></a>00342 <a name="l00343"></a>00343 <a name="l00347"></a>00347 <span class="keywordtype">void</span> sendSpline(<span class="keywordtype">short</span> targetPosition, <span class="keywordtype">short</span> duration, <span class="keywordtype">short</span> p1, <span class="keywordtype">short</span> p2, <span class="keywordtype">short</span> p3, <span class="keywordtype">short</span> p4); <a name="l00348"></a>00348 <a name="l00353"></a>00353 <span class="keywordtype">void</span> sendFourSplines(<span class="keywordtype">short</span> targetPosition, <span class="keywordtype">short</span> duration, std::vector<short>& coefficients); <a name="l00354"></a>00354 <a name="l00355"></a>00355 <a name="l00358"></a>00358 <span class="keywordtype">void</span> setSpeedLimits(<span class="keywordtype">short</span> positiveVelocity, <span class="keywordtype">short</span> negativeVelocity); <a name="l00359"></a><a class="code" href="classCMotBase.html#a5933a4969e35d68d0d45f51e010fee30">00359</a> <span class="keywordtype">void</span> <a class="code" href="classCMotBase.html#a5933a4969e35d68d0d45f51e010fee30">setSpeedLimit</a>(<span class="keywordtype">short</span> velocity) { setSpeedLimits(velocity, velocity); } <a name="l00360"></a>00360 <a name="l00363"></a>00363 <span class="keywordtype">void</span> setAccelerationLimit( <span class="keywordtype">short</span> acceleration ); <a name="l00364"></a>00364 <a name="l00367"></a>00367 <span class="keywordtype">void</span> setPwmLimits(<a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> maxppwm, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> maxnpwm); <a name="l00368"></a>00368 <a name="l00371"></a>00371 <span class="keywordtype">void</span> setControllerParameters(<a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> kSpeed, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> kPos, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a> kI); <a name="l00372"></a>00372 <a name="l00375"></a>00375 <span class="keywordtype">void</span> <a class="code" href="classCKatBase.html#a250a1c948e984f721e8c35bd099c0cd2" title="set collision limits">setCrashLimit</a>(<span class="keywordtype">int</span> limit); <a name="l00377"></a>00377 <span class="keywordtype">void</span> setCrashLimitLinear(<span class="keywordtype">int</span> limit_lin); <a name="l00379"></a>00379 <span class="keywordtype">void</span> <a class="code" href="classCKatBase.html#ae9ea9bb46243d7c59aeed6c3b0c87a0d" title="set collision speed limits">setSpeedCollisionLimit</a>(<span class="keywordtype">int</span> limit); <a name="l00381"></a>00381 <span class="keywordtype">void</span> <a class="code" href="classCKatBase.html#a515ecede8c1a63d47c83ada865194a28" title="set collision position limits">setPositionCollisionLimit</a>(<span class="keywordtype">int</span> limit); <a name="l00382"></a>00382 <a name="l00389"></a>00389 <span class="keywordtype">void</span> getParameterOrLimit(<span class="keywordtype">int</span> subcommand, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a>* R1, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a>* R2, <a class="code" href="cdlBase_8h.html#a0c8186d9b9b7880309c27230bbb5e69d" title="type specification (8 bit)">byte</a>* R3); <a name="l00390"></a>00390 }; <a name="l00391"></a>00391 <a name="l00392"></a>00392 <a name="l00393"></a>00393 <span class="preprocessor">#endif</span> </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="kmlMotBase_8h.html">kmlMotBase.h</a> </li> <li class="footer">Generated on Tue Feb 8 2011 for KatanaNativeInterface by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>