在自定义库

时间:2015-05-13 13:04:54

标签: c++ qt lua serial-port

我尝试使用Lua C APILuaBridge制作lua包,我需要通过串口发送数据,因此使用Qt' s {{ 3}}

绑定工作正常,也就是说,我可以在我的脚本中使用我在Lua中注册的类。但是,每次我使用QSerialPort :: write时,Qt都会在警告后显示:

QObject::startTimer: Timers can only be used with threads started with QThread

我还没有声明QCoreApplication,我不知道应该在哪里声明它,因为库没有main()函数。

我最接近入口点的是

int luaopen_my_io_lib(lua_State *L);

将我的班级注册到Lua。

QSerialPort用作I类注册的成员,并且在没有父QObject的情况下构造。

我该如何解决这个问题?

[编辑]这里是触发警告的代码:

bool SerialIO::write(std::string data) {
    m_port.write(data.c_str());
    return m_port.waitForBytesWritten(100);
}

其中m_port是QSerialPort。

我认为我应该能够通过启动一个新的QThread来解决这个问题,但这对于我试图实现的目标来说有点过分了......

0 个答案:

没有答案