【发布时间】:2016-12-07 16:20:34
【问题描述】:
我的目标:我需要计算我的系统的新控制输入,并在精确的采样时刻更新我正在编程的机器人的位置。
问题背景:我有一个功能正常的服务器程序,可以为多个客户端提供服务,并且可以进行简单的机器人操作。为此,我有两个线程,一个用于控制机器人,一个用于服务多个客户端。现在我需要在精确的采样时刻实现更复杂的群算法。我已经成功编写了一个使用 SIGVTALRM 每 25 毫秒中断一次的辅助程序(使用 setitimer() )。
现在我需要关于如何最好地进行设计的建议。我主要担心的是如何在信号处理程序中执行算法,因为由于多线程和信号安全功能,它必须满足许多约束。
对不起,解释太长了,但我觉得一个好的解释会产生一个好的答案。
感谢您的宝贵时间!!
【问题讨论】:
-
时间需要有多精确? +- 1 毫秒? +- 10 毫秒?
-
+- 0.1ms 就足够了。
-
你看过
timer_create和timer_settime吗? -
我已经简要地阅读了它们,但没有详细研究它们。与 setitimer() 方法相比,它们有什么特别的优势吗?谢谢
标签: c linux multithreading pthreads signals