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