simulator: #435 fix working LED layer if there is no camera in the world

This commit is contained in:
Oleg Kalachev
2022-03-15 14:45:29 +03:00
parent 293448028a
commit 9c3a97f945

View File

@@ -73,16 +73,10 @@ public:
ROS_INFO_NAMED(("LedController_" + robotNamespace).c_str(), "LedController has started (as %s)", role == Role::Client ? "client" : "server");
nh.reset(new ros::NodeHandle(robotNamespace));
if (role == Role::Server)
{
setLedsSrv = nh->advertiseService("led/set_leds", &LedController::setLeds, this);
statePublisher = nh->advertise<led_msgs::LEDStateArray>("led/state", 1, true);
}
else
{
// LED state should be published to the "led/state" topic, so we grab our data there
stateSubscriber = nh->subscribe<led_msgs::LEDStateArray>("led/state", 1, &LedController::handleLedsMsg, this);
}
setLedsSrv = nh->advertiseService("led/set_leds", &LedController::setLeds, this); // the newer service server would overwrite the previous one
statePublisher = nh->advertise<led_msgs::LEDStateArray>("led/state", 1, true);
stateSubscriber = nh->subscribe<led_msgs::LEDStateArray>("led/state", 1, &LedController::handleLedsMsg, this);
};
~LedController()
@@ -101,8 +95,7 @@ public:
ROS_DEBUG_NAMED(("LedController_" + robotNamespace).c_str(), "Registering LED visual plugin to %s (LED id=%d)", (role == Role::Client) ? "client" : "server", ledIdx);
registeredLeds[ledIdx] = plugin;
ledState.leds[ledIdx].index = ledIdx;
if (role == Role::Server)
statePublisher.publish(ledState);
statePublisher.publish(ledState);
}
void unregisterPlugin(sim_led::LedVisualPlugin* plugin)