⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agents.cpp~

📁 底层robocup3d源码。 suse10.0 kdevelop 开发.
💻 CPP~
字号:
#include "agents.h"namespace MSpace {Agents::Agents(){   MessageLength=0;   mReadFd = 3;   mWriteFd = 4;}void Agents::PutOutput(const char* out){     strcpy(mBuffer + sizeof(long), out);     unsigned int len = strlen(out);     unsigned int netlen = htonl(len);     memcpy(mBuffer, &netlen, sizeof(netlen));     write(mWriteFd, mBuffer, len + sizeof(netlen));}void Agents::PutOutputs(const std::string& str){         PutOutput(str.c_str());}bool Agents::SelectInput(){     fd_set readfds;     FD_ZERO(&readfds);     FD_SET(mReadFd, &readfds);     return select(mReadFd+1, &readfds, 0, 0,0) > 0;}bool Agents::GetInput(){     // read from commserver     memset(mBuffer, 0, sizeof(mBuffer));     if(!SelectInput()) return false;     unsigned int bytesRead = read(mReadFd, mBuffer, sizeof(mBuffer)); // read count     if(bytesRead < sizeof(unsigned int)) return false;     unsigned int msgLen = ntohl(*(unsigned int*)mBuffer);                            MessageLength=msgLen;     unsigned int msgRead = bytesRead - sizeof(unsigned int);     char* offset = mBuffer + bytesRead;     while(msgRead < msgLen){          if(!SelectInput()) return false;          msgRead += read(mReadFd, offset, sizeof(mBuffer) - msgRead);          offset += msgRead;     }     (*offset) = 0;     return true;}char* Agents::GetMsg(){     return mBuffer+ sizeof(long);}void Agents::Create(std::string TeamName,int Number){   std::stringstream ss;   ss<<"A(init (unum "<<Number<<") (teamname "<<TeamName<<"))";   PutOutputs(ss.str());}void Agents::Done(){   PutOutputs("D");}void Agents::Kick(Angel ang,float force){   std::stringstream ss;   ss << "A(kick "<<ang.angel<<" "<<force<<")";   PutOutputs(ss.str());}void  Agents::Notify(int time){   std::stringstream ss;   ss <<"R"<<time;   PutOutputs(ss.str());}void Agents::Drive(Vec v){   std::stringstream ss;   ss << "A(drive " <<v.Vx<<" "<<v.Vy<<" "<<v.Vz<<")";   PutOutputs(ss.str());}void Agents::Beam(Vec v){   std::stringstream ss;   ss << "A(beam " <<v.Vx<<" "<<v.Vy<<" "<<v.Vz<<")";   PutOutputs(ss.str());}void Agents::Catch(){	PutOutputs("A(catch)");}void Agents::TurnCamera(Angel pan,Angel tilt){	std::stringstream ss;	ss <<"A(pantilt "<<pan.angel<<" "<<tilt.angel<<")";	PutOutputs(ss.str());}void Agents::Say(std::string word){	std::stringstream ss;	ss <<"(say "<<word<<")";	PutOutputs(ss.str());}Agents::~Agents(){}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -