void DateEdit::catchTextChanged(const char *txt) { QDate *dat=new QDate; QString str_tmp(txt); if(dateValidator()->translateToDate(str_tmp,*dat) == QValidator::Acceptable) { if(lastValue==NULL) { lastValue=dat; emit dateChanged(dat); } else { if((*dat)==(*lastValue)) { delete dat; } else { delete lastValue; lastValue=dat; emit dateChanged(dat); }; }; } else { if(lastValue!=NULL) { emit dateChanged(NULL); delete lastValue; lastValue=NULL; }; delete dat; }; }
void CFootBotUN::Init(TConfigurationNode& t_node) { /* * Get sensor/actuator handles * * The passed string (ex. "footbot_wheels") corresponds to the XML tag of the device * whose handle we want to have. For a list of allowed values, type at the command * prompt: * * $ launch_argos -q actuators * * to have a list of all the possible actuators, or * * $ launch_argos -q sensors * * to have a list of all the possible sensors. * * NOTE: ARGoS creates and initializes actuators and sensors internally, on the basis of * the lists provided the XML file at the <controllers><footbot_diffusion><actuators> * and <controllers><footbot_diffusion><sensors> sections. If you forgot to * list a device in the XML and then you request it here, an error occurs. */ m_pcWheels = dynamic_cast<CCI_FootBotWheelsActuator*>(GetRobot().GetActuator("footbot_wheels")); m_pcLEDs = dynamic_cast<CCI_FootBotLedsActuator*>(GetRobot().GetActuator("footbot_leds")); m_pcProximity = dynamic_cast<CCI_FootBotProximitySensor*>(GetRobot().GetSensor("footbot_proximity")); //Min distance to the current position to the target point to determine it this is reached (meters) //GetNodeAttributeOrDefault(t_node, "targetMinPointDistance", m_targetMinPointDistance, m_targetMinPointDistance); std::string text; if (NodeExists(t_node, "targetMinPointDistance")) { GetNodeText(GetNode(t_node, "targetMinPointDistance"), text); sscanf(text.c_str(), "%f", &m_targetMinPointDistance); //m_targetMinPointDistance = fmin(MAX_RESOLUTION, m_targetMinPointDistance); } printf("Min distance to target point %f in robot %s\n", m_targetMinPointDistance, GetRobot().GetRobotId().c_str()); ////////////////////////////////////////////////////////////// // Initialize things required by the communications ////////////////////////////////////////////////////////////// m_pcWifiSensor = dynamic_cast<CCI_WiFiSensor*>(GetRobot().GetSensor("wifi")); m_pcWifiActuator = dynamic_cast<CCI_WiFiActuator*>(GetRobot().GetActuator("wifi")); str_Me = GetRobot().GetRobotId(); m_iSendOrNotSend = 0; // How many robots are there ? CSpace::TAnyEntityMap& tEntityMap = m_cSpace.GetEntitiesByType("wifi_equipped_entity"); numberOfRobots = tEntityMap.size(); printf("%s: There are %d robots [RMAGAN]\n", str_Me.c_str(), numberOfRobots); // Am I a generator? amIaGenerator = false; skipFirstSend = true; int numGenerators = m_numberOfGenerators * numberOfRobots; int myID = atoi(str_Me.c_str() + 3); if (myID < numGenerators) amIaGenerator = true; if (amIaGenerator) printf("%s: There are %d generators, I am on of them\n", str_Me.c_str(), numGenerators); else printf("%s: There are %d generators, but not me :-(\n", str_Me.c_str(), numGenerators); if (amIaGenerator) { UInt32 id = CSimulator::GetInstance().GetRNG()->Uniform(CRange<UInt32>(numGenerators, numberOfRobots)); //UInt32 id = myID + numGenerators; std::ostringstream str_tmp(ostringstream::out); str_tmp << "fb_" << id; str_Dest = str_tmp.str(); printf(" (dest=%s).\n", str_Dest.c_str()); } ////////////////////////////////////////////////////////////// // end of communications things here ////////////////////////////////////////////////////////////// /** LCM engine */ // LCM Thread lcmThreadCommand.setLCMEngine("udpm://239.255.76.67:7667?ttl=1", "TARGET"); lcmThreadCommand.startInternalThread(); lcmThread.setLCMEngine("udpm://239.255.76.67:7667?ttl=1", "TRACK"); lcmThread.startInternalThread(); /** NAVIGATION AND AVOIDING COLLISION */ /* Additional sensors */ encoderSensor = dynamic_cast<CCI_FootBotEncoderSensor*>(GetRobot().GetSensor("footbot_encoder")); /* Init navigation methods */ initOdometry(); initLocalNavigation(t_node); }
void DateEdit::setFormat(DateValidator::DateFormat f) { QString str_tmp(text()); setText(dateValidator()->reFormat(str_tmp,f)); }