[Qt-interest] serial communication, RTS and DTR
Denis Akhmetzyanov
dakhmetzyanov at smartlabs.tv
Wed Mar 31 16:17:49 CEST 2010
Hi,
port = new QextSerialPort(portName, QextSerialPort::EventDriven);
port->open(QIODevice::ReadWrite);
connect(port, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
...
void PortListener::onReadyRead()
{
QByteArray bytes;
int a = port->bytesAvailable();
bytes.resize(a);
port->read(bytes.data(), bytes.size());
}
2010/3/31 Yuvraj <yuvraj.ragupathi at indieontech.com>
> HardMaker wrote:
>
> Hi, yes, I open the port, the complete code is:
>
> void Dialog::on_btnOpenPort_clicked()
> {
> serial->setBaudRate(BAUD9600);
> serial->setFlowControl(FLOW_OFF);
> serial->setParity(PAR_NONE);
> serial->setDataBits(DATA_8);
> serial->setStopBits(STOP_2);
>
> if(serial->open(QIODevice::ReadWrite|QIODevice::Unbuffered))
> ui->logList->addItem(new QListWidgetItem ("Open: TRUE"));
> else
> ui->logList->addItem(new QListWidgetItem ("Open: FALSE"));
> }
>
> Where logList is a QListWidget where write some text to debug.
> The "serial" was defined in the Dialog class. I have buttons to togle
> RTS and DTR:
>
> void Dialog::on_rtsOn_clicked()
> {
> serial->setRts(true);
> }
>
> void Dialog::on_rtsOff_clicked()
> {
> serial->setRts(false);
> }
>
> void Dialog::on_dtrOn_clicked()
> {
> serial->setDtr(true);
> }
>
> void Dialog::on_dtrOff_clicked()
> {
> serial->setDtr(false);
> }
>
> And with other button close the port:
>
> void Dialog::on_btnClosePort_clicked()
> {
> if(serial->isOpen())
> {
> serial->close();
> if(serial->isOpen())
> {
> ui->logList->addItem(new QListWidgetItem ("No cerr?"));
> }
> else
> {
> ui->logList->addItem(new QListWidgetItem ("Cerro OK"));
> }
> }
> else
> ui->logList->addItem(new QListWidgetItem ("Not opened!"));
> }
>
>
>
> Denis Akhmetzyanov escribió:
>
>
> Hi,
> Are you open port before setRts() ?
>
> serial->open(QIODevice::ReadWrite)
>
>
> 2010/3/30 HardMaker <hardmaker at gmail.com <mailto:hardmaker at gmail.com> <hardmaker at gmail.com>>
>
> Hi,
> I'm trying to make a serial comunication too and I need to control the
> RTS and DTR lines. Not for make a hardware hand shaking, yust I
> wan't to
> drive this lines and send and recive data trow the serial port as
> diferents things.
> As you suggest, I try QextSerialPort from google and use this code on
> linux to initialize the port:
>
> QextSerialPort serial = new QextSerialPort();
> serial->setBaudRate(BAUD9600);
> serial->setFlowControl(FLOW_OFF);
> serial->setParity(PAR_NONE);
> serial->setDataBits(DATA_8);
> serial->setStopBits(STOP_2);
>
> but when I press a button to execute this code:
>
> serial->setRts(true);
> or
> serial->setRts(false);
>
> Nothing happend, I'm using a digital voltimeter conected to RTS and
> don't change. But, if use other applications it's ok (the
> hardware work).
> Can helpme?
>
> Thank's
>
> Sergio
>
> Yuvraj escribió:
> > Denis Akhmetzyanov wrote:
> >
> >> Hi,
> >> I suggest you to try
> >> QextSerialPort http://code.google.com/p/qextserialport/ instead
> of the
> >> native calls. It is a convenient class implements QIODevice and
> >> supports signal/slot technology and asynchronous calls.
> >>
> >>
> >> 2010/3/30 Yuvraj <yuvraj.ragupathi at indieontech.com
> <mailto:yuvraj.ragupathi at indieontech.com> <yuvraj.ragupathi at indieontech.com>
> >> <mailto:yuvraj.ragupathi at indieontech.com <yuvraj.ragupathi at indieontech.com>
> <mailto:yuvraj.ragupathi at indieontech.com> <yuvraj.ragupathi at indieontech.com>>>
> >>
> >> Hi ,
> >>
> >> Here i am opening the serial communication device file and
> writing
> >> some data, in other hand i am not getting the data due to enter
> >> key( "/r/n")
> >>
> >> my code is
> >>
> >> file_descriptor = open("/dev/ttyS0",O_RDWR);
> >> if(file_descriptor > 0)
> >> {
> >> timer = new QTimer;
> >> timer1 =new QTimer;
> >>
> >>
> QObject::connect(timer,SIGNAL(timeout()),this,SLOT(browser_append()));
> >>
> >>
> QObject::connect(timer1,SIGNAL(timeout()),this,SLOT(on_send_clicked()));
> >> timer->start(1);
> >> timer1->start(10);
> >> }
> >> else
> >> {
> >> QMessageBox::information(0,"","Connection failed");
> >> }
> >>
> >>
> >> void window::on_send_clicked()
> >> {
> >> int file_id;
> >> char send_data[150]= "Hi Hello\r\n";
> >> if(file_descriptor > 0)
> >> {
> >> file_id= write(file_descriptor,send_data,15);
> >> ui->send_text->clear();
> >> ui->send_text->setFocus();
> >> if(file_id > 0)
> >> {
> >> qDebug()<<"Data successfully written \n";
> >> }
> >>
> >>
> >> }
> >>
> >> }
> >>
> >> any ideas?
> >>
> >> Thanks
> >>
> >> Yuvaraj R
> >>
> >>
> >> _______________________________________________
> >> Qt-interest mailing list
> >> Qt-interest at trolltech.com
> <mailto:Qt-interest at trolltech.com> <Qt-interest at trolltech.com>
> <mailto:Qt-interest at trolltech.com <Qt-interest at trolltech.com> <mailto:Qt-interest at trolltech.com> <Qt-interest at trolltech.com>>
> >> http://lists.trolltech.com/mailman/listinfo/qt-interest
> >>
> >>
> >>port->open(QIODevice::ReadWrite)
> > There itself i am facing same issue (key enter )
> >
> > Thanks
> > Yuvaraj
> > _______________________________________________
> > Qt-interest mailing list
> > Qt-interest at trolltech.com <mailto:Qt-interest at trolltech.com> <Qt-interest at trolltech.com>
> > http://lists.trolltech.com/mailman/listinfo/qt-interest
> >
> >
>
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com <mailto:Qt-interest at trolltech.com> <Qt-interest at trolltech.com>
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
> _______________________________________________
> Qt-interest mailing listQt-interest at trolltech.comhttp://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
> Hi ,
>
> I want receive the data from RS 232 continuously. I tried with while loop
> and timer, but my GUI is hanging.
>
> Any other way to receive the data continuously?
>
>
> Thanks
>
> Yuvraj
>
>
>
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
--
Best regards,
Denis Akhmetzyanov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20100331/ccb8864f/attachment.html
More information about the Qt-interest-old
mailing list