Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

WheelTest_Whorl1.cpp

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file WheelTest_Whorl1.cpp
00003 *  \brief Runs momentum wheels on Whorl-I.
00004 *  \author $Author: jayhawk_hokie $
00005 *  \version $Revision: 1.2 $
00006 *  \date    $Date: 2007/07/24 09:43:46 $
00007 *//////////////////////////////////////////////////////////////////////////////////////////////////
00008 /*!
00009 */
00010 //////////////////////////////////////////////////////////////////////////////////////////////////
00011 
00012 #include <Actuators/MomentumWheel.h>
00013 #include <fstream>
00014 #include <utils/Time.h>
00015 #include <matrix/Matrix.h>
00016 
00017 int main()
00018 {
00019         //Sample Program for new wheel initialization and
00020         // velocity reading procedures.
00021         //ifstream infile("OpenLoopInputs.txt", ios::in);
00022         //ofstream outfile("QuerySpeed.txt", ios::out);
00023         
00024         // Create 3 momentum wheels
00025         MomentumWheel WheelX;
00026         MomentumWheel WheelY;
00027         MomentumWheel WheelZ;
00028         
00029         //Set the communications port for each wheel
00030         // can be done manually or in a config file
00031         WheelX.SetPort("/dev/ttyUSB4");
00032         WheelY.SetPort("/dev/ttyUSB5");
00033         WheelZ.SetPort("/dev/ttyUSB6");
00034         
00035         // Each wheel needs to be initialized individually
00036         WheelX.Initialize();
00037         WheelY.Initialize();
00038         WheelZ.Initialize();
00039         
00040 
00041         // Run wheel.SetWheelSpeed(s) to set wheel to a speed of s (in rad/s)
00042         //usleep(250000);
00043 
00044         cout << "WHEEL Z... " << endl;
00045 
00046         WheelZ.SetWheelSpeed( 30 );
00047         sleep(1);
00048         
00049         cout << "WHEEL X... " << endl;
00050         
00051         WheelX.SetWheelSpeed( 10 );
00052 
00053         sleep(1);
00054 
00055         cout << "WHEEL Y... " << endl;
00056         
00057         WheelY.SetWheelSpeed( 10 );
00058 
00059 
00060 for( int i=1; i<10; i++ )
00061 {
00062 
00063         double volts = WheelX.GetVolts( );
00064         cout << "Volts (x): " << volts << endl;
00065         
00066         volts = WheelY.GetVolts( );
00067         cout << "Volts (y): " << volts << endl;
00068         
00069         volts = WheelZ.GetVolts( );
00070         cout << "Volts (z): " << volts << endl;
00071 
00072         sleep(1);
00073         
00074         double amps = WheelX.GetAmps( );
00075         cout << "Amps (x): " << amps << endl;
00076         
00077         amps = WheelY.GetAmps( );
00078         cout << "Amps (y): " << amps << endl;
00079 
00080         amps = WheelZ.GetAmps( );
00081         cout << "Amps (z): " << amps << endl;
00082         
00083         sleep(1);
00084         
00085         double wheelSpeed; 
00086         double measureTime;
00087 
00088         WheelX.GetWheelSpeed( wheelSpeed, measureTime );
00089         cout << "X Wheel Speed (rad/s): " << wheelSpeed << "   Measurement Time (sec): " << measureTime << endl;        
00090 
00091         WheelY.GetWheelSpeed( wheelSpeed, measureTime );
00092         cout << "Y Wheel Speed (rad/s): " << wheelSpeed << "   Measurement Time (sec): " << measureTime << endl;        
00093         
00094         WheelZ.GetWheelSpeed( wheelSpeed, measureTime );
00095         cout << "Z Wheel Speed (rad/s): " << wheelSpeed << "   Measurement Time (sec): " << measureTime << endl;        
00096 
00097         cout << "-- END OF LOOP ---- " << endl;
00098         sleep(2);
00099 
00100 }
00101 
00102 //      sleep(15);
00103 /*      
00104         cout << "WHEEL Y... " << endl;
00105         
00106         WheelY.SetWheelSpeed( 10 );
00107         sleep(10);
00108 */
00109         WheelX.Stop();
00110 //      WheelY.Stop();
00111 
00112         sleep(2);
00113 
00114 //      WheelZ.Stop();
00115         WheelX.Deinitialize();
00116 //      WheelY.Deinitialize();
00117 //      WheelZ.Deinitialize();
00118 
00119         cout << "End of Program..." << endl;
00120 
00121 /*      
00122         int brett = 0;
00123         double stampx;
00124         double stampy;
00125         double stampz;
00126         double speedx;
00127         double speedy;
00128         double speedz;
00129         double epoch = Now();
00130 
00131         cout << "# X-speed  X-time   Y-speed    Y-time   Z-speed  Z-time\n";
00132 
00133         while(brett < 10)       
00134         {
00135                 usleep(1000000);
00136                 tick();
00137 
00138                 // To retrieve the most current speed of the wheel run wheel.GetWheelSpeed(speed, time)
00139                 // where speed is set to the most recent wheel speed, and time is set to the timestamp
00140                 // on that measurement.
00141                 WheelX.GetWheelSpeed(speedx,stampx);
00142                 WheelY.GetWheelSpeed(speedy,stampy);
00143                 WheelZ.GetWheelSpeed(speedz,stampz);
00144                 cout << brett << " " <<  speedx  << " " << stampx-epoch  << " ";
00145                 cout  << speedy  << " " << stampy-epoch  << " " << speedz << " " << stampz-epoch << " \n";
00146                 
00147                 brett++;
00148         }
00149 
00150 
00151 
00152         WheelX.Stop();
00153         WheelY.Stop();
00154         WheelZ.Stop();
00155         WheelX.Deinitialize();
00156         WheelY.Deinitialize();
00157         WheelZ.Deinitialize();
00158 */      
00159 
00160 return 0;
00161 }
00162 
00163 
00164 // Do not change the comments below - they will be added automatically by CVS
00165 /*****************************************************************************
00166 *       $Log: WheelTest_Whorl1.cpp,v $
00167 *       Revision 1.2  2007/07/24 09:43:46  jayhawk_hokie
00168 *       Updated.
00169 *
00170 *       Revision 1.1  2005/09/18 17:14:30  jayhawk_hokie
00171 *       Initial Addition of Test programs
00172 *
00173 *       Revision 1.1  2005/06/17 18:07:28  jayhawk_hokie
00174 *       Initial submission.
00175 *
00176 *
00177 ******************************************************************************/
00178 
00179 

Generated on Wed Sep 5 12:54:27 2007 for DSACSS Operational Code by  doxygen 1.3.9.1