Update of /cvsroot/playerstage/code/player/server/drivers/laser
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4151/server/drivers/laser

Modified Files:
        sicks3000.cc 
Log Message:
made acinclude driver list alphabetical again
added tcpstream driver
bug fixes for s3000 and nav200 drivers
made point features more visible in playerv vector map display


Index: sicks3000.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/laser/sicks3000.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** sicks3000.cc        6 Dec 2007 19:12:39 -0000       1.8
--- sicks3000.cc        18 Dec 2007 05:05:08 -0000      1.9
***************
*** 148,151 ****
--- 148,152 ----
      int64_t GetTime();
      
+     void SetScannerParams(int data_count);
  
    protected:
***************
*** 166,169 ****
--- 167,172 ----
      int scan_min_segment, scan_max_segment;
      
+     bool recognisedScanner;
+     
      // Opaque Driver info
      Device *opaque;
***************
*** 217,220 ****
--- 220,226 ----
    assert(rx_buffer);
    
+   recognisedScanner = false;
+   
+   // Assume s300
    memset(&data_packet,0,sizeof(data_packet));
    data_packet.min_angle = DTOR(-135);
***************
*** 255,258 ****
--- 261,283 ----
  }
  
+ 
////////////////////////////////////////////////////////////////////////////////
+ // Set up scanner parameters based on number of results per scan
+ void SickS3000::SetScannerParams(int data_count)
+ {
+       if (data_count == 761) // sicks3000
+       {
+               data_packet.min_angle = DTOR(-95);
+               data_packet.max_angle = DTOR(95);
+               data_packet.resolution = DTOR(0.25);
+               data_packet.max_range = 49;
+               
+               config_packet.min_angle = DTOR(-95);
+               config_packet.max_angle = DTOR(95);
+               config_packet.resolution = DTOR(0.25);
+               config_packet.max_range = 49;
+               
+               recognisedScanner = true;
+       }
+ }
  
  
////////////////////////////////////////////////////////////////////////////////
***************
*** 314,317 ****
--- 339,343 ----
    {
      player_opaque_data_t * recv = reinterpret_cast<player_opaque_data_t * > 
(data);
+     unsigned int messageOffset = rx_count;
      rx_count += recv->data_count;
      if (rx_count > rx_buffer_size)
***************
*** 322,326 ****
      else
      {
!       memmove(&rx_buffer[rx_count], recv->data, recv->data_count);
        ProcessLaserData();
      }
--- 348,352 ----
      else
      {
!       memcpy(&rx_buffer[messageOffset], recv->data, recv->data_count);
        ProcessLaserData();
      }
***************
*** 448,451 ****
--- 474,479 ----
          {
            int data_count = (size - 22) / 2;
+           if (!recognisedScanner)
+                 SetScannerParams(data_count); // Set up parameters based on 
number of results.
            data_packet.ranges_count = data_count;
            data_packet.ranges = new float [data_count];


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to