From d5abe16ec4d38b10bc7103405cd79007f9ff681d Mon Sep 17 00:00:00 2001 From: torcs-ng Date: Tue, 7 Apr 2015 20:50:10 +0000 Subject: [PATCH] - added shadow_mpa11 git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5955 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 2e1c35a25df86cbf81a9713630fffe876454b409 Former-commit-id: f15bea767b47f28412febe0526b52de6afeede49 --- src/drivers/shadow/CMakeLists.txt | 6 +++--- src/drivers/shadow/src/Driver.cpp | 25 +++++++++++++++---------- src/drivers/shadow/src/Driver.h | 2 +- src/drivers/shadow/src/Opponent.h | 6 ++---- src/drivers/shadow/src/Shadow.cpp | 26 +++++++++++++++++++++++++- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/drivers/shadow/CMakeLists.txt b/src/drivers/shadow/CMakeLists.txt index 4a04d2226..03fcf91b5 100644 --- a/src/drivers/shadow/CMakeLists.txt +++ b/src/drivers/shadow/CMakeLists.txt @@ -6,7 +6,7 @@ SET(ROBOT_NAME "shadow") # Official-only shadow interface. SET(ROBOT_INTERFACE LEGACY WELCOME) -# Work-in-progress / unofficial shadow2 interface. +# Work-in-progress / unofficial shadow interface. #IF(NOT OPTION_OFFICIAL_ONLY) # # SET(ROBOT_INTERFACE ${ROBOT_INTERFACE} shadow_mpa11) @@ -81,9 +81,9 @@ SET(ROBOT_SOURCES src/Array.h src/Vec3d.h ) -# Official-only shadow2 instances. +# Official-only shadow instances. SET(ROBOT_CLONES shadow_36GP shadow_sc shadow_srw shadow_trb1 shadow_ls1 shadow_ls2 shadow_mp5 - shadow_mpa1 shadow_lp1 shadow_ref) + shadow_mpa1 shadow_mpa11 shadow_lp1 shadow_ref) # The ubiquitous robot module and its clones. ROBOT_MODULE(NAME ${ROBOT_NAME} VERSION 3.3.0 SOVERSION 1.0.0 diff --git a/src/drivers/shadow/src/Driver.cpp b/src/drivers/shadow/src/Driver.cpp index 540c4ba7a..c6558accc 100644 --- a/src/drivers/shadow/src/Driver.cpp +++ b/src/drivers/shadow/src/Driver.cpp @@ -225,6 +225,11 @@ TDriver::TDriver(int Index, const int robot_type): robot_name = "shadow_mpa1"; Frc = 0.88; break; + + case SHADOW_MPA11: + robot_name = "shadow_mpa11"; + Frc = 0.88; + break; } for( int i = 0; i < 50; i++ ) @@ -2719,29 +2724,29 @@ void TDriver::initTireMu() m_cm.TYRE_MU_R = TIREMUR; } -double TDriver::filterTCL(double Accel) // Tracktion control +double TDriver::filterTCL(double Accel) // Tracktion control { - if(fabs(car->_speed_x) < 0.001) // Only if driving faster + if(fabs(car->_speed_x) < 0.001) // Only if driving faster return Accel; - double Spin = 0; // Initialize spin - double Wr = 0; // wheel radius - int Count = 0; // count impellers + double Spin = 0; // Initialize spin + double Wr = 0; // wheel radius + int Count = 0; // count impellers - if(HasTrainFWD) // If front wheels - { // are impellers + if(HasTrainFWD) // If front wheels + { // are impellers double WSL = car->_wheelSpinVel(FRNT_LFT); // Get spin velocity double WSR = car->_wheelSpinVel(FRNT_RGT); if (WSL > WSR) // Depending on max - Spin += 2 * WSL + WSR; // calc weighted spin + Spin += 2 * WSL + WSR; // calc weighted spin else Spin += WSL + 2 * WSR; Wr += car->_wheelRadius(FRNT_LFT)+ car->_wheelRadius(FRNT_RGT); // measure radius Count += 3; // and count weights } - if(HasTrainRWD) // If rear wheels - { // are impellers + if(HasTrainRWD) // If rear wheels + { // are impellers double WSL = car->_wheelSpinVel(REAR_LFT); double WSR = car->_wheelSpinVel(REAR_RGT); if (WSL > WSR) diff --git a/src/drivers/shadow/src/Driver.h b/src/drivers/shadow/src/Driver.h index d5893a657..915eb58d9 100644 --- a/src/drivers/shadow/src/Driver.h +++ b/src/drivers/shadow/src/Driver.h @@ -99,7 +99,7 @@ static const int MAXNBBOTS = MAX_NBBOTS; // Number of drivers/robots static const int BUFSIZE = 256; enum { SHADOW_TRB1=1, SHADOW_SC, SHADOW_SRW, SHADOW_LS1, SHADOW_LS2, SHADOW_36GP, - SHADOW_RS, SHADOW_LP1, SHADOW_MPA1 }; + SHADOW_RS, SHADOW_LP1, SHADOW_MPA1, SHADOW_MPA11 }; class TDriver { diff --git a/src/drivers/shadow/src/Opponent.h b/src/drivers/shadow/src/Opponent.h index b2d9303a5..3e7f83097 100644 --- a/src/drivers/shadow/src/Opponent.h +++ b/src/drivers/shadow/src/Opponent.h @@ -150,10 +150,8 @@ public: void UpdatePath(); - void UpdateSit( const CarElt* myCar, const TeamInfo* pTeamInfo, - double myDirX, double myDirY ); - void ProcessMyCar( const Situation* s, const TeamInfo* pTeamInfo, - const CarElt* myCar, const Sit& mySit, + void UpdateSit( const CarElt* myCar, const TeamInfo* pTeamInfo, double myDirX, double myDirY ); + void ProcessMyCar( const Situation* s, const TeamInfo* pTeamInfo, const CarElt* myCar, const Sit& mySit, const TDriver& me, double myMaxAccX, int idx ); private: diff --git a/src/drivers/shadow/src/Shadow.cpp b/src/drivers/shadow/src/Shadow.cpp index 11ecb3369..994a20a35 100644 --- a/src/drivers/shadow/src/Shadow.cpp +++ b/src/drivers/shadow/src/Shadow.cpp @@ -198,13 +198,20 @@ void SetupSHADOW_lp1() robot_type = SHADOW_LP1; }; -// Schismatic init for usr_mpa1 +// Schismatic init for shadow_mpa1 void SetupSHADOW_mpa1() { // Add shadow_mpa1 specific initialization here robot_type = SHADOW_MPA1; }; +// Schismatic init for shadow_mpa1 +void SetupSHADOW_mpa11() +{ + // Add shadow_mpa1 specific initialization here + robot_type = SHADOW_MPA11; +}; + //////////////////////////////////////////////////////////// // Carset specific entry points (functions) @@ -301,6 +308,21 @@ extern "C" int shadow_mpa1(tModInfo *ModInfo) return ret; } +// Schismatic entry point for shadow_mpa11 +extern "C" int shadow_mpa11(tModInfo *ModInfo) +{ + int ret = -1; + setRobotName("shadow_mpa11"); + robot_type = SHADOW_MPA11; + void *robot_settings = getFileHandle(); + if (robot_settings) + { + ret = shadow(ModInfo); + } + + return ret; +} + // Schismatic entry point for shadow_36GP extern "C" int shadow_36GP(tModInfo *ModInfo) { @@ -445,6 +467,8 @@ extern "C" int moduleWelcome(const tModWelcomeIn* welcomeIn, SetupSHADOW_lp1(); else if (strncmp(robot_name,"shadow_mpa1", strlen("shadow_mpa1")) == 0) SetupSHADOW_mpa1(); + else if (strncmp(robot_name,"shadow_mpa11", strlen("shadow_mpa11")) == 0) + SetupSHADOW_mpa11(); // Set max nb of interfaces to return.