标题:QT Android操作串口问题
作者:sinoward
日期:2018-03-28 15:44
内容:
使用QSerialPort操作串口时,老是打开串口失败,提示Permission error while creating lock file。
应该是串口操作权限问题,有没有同学碰到过,解决了该问题。
共享一下。
#1 [15145093145 03-29 09:25]
用linux api作,我现在项目就是qt for android serialport
bool ComMgr::open()
{
#ifdef Q_OS_ANDROID
if(m_fd != -1)
::close(m_fd);
char* com = g_sysVar->m_strCom.toLatin1().data();
m_fd = ::open((char*)com, O_RDWR|O_NONBLOCK);
if (m_fd == -1)
{
AddInfo("COM:open is failed");
return false;
}
termios serialAttr;
memset(&serialAttr, 0, sizeof serialAttr);
serialAttr.c_iflag = IGNPAR;
serialAttr.c_cflag= B115200| HUPCL| CS8|CREAD|CLOCAL;
serialAttr.c_cc = 1;
if (tcsetattr(m_fd, TCSANOW, &serialAttr) != 0) {
AddInfo("COM:open is failed");
return false;
}
m_notifier = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
QObject::connect (m_notifier, SIGNAL(activated(int)), this, SLOT(slt_notifyNewData()));
#endif
return true;
}