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

Modified Files:
      Tag: release-2-0-patches
        dummy.cc readlog.cc writelog.cc 
Log Message:
merged many changes from HEAD

Index: writelog.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/shell/writelog.cc,v
retrieving revision 1.71
retrieving revision 1.71.2.1
diff -C2 -d -r1.71 -r1.71.2.1
*** writelog.cc 12 Apr 2006 13:33:31 -0000      1.71
--- writelog.cc 22 Sep 2006 23:58:35 -0000      1.71.2.1
***************
*** 73,76 ****
--- 73,77 ----
  - @ref interface_sonar
  - @ref interface_position2d
+ - @ref interface_ptz
  - @ref interface_wifi
  - @ref interface_wsn
***************
*** 197,200 ****
--- 198,204 ----
    private: int WritePosition(player_msghdr_t* hdr, void *data);
  
+   // Write PTZ data to file
+   private: int WritePTZ(player_msghdr_t* hdr, void *data);
+ 
    // Write sonar data to file
    private: int WriteSonar(player_msghdr_t* hdr, void *data);
***************
*** 692,695 ****
--- 696,702 ----
        retval = this->WritePosition(hdr, data);
        break;
+     case PLAYER_PTZ_CODE:
+       retval = this->WritePTZ(hdr, data);
+       break;
      case PLAYER_SONAR_CODE:
        retval = this->WriteSonar(hdr, data);
***************
*** 934,937 ****
--- 941,986 ----
  
  /** @ingroup tutorial_datalog
+  @defgroup player_driver_writelog_ptz ptz format
+  
+ @brief PTZ log format
+ The format for each @ref interface_wsn message is:
+   - pan       (float): The pan angle/value
+   - tilt      (float): The tilt angle/value
+   - zoom      (float): The zoom factor
+   - panspeed  (float): The current panning speed
+   - tiltspeed (float): The current tilting speed
+  */
+ int
+ WriteLog::WritePTZ (player_msghdr_t* hdr, void *data)
+ {
+   // Check the type
+   switch(hdr->type)
+   {
+     case PLAYER_MSGTYPE_DATA:
+       // Check the subtype
+       switch(hdr->subtype)
+       {
+         case PLAYER_PTZ_DATA_STATE:
+           {
+             player_ptz_data_t* pdata =
+                     (player_ptz_data_t*)data;
+             fprintf(this->file,
+                     "%+07.3f %+07.3f %+04.3f %+07.3f %+07.3f",
+                     pdata->pan,
+                     pdata->tilt,
+                     pdata->zoom,
+                     pdata->panspeed,
+                     pdata->tiltspeed);
+             return(0);
+           }
+         default:
+           return(-1);
+       }
+     default:
+       return(-1);
+   }
+ }
+ 
+ /** @ingroup tutorial_datalog
   @defgroup player_driver_writelog_sonar sonar format
  
***************
*** 1115,1119 ****
  WriteLog::WriteWSN(player_msghdr_t* hdr, void *data)
  {
!     unsigned int i;
      player_wsn_data_t* wdata;
  
--- 1164,1168 ----
  WriteLog::WriteWSN(player_msghdr_t* hdr, void *data)
  {
!     //unsigned int i;
      player_wsn_data_t* wdata;
  

Index: readlog.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/shell/readlog.cc,v
retrieving revision 1.40
retrieving revision 1.40.2.1
diff -C2 -d -r1.40 -r1.40.2.1
*** readlog.cc  12 Apr 2006 13:33:31 -0000      1.40
--- readlog.cc  22 Sep 2006 23:58:35 -0000      1.40.2.1
***************
*** 59,62 ****
--- 59,63 ----
  - @ref interface_laser
  - @ref interface_position2d
+ - @ref interface_ptz
  - @ref interface_sonar
  - @ref interface_wifi
***************
*** 269,272 ****
--- 270,279 ----
                          int linenum,
                          int token_count, char **tokens, double time);
+ 
+   // Parse PTZ data
+   private: int ParsePTZ (player_devaddr_t id,
+                          unsigned short type, unsigned short subtype,
+                          int linenum,
+                          int token_count, char **tokens, double time);
  #if 0
  
***************
*** 1095,1098 ****
--- 1102,1108 ----
        return this->ParseWSN(id, type, subtype, linenum,
                              token_count, tokens, time);
+   else if (id.interf == PLAYER_PTZ_CODE)
+       return this->ParsePTZ (id, type, subtype, linenum,
+                             token_count, tokens, time);
  
  #if 0
***************
*** 1783,1786 ****
--- 1793,1838 ----
  }
  
+ ////////////////////////////////////////////////////////////////////////////
+ // Parse PTZ data
+ int ReadLog::ParsePTZ (player_devaddr_t id, 
+                       unsigned short type, unsigned short subtype,
+                       int linenum,
+                       int token_count, char **tokens, double time)
+ {
+     switch(type)
+     {
+         case PLAYER_MSGTYPE_DATA:
+             switch(subtype)
+             {
+                 case PLAYER_PTZ_DATA_STATE:
+                 {
+                     if (token_count < 12)
+                     {
+                         PLAYER_ERROR2("invalid line at %s:%d", 
this->filename, linenum);
+                         return -1;
+                     }
+                   player_ptz_data_t data;
+                   
+                   data.pan  = atof (tokens[7]);
+                   data.tilt = atof (tokens[8]);
+                   data.zoom = atof (tokens[9]);
+                   data.panspeed  = atof (tokens[10]);
+                   data.tiltspeed = atof (tokens[11]);
+                   
+                     this->Publish (id, NULL, type, subtype,
+                                   (void*)&data, sizeof(data), &time);
+                     return (0);
+                 }
+               
+                 default:
+                     PLAYER_ERROR1 ("unknown PTZ data subtype %d\n", subtype);
+                     return (-1);
+             }
+         default:
+             PLAYER_ERROR1 ("unknown PTZ message type %d\n", type);
+             return (-1);
+     }
+ }
+ 
  #if 0
  ////////////////////////////////////////////////////////////////////////////

Index: dummy.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/shell/dummy.cc,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -C2 -d -r1.16 -r1.16.2.1
*** dummy.cc    12 Apr 2006 13:33:31 -0000      1.16
--- dummy.cc    22 Sep 2006 23:58:35 -0000      1.16.2.1
***************
*** 41,45 ****
  
  - This driver can support any interface (currently supported are: laser, 
camera,
!   position2d, and wsn).
  
  @par Requires
--- 41,45 ----
  
  - This driver can support any interface (currently supported are: laser, 
camera,
!   position2d, ptz, and wsn).
  
  @par Requires
***************
*** 278,281 ****
--- 278,294 ----
                  break;
              }
+             case PLAYER_PTZ_CODE:
+             {
+                 player_ptz_data_t data;
+                 data.pan  = 1.0;
+                 data.tilt = 1.0;
+                 data.zoom = 1.0;
+                 data.panspeed  = 1.0;
+                 data.tiltspeed = 1.0;
+                 Publish (device_addr, NULL, PLAYER_MSGTYPE_DATA, 
+                          PLAYER_PTZ_DATA_STATE, (void*)&data, 
+                          sizeof (data), NULL);
+                 break;
+             }
              case PLAYER_WSN_CODE:
              {


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to