Revision: 9023
http://playerstage.svn.sourceforge.net/playerstage/?rev=9023&view=rev
Author: gbiggs
Date: 2011-01-18 01:20:13 +0000 (Tue, 18 Jan 2011)
Log Message:
-----------
Reverted munged commit 8982
Modified Paths:
--------------
code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
Modified: code/player/trunk/server/drivers/ranger/hokuyo_aist.cc
===================================================================
--- code/player/trunk/server/drivers/ranger/hokuyo_aist.cc 2011-01-17 23:59:54 UTC (rev 9022)
+++ code/player/trunk/server/drivers/ranger/hokuyo_aist.cc 2011-01-18 01:20:13 UTC (rev 9023)
@@ -161,24 +161,24 @@
bool ReadLaser (void);
bool AllocateDataSpace (void);
- // Configuration parameters
- bool _verbose, _invert, _powerOnStartup, _getIntensities, _ignoreUnknowns;
- double _minAngle, _maxAngle;
- IntProperty _baudRate, _speedLevel, _highSensitivity;
- DoubleProperty _minDist;
- BoolProperty _hwTimeStamps;
- std::string _portOpts;
- // Geometry
- player_ranger_geom_t _geom;
- player_pose3d_t _sensorPose;
- player_bbox3d_t _sensorSize;
- // The hardware device itself
- hokuyo_aist::HokuyoLaser _device;
- // Data storage
- hokuyo_aist::HokuyoData _data;
- double *_ranges;
- double *_intensities;
- int _numRanges;
+ // Configuration parameters
+ bool _verbose, _invert, _powerOnStartup, _getIntensities, _ignoreUnknowns;
+ double _minAngle, _maxAngle;
+ IntProperty _baudRate, _speedLevel, _highSensitivity;
+ DoubleProperty _minDist;
+ BoolProperty _hwTimeStamps;
+ std::string _portOpts;
+ // Geometry
+ player_ranger_geom_t _geom;
+ player_pose3d_t _sensorPose;
+ player_bbox3d_t _sensorSize;
+ // The hardware device itself
+ hokuyo_aist::HokuyoLaser _device;
+ // Data storage
+ hokuyo_aist::HokuyoData _data;
+ double *_ranges;
+ double *_intensities;
+ int _numRanges;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -201,15 +201,15 @@
RegisterProperty ("min_dist", &_minDist, cf, section);
RegisterProperty ("hw_timestamps", &_hwTimeStamps, cf, section);
- // Get config
- _getIntensities = cf->ReadBool (section, "get_intensities", false);
- _minAngle = cf->ReadFloat (section, "min_angle", -4.0);
- _maxAngle = cf->ReadFloat (section, "max_angle", 4.0);
- _invert = cf->ReadBool (section, "invert", false);
- _portOpts = cf->ReadString (section, "portopts", "type=serial,device=/dev/ttyACM0,timeout=1");
- _verbose = cf->ReadBool (section, "verbose", false);
- _ignoreUnknowns = cf->ReadBool (section, "ignoreunknowns", false);
- _powerOnStartup = cf->ReadBool (section, "power", true);
+ // Get config
+ _getIntensities = cf->ReadBool (section, "get_intensities", false);
+ _minAngle = cf->ReadFloat (section, "min_angle", -4.0);
+ _maxAngle = cf->ReadFloat (section, "max_angle", 4.0);
+ _invert = cf->ReadBool (section, "invert", false);
+ _portOpts = cf->ReadString (section, "portopts", "type=serial,device=/dev/ttyACM0,timeout=1");
+ _verbose = cf->ReadBool (section, "verbose", false);
+ _ignoreUnknowns = cf->ReadBool (section, "ignoreunknowns", false);
+ _powerOnStartup = cf->ReadBool (section, "power", true);
// Set up geometry information
_geom.pose.px = cf->ReadTupleLength (section, "pose", 0, 0.0);
@@ -229,7 +229,7 @@
memcpy(_geom.element_sizes, &_geom.size, sizeof (_geom.size));
// Turn on/off verbose mode
- _device.set_verbose (_verbose);
+ _device.SetVerbose (_verbose);
}
HokuyoDriver::~HokuyoDriver (void)
@@ -249,7 +249,7 @@
if (_ranges != NULL)
delete _ranges;
- _numRanges = _device.angle_to_step (_maxAngle) - _device.angle_to_step (_minAngle) + 1;
+ _numRanges = _device.AngleToStep (_maxAngle) - _device.AngleToStep (_minAngle) + 1;
if ((_ranges = new double[_numRanges]) == NULL)
{
PLAYER_ERROR1 ("hokuyo_aist: Failed to allocate space for %d range readings.", _numRanges);
@@ -306,26 +306,30 @@
try
{
// Change the baud rate
- _device.set_baud (req->value);
+ _device.SetBaud (req->value);
}
- catch (hokuyo_aist::NotSerialError)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_WARN (
- "hokuyo_aist: Cannot change the baud rate of a non-serial connection.");
+#if defined (WIN32)
+ if (e.Code () != HOKUYO_ERR_NOTSERIAL)
+#else
+ if (e.Code () != hokuyo_aist::HOKUYO_ERR_NOTSERIAL)
+#endif
+ {
+ PLAYER_ERROR2 ("hokuyo_aist: Error while changing baud rate: (%d) %s",
+ e.Code (), e.what ());
+ SetError (e.Code ());
+ }
+ else
+ {
+ PLAYER_WARN (
+ "hokuyo_aist: 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 (hokuyo_aist::BaseError &e)
- {
- PLAYER_ERROR1 ("hokuyo_aist: 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);
@@ -335,12 +339,13 @@
{
try
{
- _device.set_motor_speed (req->value);
+ _device.SetMotorSpeed (req->value);
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Error while changing motor speed: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Error while changing motor speed: (%d) %s",
+ e.Code (), e.what ());
+ SetError (e.Code ());
Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_SET_INTPROP_REQ,
NULL, 0, NULL);
return 0;
@@ -354,12 +359,13 @@
{
try
{
- _device.set_high_sensitivity (req->value != 0);
+ _device.SetHighSensitivity (req->value != 0);
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Error while changing sensitivity: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Error while changing sensitivity: (%d) %s",
+ e.Code (), e.what ());
+ SetError (e.Code ());
Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_SET_INTPROP_REQ,
NULL, 0, NULL);
return 0;
@@ -371,52 +377,106 @@
}
}
- if (!_invert)
- {
- rangerConfig.min_angle = _minAngle; // These two are user-configurable
- rangerConfig.max_angle = _maxAngle;
- }
- else
- {
- rangerConfig.min_angle = -_maxAngle;
- rangerConfig.max_angle = -_minAngle;
- }
+ // Standard ranger messages
+ else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_POWER, device_addr))
+ {
+ player_ranger_power_config_t *config =
+ reinterpret_cast<player_ranger_power_config_t*> (data);
+ try
+ {
+ if (config->state)
+ _device.SetPower (true);
+ else
+ _device.SetPower (false);
+ }
+ catch (hokuyo_aist::HokuyoError &e)
+ {
+ PLAYER_ERROR2 ("hokuyo_aist: Error while setting power state: (%d) %s",
+ e.Code (), e.what ());
+ SetError (e.Code ());
+ Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_RANGER_REQ_POWER,
+ NULL, 0, NULL);
+ }
+ Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK, PLAYER_RANGER_REQ_POWER, NULL,
+ 0, NULL);
+ return 0;
+ }
+ else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_INTNS, device_addr))
+ {
+ bool newValue = (reinterpret_cast<player_ranger_intns_config_t*> (data)->state != 0);
+ if (newValue && !_getIntensities)
+ {
+ // State change, allocate space for intensity data
+ if ((_intensities = new double[_numRanges]) == NULL)
+ {
+ PLAYER_ERROR1 ("hokuyo_aist: Failed to allocate space for %d intensity readings.",
+ _numRanges);
+ Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_RANGER_REQ_INTNS,
+ NULL, 0, NULL);
+ return 0;
+ }
+ }
+ else if (!newValue && _getIntensities)
+ {
+ // State change, remove allocated space
+ delete[] _intensities;
+ _intensities = NULL;
+ }
+ _getIntensities = newValue;
+ Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK, PLAYER_RANGER_REQ_INTNS, NULL,
+ 0, NULL);
+ return 0;
+ }
+ else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_GET_GEOM,
+ device_addr))
+ {
+ Publish (device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK, PLAYER_RANGER_REQ_GET_GEOM,
+ &_geom, sizeof (_geom), NULL);
+ return 0;
+ }
+ else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_GET_CONFIG,
+ device_addr))
+ {
+ player_ranger_config_t rangerConfig;
+ hokuyo_aist::HokuyoSensorInfo info;
+ _device.GetSensorInfo (&info);
- rangerConfig.angular_res = info.resolution;
- rangerConfig.min_range = info.minRange / 1000.0;
- rangerConfig.max_range = info.maxRange / 1000.0;
- rangerConfig.range_res = 0.001; // 1mm
- rangerConfig.frequency = info.speed / 60.0;
- Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK, PLAYER_RANGER_REQ_GET_CONFIG,
- &rangerConfig, sizeof (rangerConfig), NULL);
- return 0;
- }
- else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_SET_CONFIG,
- device_addr))
- {
- player_ranger_config_t *newParams = reinterpret_cast<player_ranger_config_t*> (data);
+ if (!_invert)
+ {
+ rangerConfig.min_angle = _minAngle; // These two are user-configurable
+ rangerConfig.max_angle = _maxAngle;
+ }
+ else
+ {
+ rangerConfig.min_angle = -_maxAngle;
+ rangerConfig.max_angle = -_minAngle;
+ }
- if (!_invert)
- {
- _minAngle = newParams->min_angle;
- _maxAngle = newParams->max_angle;
- }
- else
- {
- _minAngle = -newParams->max_angle;
- _maxAngle = -newParams->min_angle;
- }
+ rangerConfig.angular_res = info.resolution;
+ rangerConfig.min_range = info.minRange / 1000.0;
+ rangerConfig.max_range = info.maxRange / 1000.0;
+ rangerConfig.range_res = 0.001; // 1mm
+ rangerConfig.frequency = info.speed / 60.0;
+ Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_ACK, PLAYER_RANGER_REQ_GET_CONFIG,
+ &rangerConfig, sizeof (rangerConfig), NULL);
+ return 0;
+ }
+ else if (Message::MatchMessage (hdr, PLAYER_MSGTYPE_REQ, PLAYER_RANGER_REQ_SET_CONFIG,
+ device_addr))
+ {
+ player_ranger_config_t *newParams = reinterpret_cast<player_ranger_config_t*> (data);
- if (!AllocateDataSpace ())
- {
- PLAYER_ERROR ("hokuyo_aist: Failed to allocate space for storing range data.");
- Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_RANGER_REQ_GET_CONFIG,
- NULL, 0, NULL);
- return 0;
- }
+ if (!_invert)
+ {
+ _minAngle = newParams->min_angle;
+ _maxAngle = newParams->max_angle;
+ }
+ else
+ {
+ _minAngle = -newParams->max_angle;
+ _maxAngle = -newParams->min_angle;
+ }
- _minAngle = newParams->min_angle;
- _maxAngle = newParams->max_angle;
if (!AllocateDataSpace ())
{
PLAYER_ERROR ("hokuyo_aist: Failed to allocate space for storing range data.");
@@ -427,23 +487,24 @@
try
{
- hokuyo_aist::SensorInfo info;
- _device.get_sensor_info (info);
- if (_minAngle < info.min_angle)
+ hokuyo_aist::HokuyoSensorInfo info;
+ _device.GetSensorInfo (&info);
+ if (_minAngle < info.minAngle)
{
- _minAngle = info.min_angle;
+ _minAngle = info.minAngle;
PLAYER_WARN1 ("hokuyo_aist: Adjusted min_angle to %lf", _minAngle);
}
- if (_maxAngle> info.max_angle)
+ if (_maxAngle> info.maxAngle)
{
- _maxAngle = info.max_angle;
+ _maxAngle = info.maxAngle;
PLAYER_WARN1 ("hokuyo_aist: Adjusted max_angle to %lf", _maxAngle);
}
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Library error while changing settings: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Library error while changing settings: (%d) %s", e.Code (),
+ e.what ());
+ SetError (e.Code ());
Publish(device_addr, resp_queue, PLAYER_MSGTYPE_RESP_NACK, PLAYER_RANGER_REQ_GET_CONFIG,
NULL, 0, NULL);
return 0;
@@ -468,55 +529,55 @@
try
{
GlobalTime->GetTimeDouble (&time1);
- _device.get_new_ranges_intensities_by_angle (_data, _minAngle, _maxAngle);
+ _device.GetNewRangesAndIntensitiesByAngle (&_data, _minAngle, _maxAngle);
GlobalTime->GetTimeDouble (&time2);
time1 = (time1 + time2) / 2.0;
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Failed to read scan: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Failed to read scan: (%d) %s", e.Code (), e.what ());
+ SetError (e.Code ());
return false;
}
- double lastValidValue = _minDist;
- if (!_invert)
- {
- for (unsigned int ii = 0; ii < _data.Length (); ii++)
- {
- _ranges[ii] = _data[ii] / 1000.0f;
- _intensities[ii] = _data.Intensities ()[ii];
- if (_minDist > 0)
- {
- if (_ranges[ii] < _minDist)
- _ranges[ii] = lastValidValue;
- else
- lastValidValue = _ranges[ii];
- }
- }
- }
- else // invert
- {
- for (unsigned int ii = 0; ii < _data.Length (); ii++)
- {
- unsigned int jj = _data.Length () - 1 - ii;
- _ranges[ii] = _data[jj] / 1000.0f;
- _intensities[ii] = _data.Intensities ()[jj];
- if (_minDist > 0)
- {
- if (_ranges[ii] < _minDist)
- _ranges[ii] = lastValidValue;
- else
- lastValidValue = _ranges[ii];
- }
- }
- }
+ double lastValidValue = _minDist;
+ if (!_invert)
+ {
+ for (unsigned int ii = 0; ii < _data.Length (); ii++)
+ {
+ _ranges[ii] = _data[ii] / 1000.0f;
+ _intensities[ii] = _data.Intensities ()[ii];
+ if (_minDist > 0)
+ {
+ if (_ranges[ii] < _minDist)
+ _ranges[ii] = lastValidValue;
+ else
+ lastValidValue = _ranges[ii];
+ }
+ }
+ }
+ else // invert
+ {
+ for (unsigned int ii = 0; ii < _data.Length (); ii++)
+ {
+ unsigned int jj = _data.Length () - 1 - ii;
+ _ranges[ii] = _data[jj] / 1000.0f;
+ _intensities[ii] = _data.Intensities ()[jj];
+ if (_minDist > 0)
+ {
+ if (_ranges[ii] < _minDist)
+ _ranges[ii] = lastValidValue;
+ else
+ lastValidValue = _ranges[ii];
+ }
+ }
+ }
rangeData.ranges = _ranges;
- rangeData.ranges_count = _data.ranges_length ();
+ rangeData.ranges_count = _data.Length ();
if (_hwTimeStamps.GetValue ())
{
- double ts = _data.system_time_stamp () / 1e9;
+ double ts = _data.TimeStamp () / 1000.0;
Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_RANGE,
reinterpret_cast<void*> (&rangeData), sizeof (rangeData), &ts);
}
@@ -527,10 +588,10 @@
}
intensityData.intensities = _intensities;
- intensityData.intensities_count = _data.intensities_length ();
+ intensityData.intensities_count = _data.Length ();
if (_hwTimeStamps.GetValue ())
{
- double ts = _data.system_time_stamp () / 1e9;
+ double ts = _data.TimeStamp () / 1000.0;
Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_INTNS,
reinterpret_cast<void*> (&intensityData), sizeof (intensityData), &ts);
}
@@ -547,59 +608,59 @@
try
{
GlobalTime->GetTimeDouble (&time1);
- _device.get_ranges_by_angle (_data, _minAngle, _maxAngle);
+ _device.GetRangesByAngle (&_data, _minAngle, _maxAngle);
GlobalTime->GetTimeDouble (&time2);
time1 = (time1 + time2) / 2.0;
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Failed to read scan: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Failed to read scan: (%d) %s", e.Code (), e.what ());
+ SetError (e.Code ());
return false;
}
- double lastValidValue = _minDist;
- if (!_invert) {
- for (unsigned int ii = 0; ii < _data.Length (); ii++)
- {
- _ranges[ii] = _data[ii] / 1000.0f;
- if (_minDist > 0)
- {
- if (_ranges[ii] < _minDist)
- _ranges[ii] = lastValidValue;
- else
- lastValidValue = _ranges[ii];
- }
- }
- }
- else // invert
- {
- for (unsigned int ii = 0; ii < _data.Length (); ii++)
- {
- _ranges[ii] = _data[_data.Length () - 1 - ii] / 1000.0f;
- if (_minDist > 0)
- {
- if (_ranges[ii] < _minDist)
- _ranges[ii] = lastValidValue;
- else
- lastValidValue = _ranges[ii];
- }
- }
- }
- rangeData.ranges = _ranges;
- rangeData.ranges_count = _data.Length ();
- if (_hwTimeStamps.GetValue ())
- {
- double ts = _data.TimeStamp () / 1000.0;
- Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_RANGE,
- reinterpret_cast<void*> (&rangeData), sizeof (rangeData), &ts);
- }
- else
- {
- Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_RANGE,
- reinterpret_cast<void*> (&rangeData), sizeof (rangeData), &time1);
- }
- }
+ double lastValidValue = _minDist;
+ if (!_invert) {
+ for (unsigned int ii = 0; ii < _data.Length (); ii++)
+ {
+ _ranges[ii] = _data[ii] / 1000.0f;
+ if (_minDist > 0)
+ {
+ if (_ranges[ii] < _minDist)
+ _ranges[ii] = lastValidValue;
+ else
+ lastValidValue = _ranges[ii];
+ }
+ }
+ }
+ else // invert
+ {
+ for (unsigned int ii = 0; ii < _data.Length (); ii++)
+ {
+ _ranges[ii] = _data[_data.Length () - 1 - ii] / 1000.0f;
+ if (_minDist > 0)
+ {
+ if (_ranges[ii] < _minDist)
+ _ranges[ii] = lastValidValue;
+ else
+ lastValidValue = _ranges[ii];
+ }
+ }
+ }
+ rangeData.ranges = _ranges;
+ rangeData.ranges_count = _data.Length ();
+ if (_hwTimeStamps.GetValue ())
+ {
+ double ts = _data.TimeStamp () / 1000.0;
+ Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_RANGE,
+ reinterpret_cast<void*> (&rangeData), sizeof (rangeData), &ts);
+ }
+ else
+ {
+ Publish (device_addr, PLAYER_MSGTYPE_DATA, PLAYER_RANGER_DATA_RANGE,
+ reinterpret_cast<void*> (&rangeData), sizeof (rangeData), &time1);
+ }
+ }
return true;
}
@@ -608,63 +669,66 @@
{
try
{
- _device.ignore_unknowns (_ignoreUnknowns);
+ _device.IgnoreUnknowns (_ignoreUnknowns);
// Open the laser
- _device.open_with_probing (_portOpts);
+ _device.OpenWithProbing (_portOpts);
// Get the sensor information and check _minAngle and _maxAngle are OK
- hokuyo_aist::SensorInfo info;
- _device.get_sensor_info (info);
- if (_minAngle < info.min_angle)
+ hokuyo_aist::HokuyoSensorInfo info;
+ _device.GetSensorInfo (&info);
+ if (_minAngle < info.minAngle)
{
- _minAngle = info.min_angle;
+ _minAngle = info.minAngle;
PLAYER_WARN1 ("hokuyo_aist: Adjusted min_angle to %lf", _minAngle);
}
- if (_maxAngle> info.max_angle)
+ if (_maxAngle> info.maxAngle)
{
- _maxAngle = info.max_angle;
+ _maxAngle = info.maxAngle;
PLAYER_WARN1 ("hokuyo_aist: Adjusted max_angle to %lf", _maxAngle);
}
if (!AllocateDataSpace ())
return -1;
if (_powerOnStartup)
- _device.set_power (true);
+ _device.SetPower (true);
try
{
- _device.set_baud (_baudRate.GetValue ());
+ _device.SetBaud (_baudRate.GetValue ());
}
- catch (hokuyo_aist::NotSerialError)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_WARN ("hokuyo_aist: Cannot change the baud rate of a non-serial connection.");
+#if defined (WIN32)
+ if (e.Code () != HOKUYO_ERR_NOTSERIAL)
+#else
+ if (e.Code () != hokuyo_aist::HOKUYO_ERR_NOTSERIAL)
+#endif
+ PLAYER_WARN ("hokuyo_aist: Cannot change the baud rate of a non-serial connection.");
+ else
+ PLAYER_WARN2 ("hokuyo_aist: Error changing baud rate: (%d) %s", e.Code (), e.what ());
}
- catch (hokuyo_aist::BaseError &e)
- {
- PLAYER_WARN1 ("hokuyo_aist: Error 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 ());
+ _device.SetMotorSpeed (_speedLevel.GetValue ());
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_WARN1 ("hokuyo_aist: Unable to set motor speed: %s", e.what ());
+ PLAYER_WARN2 ("hokuyo_aist: Unable to set motor speed: (%d) %s", e.Code (), e.what ());
}
try
{
// Optional setting
- _device.set_high_sensitivity (_highSensitivity.GetValue () != 0);
+ _device.SetHighSensitivity (_highSensitivity.GetValue () != 0);
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_WARN1 ("hokuyo_aist: Unable to set sensitivity: %s", e.what ());
+ PLAYER_WARN2 ("hokuyo_aist: Unable to set sensitivity: (%d) %s", e.Code (), e.what ());
}
}
- catch (hokuyo_aist::BaseError &e)
+ catch (hokuyo_aist::HokuyoError &e)
{
- PLAYER_ERROR1 ("hokuyo_aist: Failed to setup laser driver: %s", e.what ());
- SetError (-1);
+ PLAYER_ERROR2 ("hokuyo_aist: Failed to setup laser driver: (%d) %s", e.Code (), e.what ());
+ SetError (e.Code ());
return -1;
}
return 0;
@@ -672,8 +736,8 @@
void HokuyoDriver::MainQuit (void)
{
- _device.close ();
- _data.clean_up ();
+ _device.Close ();
+ _data.CleanUp ();
if (_ranges != NULL)
{
delete[] _ranges;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|