我需要在特定持续时间/特定时间步之后执行特定代码。
例如,在 ROS 中,我们实现了 Service API,客户端可以在需要时调用服务请求。
因此,当客户端调用服务 API 时,应立即执行第一个代码块,然后在一定的持续时间/时间步之后执行第二个代码块(如 LED 闪烁)并重复循环,直到客户端发送停止请求。
现在我的问题是,我怎样才能实现这个循环?
uint m_tickCount{};
uint duration {500}; // timeStep /** tick */
void LedFlash(const Animation& animation, std::unordered_map<int, int> ledsHandle)
{
//first block
std::for_each(leds.begin(), leds.end(), [&](int value) {
simSetShapeColor(ledsHandle[value], nullptr, sim_colorcomponent_ambient_diffuse,
colorValue.data());
});
//second block
std::for_each(leds.begin(), leds.end(), [&](int value) {
simSetShapeColor(ledsHandle[value], nullptr, sim_colorcomponent_ambient_diffuse,
colorValue.data());
});
}
例如,一旦客户端调用服务,第一个代码块应该被执行,并且在指定的时间步之后应该执行第二个代码块,然后在指定的时间步之后再次执行第一个代码块并循环重复。
有什么提示或建议吗?
提前致谢