我试图实现的是以下几点:
在接收模式下运行无线电并检查传入的包。每秒 Id 像一个定时器中断来执行并将无线电切换到发送模式以发送一个包,然后返回到接收模式。
现在我有以下代码:
int main(int argc, char** argv)
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(1));
t.async_wait(boost::bind(sendSyncToDevices, boost::asio::placeholders::error, &t));
io.run();
}
void sendSyncToDevices(const boost::system::error_code& ,
boost::asio::deadline_timer* t)
{
DoSomething();
t->expires_at(t->expires_at() + boost::posix_time::seconds(1));
t->async_wait(boost::bind(sendSyncToDevices, boost::asio::placeholders::error, t));
}
但是 io.run() 是一个阻塞调用。有人可以建议我如何添加额外的 while(1) 循环来检查收音机上的传入消息吗?
谢谢!