boolean Controller::moveRight(int amount) { unsigned long time = stepTime * amount / 100; stop(); Log.Debug("Moving right for %d ms", time); if (!(left || right) && rightEdge) { right = true; endTime = millis() + time; //eventTime = millis(); return true; } failMsg(); return false; }
void SimulatorParameters::getParametersDirectoryPath(){ // read numeric parameters ifstream fid; fid.open("simulation-parameters/filenameParameters.dat"); if ( !fid.is_open() ){ throw Exception(__LINE__,__FILE__,"filenameParameters.dat could not be opened or it does not exist\n"); } setPositionToRead(fid,"path:"); fid >> parametersPath; // check if numeric.dat physical.dat slope_limiters.dat and solve.dat files are presented string checkForNumeric(parametersPath + "/numeric.dat"); string checkForPhysical(parametersPath + "physical.dat"); string checkForSlope_limiters(parametersPath + "/slope_limiters.dat"); string checkForSolve(parametersPath + "/solve.dat"); ifstream fid1, fid2, fid3, fid4; fid1.open(checkForNumeric.c_str()); fid2.open(checkForPhysical.c_str()); fid3.open(checkForSlope_limiters.c_str()); fid4.open(checkForSolve.c_str()); string msg1("could not be opened or it does not exist\n"); char msg[256]; if ( !fid1.is_open() ) sprintf(msg,"numeric.dat %s",msg1.c_str()); if ( !fid2.is_open() ) sprintf(msg,"physical.dat %s",msg1.c_str()); if ( !fid3.is_open() ) sprintf(msg,"slope-limiters.dat %s",msg1.c_str()); if ( !fid4.is_open() ) sprintf(msg,"solve.dat %s",msg1.c_str()); string failMsg(msg); if (!failMsg.length()){ throw Exception(__LINE__,__FILE__,msg); } else{ fid1.close(); fid2.close(); fid3.close(); fid4.close(); } }
void Membership::listeningThread() { //char buffer[BUFFER_MAX]; struct Message msg; std::string sender; srand (time(NULL)); logFile<< std::endl <<"listeningThread: thread begins"<<std::endl; while (!killListeningThread) { if (members.empty()) { //In case the node decided to leave continue; } int byte_count = receiveUDP(sockfd, (char*)&msg, sizeof(msg), sender); logFile << "listeningThread: Receive message from: " << sender.c_str() << " "; logFile << "type: " << msg.type << "ttl: " << (int)msg.TTL << std::endl; if (byte_count != sizeof(msg)) { logFile << "ERROR listeningThread: size receiving incorrect: Message dropped" << std::endl; continue; } switch (msg.type) { case MSG_PING: pingMsg(msg, sender); break; case MSG_ACK: ackMsg(msg, sender); break; case MSG_PIGGY: piggyMsg(msg, sender); break; case MSG_PIGGY_PING: piggyPingMsg(msg, sender); break; case MSG_PIGGY_ACK: piggyAckMsg(msg, sender); break; case MSG_FAIL: failMsg(msg, sender); break; case MSG_JOIN: joinMsg(msg, sender); break; case MSG_LEAVE: leaveMsg(msg, sender); break; case MSG_ELECTION: electionMsg(msg, sender); break; case MSG_BULLY: bullyMsg(msg, sender); break; case MSG_NEWLEADER: newLeaderMsg(msg, sender); break; default: logFile<<"ERROR: listeningThread: received msg does not belong to a type"<<std::endl; } } }