با سلام خدمت اساتید محترم. اگر بخواهیم مقدار بازگشتی از رایت چندین دستور در مورد کلاس QSerialPort به صورت دلخواه ذخیره کنیم باید به چه شکل عمل کرد؟
کد زیر برای دستوری است که عمل رایت دستور را انجام میدهد:
port->setPortName(""); // COM PORT NAME
port->setBaudRate(QSerialPort::Baud9600);
port->setFlowControl(QSerialPort::NoFlowControl);
port->setParity(QSerialPort::NoParity);
port->setDataBits(QSerialPort::Data8);
port->setStopBits(QSerialPort::OneStop);
port->open(QSerialPort::ReadWrite);
if(port->isOpen())
{
port->write(); // command 1 for write
port->write(); // command 2 for write
port->write(); // command 3 for write
port->write(); // command 4 for write
}
حالا برای هر دستور رایت یک مقدار بازگشتی دریافت خواهیم کرد. پس میتوان با connect سیگنال readyRead با یک اسلات به صورت کد زیر این مقدار بازگشتی رو ذخیره کرد:
connect(port,SIGNAL(readyRead()),this,SLOT(MySlot()));
QByteArray b = port->readAll();
QFile file("e:/test/raw.bin");
if(!file.open(QIODevice::WriteOnly | QIODevice::Append))return;
file.write(b);
file.flush();
file.close();
حالا اگر بخواهیم مقدار بازگشتی رو از دستور رایت مشخصی دریافت کنیم ، شیوه صحیح کار چطور است؟