【发布时间】:2019-08-21 16:12:44
【问题描述】:
我需要在特定持续时间/特定时间步之后执行特定代码。
举个例子, 在ROS中,我们实现了Service API,客户端可以在需要的时候调用服务请求。
因此,当客户端调用服务 API 时,应立即执行第一个代码块,然后在一定的持续时间/timeStep 之后执行第二个代码块(如 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());
});
}
例如,一旦客户端调用服务第一个代码块应该被执行,并且在指定的时间步之后应该执行第二个代码块,然后在指定的时间步之后再次执行第一个代码块并循环重复。
有什么提示或建议吗?
提前致谢
【问题讨论】:
-
变量
sword_charge似乎不存在。 -
当 Sword_charge >= 0.90 时,您希望变量 Sword_check 为 =1 吗?
-
打错了,你写了
word_check,没有定义sword_charge,这与if无关 -
Kelsey,是的,我需要 Sword_check 为 1,而且我需要知道我的代码有什么问题。我刚刚看到一个文档并尝试在 python 中运行相同的代码,但它现在显示错误。
-
什么是
sword_charge你在哪里定义的?