Revision: 8144 http://playerstage.svn.sourceforge.net/playerstage/?rev=8144&view=rev Author: gbiggs Date: 2009-07-28 03:41:35 +0000 (Tue, 28 Jul 2009)
Log Message: ----------- Applied patch #2824989 Modified Paths: -------------- code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.c code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.h code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_driver.cc Modified: code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.c =================================================================== --- code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.c 2009-07-27 14:59:59 UTC (rev 8143) +++ code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.c 2009-07-28 03:41:35 UTC (rev 8144) @@ -60,7 +60,7 @@ } int -roomba_open(roomba_comm_t* r, unsigned char fullcontrol) +roomba_open(roomba_comm_t* r, unsigned char fullcontrol, int roomba500) { struct termios term; int flags; @@ -98,8 +98,17 @@ } cfmakeraw(&term); - cfsetispeed(&term, B57600); - cfsetospeed(&term, B57600); + + if (roomba500) + { + cfsetispeed(&term, B115200); + cfsetospeed(&term, B115200); + } + else + { + cfsetispeed(&term, B57600); + cfsetospeed(&term, B57600); + } if(tcsetattr(r->fd, TCSAFLUSH, &term) < 0 ) { Modified: code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.h =================================================================== --- code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.h 2009-07-27 14:59:59 UTC (rev 8143) +++ code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_comms.h 2009-07-28 03:41:35 UTC (rev 8144) @@ -123,7 +123,7 @@ roomba_comm_t* roomba_create(const char* serial_port); void roomba_destroy(roomba_comm_t* r); -int roomba_open(roomba_comm_t* r, unsigned char fullcontrol); +int roomba_open(roomba_comm_t* r, unsigned char fullcontrol, int roomba500); int roomba_init(roomba_comm_t* r, unsigned char fullcontrol); int roomba_close(roomba_comm_t* r); int roomba_set_speeds(roomba_comm_t* r, double tv, double rv); Modified: code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_driver.cc =================================================================== --- code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_driver.cc 2009-07-27 14:59:59 UTC (rev 8143) +++ code/player/trunk/server/drivers/mixed/irobot/roomba/roomba_driver.cc 2009-07-28 03:41:35 UTC (rev 8144) @@ -80,6 +80,10 @@ - bumplock (integer) - Default: 0 - If set to 1, the robot will stop whenever bumpers are closed +- roomba500 (boolean) + - Default: false + - If set to true, the driver will start at the faster default baudrate + of the Roomba 500 series @par Example @@ -90,6 +94,7 @@ provides ["position2d:0" "power:0" "bumper:0" "ir:0" "opaque:0"] port "/dev/ttyS2" safe 1 + roomba500 false ) @endverbatim @@ -144,6 +149,8 @@ bool bumplock; bool bumplocked; + bool roomba500; + player_devaddr_t position_addr; player_devaddr_t power_addr; player_devaddr_t bumper_addr; @@ -253,6 +260,7 @@ this->serial_port = cf->ReadString(section, "port", "/dev/ttyS0"); this->safe = cf->ReadInt(section, "safe", 1); this->bumplock = cf->ReadInt(section, "bumplock", 0); + this->roomba500 = cf->ReadBool(section, "roomba500", 0); this->bumplocked = false; this->roomba_dev = NULL; } @@ -262,7 +270,7 @@ { this->roomba_dev = roomba_create(this->serial_port); - if(roomba_open(this->roomba_dev, !this->safe) < 0) + if(roomba_open(this->roomba_dev, !this->safe, this->roomba500) < 0) { roomba_destroy(this->roomba_dev); this->roomba_dev = NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Playerstage-commit mailing list Playerstage-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/playerstage-commit