亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? idarturretdevice.cc

?? 一個機器人平臺
?? CC
字號:
/******************************************************************************* File: irdevice.cc* Author: Richard Vaughan* Date: 22 October 2001* Desc: Presents a single interface to multiple IDAR Devices** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA** CVS info:* $Source: /cvsroot/playerstage/code/stage/src/models/Attic/idarturretdevice.cc,v $* $Author: rtv $* $Revision: 1.4 $******************************************************************************/#include <math.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>#include "world.hh"#include "idarturretdevice.hh"#define DEBUG//#undef DEBUG// constructor CIdarTurretDevice::CIdarTurretDevice(LibraryItem* libit,CWorld *world, CEntity *parent )  : CPlayerEntity(libit,world, parent ){  m_player.code = PLAYER_IDARTURRET_CODE; // from player's messages.h  // we're invisible   laser_return = LaserTransparent;  sonar_return = false;  obstacle_return = false;  idar_return = IDARTransparent;  // set the Player IO sizes correctly for this type of Entity  m_data_len    = 0;  m_command_len = 0;  m_config_len  = 1;  m_reply_len  = 1;    size_x = 0.08; // this is the actual physical size of the HRL device  size_y = 0.08; // but can be changed in the world file to suit  // Set the default shape  shape = ShapeCircle;  m_interval = 0.001; // updates frequently,  // but only has work to do when it receives a command  // so it's not a CPU hog unless we send it lots of messages     double angle_per_idar = M_PI * 2 / PLAYER_IDARTURRET_IDAR_COUNT;  double radius = size_x / 2.0;  // create our child devices  // we don't call CEntity::Load() for our children - we'll configure them here  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )    {      idars[i] = new CIdarDevice( libit, world, this ); // create            // set the player      idars[i]->m_player.index = i;      double angle = angle_per_idar * i;      idars[i]->SetPose( radius * cos(angle), radius * sin(angle), angle ); // place    }   //m_num_scanlines = IDAR_SCANLINES;   //m_angle_per_sensor = IDAR_FOV;  //m_angle_per_scanline = m_angle_per_sensor / m_num_scanlines;}void CIdarTurretDevice::Sync( void ) {  CPlayerEntity::Sync();  void *client;  player_idarturret_config_t cfg;  player_idarturret_reply_t reply;    // Get config  int res = GetConfig( &client, &cfg, sizeof(cfg));    switch( res )    {     case 0:      // nothing available - nothing to do      break;          case -1: // error      PRINT_ERR( "get config failed" );      break;          case sizeof(cfg): // the size we expect - we received a config request      // what does the client want us to do?      switch( cfg.instruction )	{	case IDAR_TRANSMIT:	  PutReply(client, PLAYER_MSGTYPE_RESP_ACK );	  	  //puts( "TX" );	  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )	    // if there is a message to send in this direction, send it	    if( cfg.tx[i].len > 0 )	      idars[i]->TransmitMessage( &(cfg.tx[i]) );	  	  break;	  	case IDAR_RECEIVE:	  //puts( "RX" );	  // gather and wipe the current messages from each idar	  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )	    idars[i]->CopyAndClearMessage( &reply.rx[i] );	  	  PutReply(client, PLAYER_MSGTYPE_RESP_ACK,NULL,&reply,sizeof(reply));	  break;	  	case IDAR_RECEIVE_NOFLUSH:	  //puts( "RX_NF" );	  // gather current message from each idar	  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )	    idars[i]->CopyMessage( &reply.rx[i] );	  	  PutReply(client, PLAYER_MSGTYPE_RESP_ACK,NULL,&reply,sizeof(reply));	  // send back the currently stored message	  	  break;	  // both at once for efficiency	case IDAR_TRANSMIT_RECEIVE:	  //puts( "TX" );	  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )	    // if there is a message to send in this direction, send it	    if( cfg.tx[i].len > 0 )	      idars[i]->TransmitMessage( &(cfg.tx[i]) );	  	  // puts( "RX" );	  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )	    idars[i]->CopyAndClearMessage( &reply.rx[i] );	  PutReply(client, PLAYER_MSGTYPE_RESP_ACK,NULL,&reply,sizeof(reply));	  break;	  	  	default:	  printf( "STAGE warning: unknown idarturret config instruction %d\n",		  cfg.instruction );	}      break;          default: // a bad value      PRINT_ERR1( "wierd: idarturret config returned %d ", res );      break;    }}void CIdarTurretDevice::Update( double sim_time ) {  //  puts( "UPDATE" );  CPlayerEntity::Update( sim_time ); // inherit some debug output    // UPDATE OUR RENDERING  double x, y, th;  GetGlobalPose( x,y,th );    ReMap( x, y, th );    // render our children in the world  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )    idars[i]->Update( sim_time );  // dump out if noone is subscribed  if(!Subscribed())      return;   m_last_update = sim_time; }#ifdef INCLUDE_RTK2///////////////////////////////////////////////////////////////////////////// Initialise the rtk guivoid CIdarTurretDevice::RtkStartup(){  CPlayerEntity::RtkStartup();  //this->data_fig = rtk_fig_create(m_world->canvas, this->fig, 49);   //rtk_fig_origin(this->data_fig, 0,0,0 );     // Set the color  //rtk_fig_color_rgb32(this->data_fig, RGB(200,200,200) );   for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )  {    idars[i]->RtkStartup();    // don't display the idar body in the turret (saves some time)    rtk_fig_clear( idars[i]->fig );  }  }///////////////////////////////////////////////////////////////////////////// Finalise the rtk guivoid CIdarTurretDevice::RtkShutdown(){  for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )  idars[i]->RtkShutdown();  //if(this->data_fig) rtk_fig_destroy(this->data_fig);    CPlayerEntity::RtkShutdown();} ///////////////////////////////////////////////////////////////////////////// Update the rtk guivoid CIdarTurretDevice::RtkUpdate(){  CPlayerEntity::RtkUpdate();     for( int i=0; i<PLAYER_IDARTURRET_IDAR_COUNT; i++ )    idars[i]->RtkUpdate();}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合色天天鬼久久鬼色| 亚洲高清视频中文字幕| 亚洲妇女屁股眼交7| 国产在线乱码一区二区三区| 一本到三区不卡视频| 欧美一区二区性放荡片| 自拍偷拍国产精品| 国产精品羞羞答答xxdd| 9191精品国产综合久久久久久| 中文字幕va一区二区三区| 日本在线观看不卡视频| 色婷婷国产精品综合在线观看| 国产日韩精品一区二区三区| 欧美bbbbb| 欧美久久一二三四区| 亚洲人一二三区| 成人激情免费视频| 久久先锋影音av鲁色资源网| 欧美aaaaaa午夜精品| 色噜噜夜夜夜综合网| 国产精品免费av| 国产电影一区在线| 久久久久国色av免费看影院| 国产综合久久久久影院| 欧美一区二区福利视频| 视频一区在线播放| 欧美人牲a欧美精品| 亚洲一区在线观看免费| 一本久道久久综合中文字幕 | 五月激情综合色| 色哟哟国产精品| 亚洲一区中文在线| 欧美性做爰猛烈叫床潮| 午夜一区二区三区视频| 欧美日韩二区三区| 日日夜夜一区二区| 日韩欧美一区在线观看| 裸体健美xxxx欧美裸体表演| 欧美一区二区在线播放| 麻豆成人av在线| 久久精品综合网| 9l国产精品久久久久麻豆| 中日韩免费视频中文字幕| 成人爱爱电影网址| 亚洲视频在线一区| 欧美手机在线视频| 水野朝阳av一区二区三区| 欧美精品色一区二区三区| 蜜乳av一区二区| 欧美极品美女视频| 99re热视频这里只精品| 亚洲h动漫在线| 欧美变态凌虐bdsm| 成人综合在线观看| 亚洲永久免费视频| 制服.丝袜.亚洲.另类.中文 | 精品国产一区二区三区忘忧草| 国产一区二区精品在线观看| 中文字幕在线一区免费| 色婷婷综合久久| 免费高清视频精品| 国产精品超碰97尤物18| 欧美日韩电影一区| 国产精品资源在线| 亚洲综合久久av| 欧美tickling网站挠脚心| 成人综合在线网站| 婷婷开心激情综合| 国产精品久久午夜夜伦鲁鲁| 欧美性极品少妇| 国产在线观看一区二区| 亚洲免费观看高清完整| 日韩欧美一级精品久久| 99久久婷婷国产综合精品电影| 视频一区欧美日韩| 国产精品污网站| 日韩一区二区精品葵司在线| 粉嫩一区二区三区在线看| 天天综合日日夜夜精品| 国产精品成人一区二区艾草| 欧美sm美女调教| 欧美三级蜜桃2在线观看| 国产91综合一区在线观看| 日本aⅴ精品一区二区三区| 国产亚洲欧美在线| 日韩一级高清毛片| 欧美伊人精品成人久久综合97| 国产在线观看免费一区| 日韩精品福利网| 一区二区在线看| 国产精品乱人伦一区二区| 日韩区在线观看| 欧美精品tushy高清| av网站免费线看精品| 国产精品一线二线三线精华| 日本亚洲电影天堂| 亚洲亚洲精品在线观看| 一区二区在线观看免费视频播放| 久久久精品一品道一区| 国产精品免费aⅴ片在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩国产美| 在线看日本不卡| 色综合天天综合色综合av | 国产原创一区二区| 激情图片小说一区| 久久精品国产一区二区三| 日本不卡的三区四区五区| 午夜精品一区在线观看| 亚洲国产美女搞黄色| 亚洲综合丁香婷婷六月香| 亚洲男人的天堂av| 亚洲欧洲一区二区三区| 中文字幕在线不卡| 中文字幕免费不卡在线| 国产精品久久久久精k8 | 青青草国产成人99久久| 视频一区免费在线观看| 日韩在线一区二区| 免费欧美高清视频| 国产一区二区三区在线观看免费视频 | 国产精品资源网| 成人短视频下载| 色香蕉久久蜜桃| 538prom精品视频线放| 91精品国产色综合久久| 日韩精品一区二区三区在线| 久久久久国产免费免费| 国产欧美日韩视频一区二区| 国产精品国产a| 亚洲综合免费观看高清完整版| 偷拍一区二区三区| 蜜桃视频在线观看一区| 国产裸体歌舞团一区二区| 成人免费看片app下载| 94色蜜桃网一区二区三区| 欧美三级资源在线| 精品国产人成亚洲区| 国产女人18毛片水真多成人如厕 | 欧美精品vⅰdeose4hd| 欧美一级理论片| 国产精品久久一卡二卡| 亚洲综合成人在线| 久久99国产精品久久| www.欧美日韩| 欧美日本一区二区三区| 久久午夜老司机| 亚洲影院免费观看| 蜜臀久久久99精品久久久久久| 国产成人自拍网| 欧美理论片在线| 国产精品乱码久久久久久| 亚洲一线二线三线视频| 国产成人综合在线| 欧美日韩精品欧美日韩精品一| 26uuu国产一区二区三区| 亚洲女子a中天字幕| 久久国产尿小便嘘嘘| 色菇凉天天综合网| 精品国产乱码久久久久久牛牛| 亚洲天堂精品在线观看| 麻豆成人免费电影| 欧美中文字幕亚洲一区二区va在线 | 一区二区三区免费| 极品少妇xxxx精品少妇| 日本高清不卡视频| 国产日韩成人精品| 日韩国产精品久久久久久亚洲| av亚洲精华国产精华精| 欧美精品一区二区三区高清aⅴ | 久久国内精品视频| 在线精品视频小说1| 精品久久一区二区三区| 亚洲成人av免费| 色综合夜色一区| 亚洲国产成人一区二区三区| 青娱乐精品视频| 91精品国产免费| 一区二区三区在线观看视频| 处破女av一区二区| 久久久精品蜜桃| 黑人精品欧美一区二区蜜桃| 欧美美女网站色| 亚洲在线视频免费观看| 99国产精品久| 国产精品久久久一本精品| 国产一区二区在线影院| 日韩美女天天操| 麻豆91精品视频| 精品成a人在线观看| 日韩制服丝袜av| 日韩一级视频免费观看在线| 亚洲v日本v欧美v久久精品| 欧美性极品少妇| 日韩精品1区2区3区| 欧美精选一区二区| 亚洲bdsm女犯bdsm网站| 欧美精品久久天天躁| 婷婷激情综合网| 日韩欧美国产综合一区|