[Libphidget-cvs-commits] CVS: libphidget/src/phidget++ CServoController.cc,1.6,1.7
Status: Alpha
Brought to you by:
jstrohm
|
From: Jack S. <js...@us...> - 2002-12-15 17:32:50
|
Update of /cvsroot/libphidget/libphidget/src/phidget++
In directory sc8-pr-cvs1:/tmp/cvs-serv9906/phidget++
Modified Files:
CServoController.cc
Log Message:
Minor
Index: CServoController.cc
===================================================================
RCS file: /cvsroot/libphidget/libphidget/src/phidget++/CServoController.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CServoController.cc 16 Sep 2002 06:43:33 -0000 1.6
--- CServoController.cc 15 Dec 2002 17:32:44 -0000 1.7
***************
*** 21,52 ****
{
METHOD_GUARD;
! // Make sure it was constructed properly
! if (classType() != LP_SERVO_CONTROLLER)
! throw runtime_error("Can't initialize a CServoController with a phidget that is not a servo controller");
! switch (productID()) {
! case 0x0038:
! {
! setServoCount(4);
! break;
! }
! case 0x0039:
! {
! setServoCount(1);
! break;
! }
! case 0x003B:
! {
! setServoCount(8);
! break;
! }
! default:
{
! char temp[128];
! sprintf(temp, "Unknown type of servo controller Vendor ID:0x0%x Product ID:0x0%x\n", vendorID(), productID());
! throw runtime_error(temp);
}
- }
METHOD_UNGUARD;
}
--- 21,53 ----
{
METHOD_GUARD;
! // Make sure it was constructed properly
! if (classType() != LP_SERVO_CONTROLLER)
! throw runtime_error("Can't initialize a CServoController with a phidget that is not a servo controller");
! switch (productID())
{
! case 0x0038:
! {
! setServoCount(4);
! break;
! }
! case 0x0039:
! {
! setServoCount(1);
! break;
! }
! //case 0x003B:
! //{
! //setServoCount(8);
! //break;
! //}
! default:
! {
! char temp[128];
! sprintf(temp, "Unknown type of servo controller Vendor ID:0x0%x Product ID:0x0%x\n", vendorID(), productID());
! throw runtime_error(temp);
! }
}
METHOD_UNGUARD;
}
***************
*** 55,63 ****
{
METHOD_GUARD;
! for (int t = 0; t < _servoCount; t++)
! if (_servos[t].first)
! delete _servos[t].second;
! delete[]_servos;
METHOD_UNGUARD;
}
--- 56,64 ----
{
METHOD_GUARD;
! for (int t = 0; t < _servoCount; t++)
! if (_servos[t].first)
! delete _servos[t].second;
! delete[]_servos;
METHOD_UNGUARD;
}
***************
*** 66,73 ****
{
METHOD_GUARD;
! if (uid.serial() == UID().serial() && uid.id() >= 0 && uid.id() < _servoCount)
! return (servo(uid.id(), create));
! return (CPhidget::find(uid));
METHOD_UNGUARD;
}
--- 67,74 ----
{
METHOD_GUARD;
! if (uid.serial() == UID().serial() && uid.id() >= 0 && uid.id() < _servoCount)
! return (servo(uid.id(), create));
! return (CPhidget::find(uid));
METHOD_UNGUARD;
}
***************
*** 76,88 ****
{
METHOD_GUARD;
! if (id < 0 || id >= _servoCount)
! throw runtime_error("Invalid servo id");
! if (create && _servos[id].second == NULL) {
! _servos[id].first = true;
! _servos[id].second = new CServo (this, id);
! }
! return (_servos[id].second);
METHOD_UNGUARD;
}
--- 77,90 ----
{
METHOD_GUARD;
! if (id < 0 || id >= _servoCount)
! throw runtime_error("Invalid servo id");
! if (create && _servos[id].second == NULL)
! {
! _servos[id].first = true;
! _servos[id].second = new CServo (this, id);
! }
! return (_servos[id].second);
METHOD_UNGUARD;
}
***************
*** 91,102 ****
{
METHOD_GUARD;
! if (id < 0 || id >= _servoCount)
! throw runtime_error("Invalid servo id");
! if (_servos[id].second != NULL)
! throw runtime_error("This servo id is already being used.");
! _servos[id].first = false;
! _servos[id].second = servo;
METHOD_UNGUARD;
}
--- 93,104 ----
{
METHOD_GUARD;
! if (id < 0 || id >= _servoCount)
! throw runtime_error("Invalid servo id");
! if (_servos[id].second != NULL)
! throw runtime_error("This servo id is already being used.");
! _servos[id].first = false;
! _servos[id].second = servo;
METHOD_UNGUARD;
}
***************
*** 105,119 ****
{
METHOD_GUARD;
! if ((uid.id() < 0 && uid.id() >= _servoCount)
! || uid.serial() != UID().serial())
! throw runtime_error("Invalid servo id");
!
!
! if (_servos[uid.id()].first)
! throw runtime_error("Can't unregister a system managed servo");
! _servos[uid.id()].first = true;
! _servos[uid.id()].second = NULL;
METHOD_UNGUARD;
}
--- 107,118 ----
{
METHOD_GUARD;
! if ((uid.id() < 0 && uid.id() >= _servoCount) || uid.serial() != UID().serial())
! throw runtime_error("Invalid servo id");
+ if (_servos[uid.id()].first)
+ throw runtime_error("Can't unregister a system managed servo");
! _servos[uid.id()].first = true;
! _servos[uid.id()].second = NULL;
METHOD_UNGUARD;
}
***************
*** 122,133 ****
{
METHOD_GUARD;
! _servoCount = num;
! _servos = new pair < bool, CServo *>[_servoCount];
! for (int t = 0; t < _servoCount; t++) {
! _servos[t].first = true;
! _servos[t].second = NULL;
! }
METHOD_UNGUARD;
}
--- 121,134 ----
{
METHOD_GUARD;
! _servoCount = num;
! _servos = new pair < bool, CServo *>[_servoCount];
! for (int t = 0; t < _servoCount; t++)
! {
! _servos[t].first = true;
! _servos[t].second = NULL;
! }
!
METHOD_UNGUARD;
}
***************
*** 208,225 ****
{
METHOD_GUARD;
! if (_servoCount) {
! float p1 = 0, p2 = 0, p3 = 0, p4 = 0;
! if (_servoCount >= 1 && _servos[0].second != NULL)
! p1 = _servos[0].second->position();
! if (_servoCount >= 2 && _servos[1].second != NULL)
! p2 = _servos[1].second->position();
! if (_servoCount >= 3 && _servos[2].second != NULL)
! p3 = _servos[2].second->position();
! if (_servoCount >= 4 && _servos[3].second != NULL)
! p4 = _servos[3].second->position();
! error(phidgetQuadServo(device(), p1, p2, p3, p4));
! }
METHOD_UNGUARD;
}
--- 209,230 ----
{
METHOD_GUARD;
! if (_servoCount)
! {
! float p1 = 0, p2 = 0, p3 = 0, p4 = 0;
! if (_servoCount >= 1 && _servos[0].second != NULL)
! p1 = _servos[0].second->position();
! if (_servoCount >= 2 && _servos[1].second != NULL)
! p2 = _servos[1].second->position();
!
! if (_servoCount >= 3 && _servos[2].second != NULL)
! p3 = _servos[2].second->position();
!
! if (_servoCount >= 4 && _servos[3].second != NULL)
! p4 = _servos[3].second->position();
!
! error(phidgetQuadServo(device(), p1, p2, p3, p4));
! }
METHOD_UNGUARD;
}
|