我现在是用QT写了一个Modbustcpclient,然后client对象中首先实例化了client后,新建线程并将其加入。
仅复制了部分关键代码。
MainWindow中
client1 = new Client(0, newClientConfig);
在Client类中
Client::Client(QObject *parent, struct Client_Config Config){
modbusDevice = new QModbusTcpClient(this,config);
m_thread = new QThread();
this->moveToThread(m_thread);
modbusDevice->moveToThread(m_thread);
connect(m_thread, SIGNAL(started()), this, SLOT(run()));
}
void Client::run(){
Connect();
}
在该对象的run函数中,调用了Connect();方法实现了对服务器的连接。
但是如果我现在需要让这个Client发送数据,也就是调用其自身的Write方法,怎么写呢?
试过了直接在主函数中执行client1->write();是不可以的
难道我需要在run函数加一个while循环不断判断一个全局变量的值吗?