Example #1
0
QString FlowControl::getSummary(QString sep) const {
	QString out;
	QTextStream ts(&out);
	ts << "sendRate: "<<sendRate()<<sep;
	ts << "mode: "<<(Good==mode?"GOOD":"BAD")<<sep;
	ts << "penaltyTime: "<<penalty_time<<sep;
	ts << "goodTime: "<<good_conditions_time<<sep;
	ts << "penaltyRed: "<<penalty_reduction_accumulator<<sep;
	return out;
}
void SensorCommunicator::publish()
{
    RAIILock lock(&sensorMutex);

    minotaur_common::UltrasonicData msg;
    ros::Rate sendRate(50);
    for(int i = 0; i < sensorController.count(); ++i) {
        try {
            msg.sensorID = i;
            msg.distance = sensorController.getDistance(i);
            sensorDataPub.publish(msg);
        } catch (const nxt::TimeoutException &e) {
            ROS_WARN("SensorCommunicator: %s.", e.what());
        } catch (const std::exception &e) {
            ROS_ERROR("SensorCommunicator: %s.", e.what());
        } catch (...) {
            ROS_ERROR("SensorCommunicator: Caught unknown error (publish()).");
        }
        sendRate.sleep();
    }
}