acthandler_8c-source.html

来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 206 行 · 第 1/2 页

HTML
206
字号
00132     Log.logWithTime( 2, <font class="stringliteral">" no primary action in queue"</font> );00133   }00134 00135   <font class="comment">// make strings of all other commands and send them to server</font>00136   <font class="keywordflow">for</font>( <font class="keywordtype">int</font> i = 0; i &lt; <a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a> ; i ++ )00137   {00138     <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[i].<a class="code" href="classSoccerCommand.html#a7">getCommandString</a>( strCommand, <a class="code" href="classActHandler.html#o1">SS</a> );00139     <font class="keywordflow">if</font>( strCommand[0] != <font class="charliteral">'\0'</font> )00140     {00141       <a class="code" href="classActHandler.html#o0">connection</a>-&gt;<a class="code" href="classConnection.html#a8">sendMessage</a>( strCommand );00142       Log.logWithTime( 2, <font class="stringliteral">" send queued action to server: %s"</font>, strCommand);00143     }00144   }00145   <font class="keywordflow">if</font>( ! bNoOneCycle ) <font class="comment">// if primary action was send, put it at end of array</font>00146     <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[<a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a>++] = <a class="code" href="classActHandler.html#o3">m_queueOneCycleCommand</a>;00147 00148   <font class="comment">// let worldmodel know which commands were sent to the server</font>00149   <a class="code" href="classActHandler.html#o2">WM</a>-&gt;<a class="code" href="classWorldModel.html#a96">processQueuedCommands</a>( <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>, <a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a> );00150 00151   <font class="comment">// decrease amount of times primary action still has to be sent, if 0 delete</font>00152   <font class="comment">// it, furthermore set number of multiple commands to zero</font>00153   <font class="keywordflow">if</font>( --<a class="code" href="classActHandler.html#o3">m_queueOneCycleCommand</a>.<a class="code" href="classSoccerCommand.html#m9">iTimes</a>  == 0 )00154     <a class="code" href="classActHandler.html#o3">m_queueOneCycleCommand</a>.<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a180">CMD_ILLEGAL</a>;00155 00156   <font class="keywordflow">for</font>( <font class="keywordtype">int</font> i = 0; i &lt; <a class="code" href="SoccerTypes_8h.html#a5">MAX_COMMANDS</a>; i++ )00157     <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[i].<a class="code" href="classSoccerCommand.html#m1">commandType</a> = <a class="code" href="SoccerTypes_8h.html#a247a180">CMD_ILLEGAL</a>;00158   <a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a> = 0;00159   timeLastSent        = <a class="code" href="classActHandler.html#o2">WM</a>-&gt;<a class="code" href="classWorldModel.html#a4">getCurrentTime</a>();00160   <font class="keywordflow">return</font> <font class="keyword">true</font>;00161 }00162 <a name="l00168"></a><a class="code" href="classActHandler.html#a1">00168</a> <font class="keywordtype">bool</font> <a class="code" href="classActHandler.html#a1">ActHandler::putCommandInQueue</a>( <a class="code" href="classSoccerCommand.html">SoccerCommand</a> command )00169 {00170   <font class="keywordtype">int</font> i = 0;00171   <font class="keywordtype">bool</font> bOverwritten = <font class="keyword">false</font>;00172   00173   <font class="keywordflow">if</font>( command.<a class="code" href="classSoccerCommand.html#m1">commandType</a> == <a class="code" href="SoccerTypes_8h.html#a247a180">CMD_ILLEGAL</a> )00174     <font class="keywordflow">return</font> <font class="keyword">false</font>;00175   <font class="keywordflow">if</font>( <a class="code" href="classSoccerTypes.html#d30">SoccerTypes::isPrimaryCommand</a>( command.<a class="code" href="classSoccerCommand.html#m1">commandType</a> ) )00176     <a class="code" href="classActHandler.html#o3">m_queueOneCycleCommand</a> = command;           <font class="comment">// overwrite primary command</font>00177   <font class="keywordflow">else</font>                                          <font class="comment">// non-primary command</font>00178   {00179     <font class="keywordflow">for</font>( i = 0; i &lt; <a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a> ; i ++ )00180       <font class="keywordflow">if</font>( <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[i].<a class="code" href="classSoccerCommand.html#m1">commandType</a> == command.<a class="code" href="classSoccerCommand.html#m1">commandType</a> )00181       {00182         <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[i] = command;   <font class="comment">// if command already in queue</font>00183         bOverwritten = <font class="keyword">true</font>;                    <font class="comment">// overwrite it</font>00184       }00185 00186     <font class="comment">// 1 less to save space for primary command</font>00187     <font class="keywordflow">if</font>( bOverwritten == <font class="keyword">false</font> &amp;&amp; <a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a> == <a class="code" href="SoccerTypes_8h.html#a5">MAX_COMMANDS</a>-1 ) 00188     {00189       cerr &lt;&lt; <font class="stringliteral">"(ActHandler::putCommandInQueue) too many commands"</font> &lt;&lt; endl;00190       <font class="keywordflow">return</font> <font class="keyword">false</font>;00191     }00192     <font class="keywordflow">if</font>( bOverwritten == <font class="keyword">false</font>  ) <font class="comment">// add it when command was not yet in queue</font>00193       <a class="code" href="classActHandler.html#o4">m_queueMultipleCommands</a>[<a class="code" href="classActHandler.html#o5">m_iMultipleCommands</a>++] = command;          00194   }00195 00196   <font class="keywordflow">return</font> <font class="keyword">true</font>;00197 }00198 <a name="l00204"></a><a class="code" href="classActHandler.html#a5">00204</a> <font class="keywordtype">bool</font> <a class="code" href="classActHandler.html#a5">ActHandler::sendCommand</a>( <a class="code" href="classSoccerCommand.html">SoccerCommand</a> soc )00205 {00206   <font class="keywordtype">char</font> strCommand[<a class="code" href="SoccerTypes_8h.html#a6">MAX_MSG</a>];00207   soc.<a class="code" href="classSoccerCommand.html#a7">getCommandString</a>( strCommand, <a class="code" href="classActHandler.html#o1">SS</a> );00208   <font class="keywordflow">return</font> <a class="code" href="classActHandler.html#a6">sendMessage</a>( strCommand );00209 }00210 <a name="l00216"></a><a class="code" href="classActHandler.html#a6">00216</a> <font class="keywordtype">bool</font> <a class="code" href="classActHandler.html#a6">ActHandler::sendMessage</a>( <font class="keywordtype">char</font> * str )00217 {00218   <a class="code" href="classActHandler.html#a2">emptyQueue</a>( );00219   poll( 0, 0, <a class="code" href="classActHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a134">getSimulatorStep</a>() );00220 00221   <font class="keywordtype">bool</font> bReturn = <a class="code" href="classActHandler.html#o0">connection</a>-&gt;<a class="code" href="classConnection.html#a8">sendMessage</a>( str );00222   Log.logWithTime( 2, <font class="stringliteral">" send message to server and wait: %s"</font>, str);00223 00224   poll( 0, 0, <a class="code" href="classActHandler.html#o1">SS</a>-&gt;<a class="code" href="classServerSettings.html#a134">getSimulatorStep</a>() );00225   <font class="keywordflow">return</font> bReturn;00226 }00227 <a name="l00233"></a><a class="code" href="classActHandler.html#a7">00233</a> <font class="keywordtype">bool</font> <a class="code" href="classActHandler.html#a7">ActHandler::sendCommandDirect</a>( <a class="code" href="classSoccerCommand.html">SoccerCommand</a> soc )00234 {00235   <font class="keywordtype">char</font> strCommand[<a class="code" href="SoccerTypes_8h.html#a6">MAX_MSG</a>];00236   soc.<a class="code" href="classSoccerCommand.html#a7">getCommandString</a>( strCommand, <a class="code" href="classActHandler.html#o1">SS</a> );00237   <font class="keywordflow">return</font> <a class="code" href="classActHandler.html#a8">sendMessageDirect</a>( strCommand );00238 }00239 <a name="l00243"></a><a class="code" href="classActHandler.html#a8">00243</a> <font class="keywordtype">bool</font> <a class="code" href="classActHandler.html#a8">ActHandler::sendMessageDirect</a>( <font class="keywordtype">char</font> * str )00244 {00245   <font class="keywordtype">bool</font> bReturn = <a class="code" href="classActHandler.html#o0">connection</a>-&gt;<a class="code" href="classConnection.html#a8">sendMessage</a>( str );00246   Log.logWithTime( 2, <font class="stringliteral">" send message to server directly: %s"</font>, str);00247   <font class="keywordflow">return</font> bReturn;00248 }00249 </pre></div><hr><address><small>Generated on Thu Mar 7 00:37:42 2002 for UvA Trilearn 2001 by<a href="http://www.doxygen.org/index.html"><img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.12 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, &copy;&nbsp;1997-2001</small></address></body></html>

⌨️ 快捷键说明

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