Revision: 9136
http://sourceforge.net/p/playerstage/svn/9136
Author: jpgr87
Date: 2013-11-12 00:11:47 +0000 (Tue, 12 Nov 2013)
Log Message:
-----------
Add support for hokuyoaist >= 3.0.0
The hokuyoaist driver was split out of the gearbox library
after version 9.11 and is now hosted on github. The new
hokuyoaist library, version 3.0, removed support for setting
the baudrate of the sensor during runtime. The driver has
been updated to reflect this change. There was also an error
in detecting the version of the hokuyoaist library: the driver
was looking for version 3.0.0 exactly. This has been fixed
so it looks for versions >=3.0.0.
Modified Paths:
--------------
code/player/trunk/server/drivers/ranger/CMakeLists.txt
code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
Modified: code/player/trunk/server/drivers/ranger/CMakeLists.txt
===================================================================
--- code/player/trunk/server/drivers/ranger/CMakeLists.txt 2013-11-11
02:31:39 UTC (rev 9135)
+++ code/player/trunk/server/drivers/ranger/CMakeLists.txt 2013-11-12
00:11:47 UTC (rev 9136)
@@ -10,7 +10,7 @@
PLAYERDRIVER_OPTION (hokuyoaist build_hokuyoaist ON)
PLAYERDRIVER_REQUIRE_PKG (hokuyoaist build_hokuyoaist hokuyoaist
hokuyoaist_includeDirs hokuyoaist_libDirs hokuyoaist_linkLibs
- hokuyoaist_linkFlags hokuyoaist_cFlags =3.0.0)
+ hokuyoaist_linkFlags hokuyoaist_cFlags >=3.0.0)
PLAYERDRIVER_ADD_DRIVER (hokuyoaist build_hokuyoaist
INCLUDEDIRS ${hokuyoaist_includeDirs} LIBDIRS ${hokuyoaist_libDirs}
LINKLIBS ${hokuyoaist_linkLibs} LINKFLAGS ${hokuyoaist_linkFlags}
Modified: code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
===================================================================
--- code/player/trunk/server/drivers/ranger/hokuyo_aist.cc 2013-11-11
02:31:39 UTC (rev 9135)
+++ code/player/trunk/server/drivers/ranger/hokuyo_aist.cc 2013-11-12
00:11:47 UTC (rev 9136)
@@ -93,11 +93,6 @@
@par Properties
- - baud_rate (integer)
- - Default: 19200bps
- - Change the baud rate of the connection to the laser. See HokuyoAIST
documentation for valid
- values. This is separate from the scanner's power-on default baud rate,
which should be
- specified in portopts.
- speed_level (integer, 0 to 10 or 99)
- Default: 0
- The speed at which the laser operates, as a level down from maximum
speed. See the HokuyoAIST
@@ -135,7 +130,6 @@
#include <hokuyoaist/hokuyoaist.h>
#include <libplayercore/playercore.h>
-const int DEFAULT_BAUDRATE = 19200;
const int DEFAULT_SPEED_LEVEL = 0;
const int DEFAULT_SENSITIVITY = 0;
const int DEFAULT_GET_INTENSITIES = 0;
@@ -166,7 +160,7 @@
bool verbose_, invert_, powerOnStartup_, getIntensities_,
ignoreUnknowns_;
double minAngle_, maxAngle_;
- IntProperty baudRate_, speedLevel_, highSensitivity_;
+ IntProperty speedLevel_, highSensitivity_;
DoubleProperty minDist_;
BoolProperty hwTimeStamps_;
std::string portOpts_;
@@ -190,7 +184,6 @@
HokuyoDriver::HokuyoDriver(ConfigFile* cf, int section) :
ThreadedDriver(cf, section, false, PLAYER_MSGQUEUE_DEFAULT_MAXLEN,
PLAYER_RANGER_CODE),
- baudRate_("baud_rate", DEFAULT_BAUDRATE, false),
speedLevel_("speed_level", DEFAULT_SPEED_LEVEL, false),
highSensitivity_("high_sensitivity", DEFAULT_SENSITIVITY, false),
minDist_("min_dist", DEFAULT_MIN_DIST, false),
@@ -198,7 +191,6 @@
_ranges(NULL), _intensities(NULL)
{
// Get the baudrate, speed and sensitivity
- RegisterProperty("baud_rate", &baudRate_, cf, section);
RegisterProperty("speed_level", &speedLevel_, cf, section);
RegisterProperty("high_sensitivity", &highSensitivity_, cf, section);
RegisterProperty("min_dist", &minDist_, cf, section);
@@ -310,41 +302,10 @@
{
player_intprop_req_t *req =
reinterpret_cast<player_intprop_req_t*> (data);
- // Change in the baud rate
- if (strncmp(req->key, "baud_rate", 9) == 0)
+ if (strncmp(req->key, "speed_level", 11) == 0)
{
try
{
- // Change the baud rate
- device_.set_baud(req->value);
- }
- catch(hokuyoaist::NotSerialError)
- {
- PLAYER_WARN(
- "HokuyoAIST: Cannot change the baud rate of a non-serial
connection.");
- Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK,
- PLAYER_SET_INTPROP_REQ, NULL, 0, NULL);
- return 0;
- }
- catch(hokuyoaist::BaseError &e)
- {
- PLAYER_ERROR1("HokuyoAIST: Error while changing baud rate: %s",
- e.what());
- SetError(-1);
-
- Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK,
- PLAYER_SET_INTPROP_REQ, NULL, 0, NULL);
- return 0;
- }
- baudRate_.SetValueFromMessage(data);
- Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK,
- PLAYER_SET_INTPROP_REQ, NULL, 0, NULL);
- return 0;
- }
- else if (strncmp(req->key, "speed_level", 11) == 0)
- {
- try
- {
device_.set_motor_speed(req->value);
}
catch(hokuyoaist::BaseError &e)
@@ -694,7 +655,7 @@
{
device_.ignore_unknowns(ignoreUnknowns_);
// Open the laser
- device_.open_with_probing(portOpts_);
+ device_.open(portOpts_);
// Get the sensor information and check minAngle_ and maxAngle_ are OK
hokuyoaist::SensorInfo info;
device_.get_sensor_info(info);
@@ -713,20 +674,6 @@
try
{
- device_.set_baud(baudRate_.GetValue());
- }
- catch(hokuyoaist::NotSerialError)
- {
- PLAYER_WARN(
- "HokuyoAIST: Cannot change the baud rate of a non-serial
connection.");
- }
- catch(hokuyoaist::BaseError &e)
- {
- PLAYER_WARN1("HokuyoAIST: Error while changing baud rate: %s",
- e.what());
- }
- try
- {
// Catch any errors here as this is an optional setting not
supported by all models
device_.set_motor_speed(speedLevel_.GetValue());
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit