[Qt-interest] serial communication, RTS and DTR
Denis Akhmetzyanov
dakhmetzyanov at smartlabs.tv
Wed Mar 31 12:24:24 CEST 2010
Hi,
Did you check simple data transfer between two different serial ports? Are
examples supplied with library (in qextserialport/examples folder) working
fine? I didn't use RTS and DTR lines with QextSerialPort, but data
transmitting thru RXD/TXD was successful (in Windows XP).
2010/3/31 HardMaker <hardmaker at gmail.com>
> 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>>
> >
> > 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>
> > >> <mailto:yuvraj.ragupathi at indieontech.com
> > <mailto: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>
> > <mailto:Qt-interest at trolltech.com <mailto:Qt-interest at trolltech.com
> >>
> > >> http://lists.trolltech.com/mailman/listinfo/qt-interest
> > >>
> > >>
> > >>
> > > 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>
> > > http://lists.trolltech.com/mailman/listinfo/qt-interest
> > >
> > >
> >
> >
> >
> > _______________________________________________
> > Qt-interest mailing list
> > Qt-interest at trolltech.com <mailto:Qt-interest at trolltech.com>
> > http://lists.trolltech.com/mailman/listinfo/qt-interest
> >
> >
>
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20100331/01dee9a7/attachment.html
More information about the Qt-interest-old
mailing list