sensehandler_8c-source.html
来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 583 行 · 第 1/5 页
HTML
583 行
00538 pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00539 pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00540 vel.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00541 vel.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00542 obj = <a class="code" href="classSoccerTypes.html#d15">SoccerTypes::getTeammateObjectFromIndex</a>( iPlayer - 1 );00543 00544 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, 1.00 ); <font class="comment">// vel is not parsed.</font>00545 00546 <font class="comment">// parse the information from the ball, the confidence is subtracted with</font>00547 <font class="comment">// dDiff that denotes the confidence difference between the sent time and</font>00548 <font class="comment">// the heard time. When message is heard one cycle later than it is sent,</font>00549 <font class="comment">// confidence should be lower.</font>00550 <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>( <font class="charliteral">'('</font>, &strMsg );00551 strMsg++;00552 <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> ) <font class="comment">// ball info available</font>00553 {00554 pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00555 pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00556 vel.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00557 vel.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00558 dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg );00559 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a92">processPerfectHearInfoBall</a>( pos, vel, dConf - dDiff );00560 }00561 00562 <a class="code" href="classParse.html#d3">Parse::gotoFirstOccurenceOf</a>( <font class="charliteral">')'</font>, &strMsg ); <font class="comment">// go to teammate info</font>00563 strMsg++; <font class="comment">// skip ')'</font>00564 strMsg++; <font class="comment">// skip '('</font>00565 <font class="keywordflow">while</font>( *strMsg != <font class="charliteral">')'</font> ) <font class="comment">// as long as new info</font>00566 {00567 iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &strMsg ); <font class="comment">// get the number</font>00568 <font class="keywordflow">if</font>( iPlayer == -1 ) <font class="comment">// if illegal</font>00569 obj = <a class="code" href="SoccerTypes_8h.html#a240a96">OBJECT_TEAMMATE_UNKNOWN</a>; <font class="comment">// we don't know nr</font>00570 <font class="keywordflow">else</font>00571 obj = <a class="code" href="classSoccerTypes.html#d15">SoccerTypes::getTeammateObjectFromIndex</a>( iPlayer - 1 );00572 pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00573 pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00574 dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) ;00575 <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &strMsg );00576 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, dConf - dDiff ); <font class="comment">// process all info</font>00577 }00578 00579 <font class="keywordtype">bool</font> bIsGoalie = <font class="keyword">false</font>;00580 00581 strMsg++; <font class="comment">// skip ')' // go to opponent info</font>00582 strMsg++; <font class="comment">// skip '('</font>00583 <font class="keywordflow">while</font>( *strMsg != <font class="charliteral">')'</font> )00584 {00585 iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &strMsg );00586 <font class="keywordflow">if</font>( iPlayer == -1 ) <font class="comment">// if illegal</font>00587 obj = <a class="code" href="SoccerTypes_8h.html#a240a108">OBJECT_OPPONENT_UNKNOWN</a>; <font class="comment">// we don't know nr</font>00588 <font class="keywordflow">else</font>00589 obj = <a class="code" href="classSoccerTypes.html#d16">SoccerTypes::getOpponentObjectFromIndex</a>( iPlayer - 1 );00590 bIsGoalie = ( *strMsg == <font class="charliteral">'g'</font> ); <font class="comment">// i.e. 1g</font>00591 pos.<a class="code" href="classVecPosition.html#a25">setX</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00592 pos.<a class="code" href="classVecPosition.html#a27">setY</a>( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00593 dConf = <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) ;00594 <a class="code" href="classParse.html#d4">Parse::gotoFirstNonSpace</a>( &strMsg );00595 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a91">processPerfectHearInfo</a>( obj, pos, dConf - dDiff, bIsGoalie );00596 }00597 <font class="keywordflow">return</font> <font class="keyword">true</font>;00598 }00599 <a name="l00606"></a><a class="code" href="classSenseHandler.html#a12">00606</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a12">SenseHandler::analyzeCheckBall</a>( <font class="keywordtype">char</font> *strMsg )00607 {00608 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a28">setTimeCheckBall</a>( <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &strMsg ) );00609 strMsg++;00610 <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a30">setCheckBallStatus</a>( <a class="code" href="classSoccerTypes.html#d34">SoccerTypes::getBallStatusFromStr</a>( strMsg ) );00611 <font class="keywordflow">return</font> <font class="keyword">true</font>;00612 }00613 <a name="l00620"></a><a class="code" href="classSenseHandler.html#a10">00620</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a10">SenseHandler::analyzeChangePlayerTypeMessage</a>( <font class="keywordtype">char</font> *strMsg )00621 {00622 <font class="keywordtype">int</font> iPlayer = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &strMsg );00623 <font class="keywordflow">if</font>( *strMsg != <font class="charliteral">')'</font> && <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a14">getPlayerNumber</a>() == iPlayer )00624 {00625 <font class="keywordtype">int</font> iPlayerType = <a class="code" href="classParse.html#d1">Parse::parseFirstInt</a>( &strMsg );00626 <font class="keywordflow">return</font> <a class="code" href="classSenseHandler.html#o0">WM</a>-><a class="code" href="classWorldModel.html#a99">updateSSToHeteroPlayerType</a>( iPlayerType );00627 }00628 <font class="keywordflow">return</font> <font class="keyword">false</font>;00629 }00630 <a name="l00637"></a><a class="code" href="classSenseHandler.html#a11">00637</a> <font class="keywordtype">bool</font> <a class="code" href="classSenseHandler.html#a11">SenseHandler::analyzeServerParamMessage</a>( <font class="keywordtype">char</font> *strMsg )00638 {00639 <font class="comment">// get the server parameters one by one</font>00640 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a3">setGoalWidth</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00641 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a43">setInertiaMoment</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00642 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a5">setPlayerSize</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00643 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a7">setPlayerDecay</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00644 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a9">setPlayerRand</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00645 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a11">setPlayerWeight</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00646 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a13">setPlayerSpeedMax</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00647 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a15">setPlayerAccelMax</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00648 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a17">setStaminaMax</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00649 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a19">setStaminaIncMax</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00650 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip recover_init = 0</font>00651 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a21">setRecoverDecThr</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00652 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a25">setRecoverMin</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00653 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a23">setRecoverDec</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00654 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip effort_init = 0</font>00655 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a27">setEffortDecThr</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00656 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a35">setEffortMin</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00657 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a29">setEffortDec</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00658 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a31">setEffortIncThr</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00659 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a33">setEffortInc</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00660 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a83">setKickRand</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00661 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip team_actuator noise</font>00662 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip prand_factor_l</font>00663 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip prand_factor_r</font>00664 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip kick_rand_factor_l</font>00665 <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ); <font class="comment">// skip kick_rand_factor_r</font>00666 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a57">setBallSize</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00667 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a59">setBallDecay</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00668 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a61">setBallRand</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00669 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a63">setBallWeight</a> ( <a class="code" href="classParse.html#d0">Parse::parseFirstDouble</a>( &strMsg ) );00670 <a class="code" href="classSenseHandler.html#o1">SS</a>-><a class="code" href="classServerSettings.html#a65">setBallSpeedMax</a> ( <a class="code" hre
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?