Revision: 6901
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6901&view=rev
Author:   jeremy_asher
Date:     2008-07-22 17:01:34 +0000 (Tue, 22 Jul 2008)

Log Message:
-----------
libstageplugin: fixed remaining bug in p_laser, updated laser test

Modified Paths:
--------------
    code/stage/trunk/libstageplugin/p_laser.cc
    code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
    code/stage/trunk/libstageplugin/test/lsp_test_laser.hh

Modified: code/stage/trunk/libstageplugin/p_laser.cc
===================================================================
--- code/stage/trunk/libstageplugin/p_laser.cc  2008-07-22 16:14:59 UTC (rev 
6900)
+++ code/stage/trunk/libstageplugin/p_laser.cc  2008-07-22 17:01:34 UTC (rev 
6901)
@@ -115,9 +115,8 @@
       stg_laser_cfg_t cfg = mod->GetConfig();
      
          cfg.resolution = 1.0 / plc->resolution;
-         cfg.range_bounds.max = plc->max_range;
          cfg.fov = plc->max_angle - plc->min_angle;
-         cfg.interval = 1E6 / plc->scanning_frequency;
+         cfg.interval = 1.0E6 / plc->scanning_frequency;
 
       PRINT_DEBUG4( "setting laser config: fov %.2f max_range %.2f " /
                                    "resolution %.2f interval %.2f",
@@ -160,7 +159,7 @@
       plc.max_range = cfg.range_bounds.max;
          plc.range_res = 1.0; // todo
       plc.intensity = 1; // todo
-         plc.scanning_frequency = 1E6 / cfg.interval;
+         plc.scanning_frequency = 1.0E6 / cfg.interval;
 
       this->driver->Publish(this->addr, resp_queue,
                            PLAYER_MSGTYPE_RESP_ACK, 

Modified: code/stage/trunk/libstageplugin/test/lsp_test_laser.cc
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_laser.cc      2008-07-22 
16:14:59 UTC (rev 6900)
+++ code/stage/trunk/libstageplugin/test/lsp_test_laser.cc      2008-07-22 
17:01:34 UTC (rev 6901)
@@ -3,6 +3,7 @@
 using namespace lspTest;
 
 const double Laser::Delta = 0.01;
+const int Laser::Samples = 361;
 
 void Laser::setUp() {
        connect();
@@ -20,10 +21,10 @@
 void Laser::testConfig() {
        double min = -M_PI/2;
        double max = +M_PI/2;
-       double res = M_PI/361; // sick laser default
-       double range_res = 1;  // not being used by stage
+       double res = M_PI/Samples; // sick laser default
+       double range_res = 1;  // not being used by stage 
        unsigned char intensity = 1; // not being used by stage
-       double freq = 1.0/1E4; // stage default
+       double freq = 10; // 10Hz / 100ms (stage default)
        
        CPPUNIT_ASSERT( playerc_laser_set_config( laserProxy, min, max, res, 
range_res, intensity, freq ) == 0 );
        
@@ -53,12 +54,20 @@
 void Laser::testData() {
        playerc_client_read( client );  
        
-       printf("\nlaser: [%14.3f ] [%d]\n ", laserProxy->info.datatime, 
laserProxy->scan_count);
+       CPPUNIT_ASSERT( laserProxy->info.datatime > 0 );
+       CPPUNIT_ASSERT( laserProxy->scan_count == Samples );
+       CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "min scan angle", -M_PI/2, 
laserProxy->scan[0][1], Delta );
+       CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE( "max scan angle", M_PI/2, 
laserProxy->scan[Samples-1][1], Delta );
        for ( int i = 0; i < laserProxy->scan_count; i++ ) {
-        printf("[%6.3f, %6.3f ] \n", laserProxy->scan[i][0], 
laserProxy->scan[i][1]);
+               double distance = laserProxy->scan[i][0];
+               CPPUNIT_ASSERT( distance <= laserProxy->max_range );
+               CPPUNIT_ASSERT( distance >= laserProxy->min_right );
+//        printf("[%6.3f, %6.3f ] \n", laserProxy->scan[i][0], 
laserProxy->scan[i][1]);
        }
        
-       // check first and last sample's angle
-       // check number of samples
+       laserProxy->info.fresh = 0;
+       playerc_client_read( client );
+       CPPUNIT_ASSERT( laserProxy->info.fresh == 1 );
+       
        // check range of each is within max and min
 }
\ No newline at end of file

Modified: code/stage/trunk/libstageplugin/test/lsp_test_laser.hh
===================================================================
--- code/stage/trunk/libstageplugin/test/lsp_test_laser.hh      2008-07-22 
16:14:59 UTC (rev 6900)
+++ code/stage/trunk/libstageplugin/test/lsp_test_laser.hh      2008-07-22 
17:01:34 UTC (rev 6901)
@@ -23,6 +23,7 @@
                void testData();
                
                static const double Delta;
+               static const int Samples;
        public:
                void setUp();
                void tearDown();


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to