Serial port
-
2 shirisha ,
why you just do not use QtSerialPort?
http://qt-project.org/doc/qt-5/qtserialport-index.html
http://qt-project.org/wiki/QtSerialPort -
Did you read Wiki? What version of Qt do you use?
Please paste more informative messages, how you tried?
-
hi sir,
@
QChar chbuf[50];
QString ReadData;
nSerialreturn = read(fd,chbuf,50);
qDebug () << "Timer running:"<< nSerialreturn;
for(i = 0;i<nSerialreturn;i++)
{
ReadData = chbuf[i];
qDebug () << "Data:" << ReadData;
}
@am unable to get the data..and data should be in hexadecimal ..unable to convert it ..please help me sir
[edit: added missing coding tags @ SGaist]
-
Please answer the questions we are asking you in order for us to help you.
Again, it seems that you are not using QSerialPort, if so, then go to the appropriate forum like I already suggested.
Otherwise, tell us exactly what version of Qt you are using. Show us the code where you initialize QSerialPort. Tell us what parameter your serial port should use.
-
nreturn = read(fd,buf,1); str =buf[i]; len = str.length(); qDebug () << "no of bytes:" << len; for( i=0;i<len;i++) { ch = str.at(i); n+=ch.unicode(); } qDebug () << "Data:" << n;
here am getting decimal data..i would like to get hex value please help me
-
QSerialPort works on all support platform so what is your exact problem with linux ?
Most probably you don't have the rights to access the serial port, do you ?
-
"This thread":http://qt-project.org/forums/viewthread/44793/ will guide you through my experiences when I added it to 4.6.3.
If you follow all the posts, you should be able to successfully add QtSerialPort to 4.8.4 .. even easier because you may not need all the changes that were needed for 4.6.3. -
hi sir,
int nreturn=0,len;
char buf[5];
QString str,s;QChar ch;
while (TRUE)
{nreturn = read(fd,&buf,1);
str =buf[i];
len = str.length();
qDebug () << "no of bytes:" << len;
for( i=0;i<len;i++)
{ch = str.at(i);
n+=ch.unicode();
s = QString::number(n,16);
}
qDebug () << "Data:" << s;}
Am able to display hex value, when data is only one byte and other problem is when continusly data is read only first byte is getting correct remaing am geting addition of the previous data . if i read 5 bytes of data am getting junk data .Please help me
-
use this
@QString a="a";
QByteArray BA1=a.toUtf8();
QByteArray BA2=BA1.toHex();
const char* chArr1=BA2.constData();
qDebug()<<QString::fromUtf8(chArr1);@ -
Basic serial port usage as I have worked on is
@ serial=new QSerialPort(this);
serial->setPortName("/dev/ttyS0"); serial->setBaudRate(9600); serial->setDataBits(QSerialPort::Data8); serial->setParity(QSerialPort::NoParity); serial->setFlowControl(QSerialPort::NoFlowControl); serial->open(QIODevice::ReadWrite); serial->write("Hello World"); connect(serial,SIGNAL(readyRead()),this,SLOT(readSerialData()));@
-
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);
fd = open(MODEMDEVICE,O_RDWR|O_NOCTTY);While(true)
{
Buffer.clear();
nreturn = read(fd,&chBuf,1);
if(nreturn > 0)
{
for(i=0;i<nreturn;i++)
{
Buffer.append(chBuf[i]);if(chBuf[0] == 0xc9) nReadIndex = 0;
pData[nReadIndex++] = chBuf[i];
qDebug() << "data" << Buffer.toHex();
}
if(chBuf[0] == 0xcf)
{if(nReadIndex >= 10)
//Display of Gui opreration //
nReadIndex = 0;
}
For this how can i use timers instead of while loop, where should i start timer , i tried but am geting segmentation problem.Please help me