15145093145 |
2018-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<1>"); return false; }
termios serialAttr; memset(&serialAttr, 0, sizeof serialAttr); serialAttr.c_iflag = IGNPAR; serialAttr.c_cflag= B115200| HUPCL| CS8|CREAD|CLOCAL; serialAttr.c_cc[VMIN] = 1;
if (tcsetattr(m_fd, TCSANOW, &serialAttr) != 0) { AddInfo("COM: open is failed<2>"); 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; } |
|