📄 agents.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 + -