[Qt-interest] serial communication, RTS and DTR
HardMaker
hardmaker at gmail.com
Tue Mar 30 22:21:08 CEST 2010
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
>
>
More information about the Qt-interest-old
mailing list