QT serial
2015-12-22 14:17
295 查看
遍历当前chuankou
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) { qDebug() <<"Name : "<<info.portName().toStdString().data(); qDebug() <<"Description : "<<info.description().toStdString().data(); qDebug() <<"Manufacturer: "<<info.manufacturer().toStdString().data(); // Example use QSerialPort ui->serial_comboBox->addItem(info.portName()); printf(" \n"); }
foreach 为qt中预编译宏变量
#define Q_FOREACH(variable, container) \ for (QForeachContainer<__typeof__(container)> _container_(container); \ !_container_.brk && _container_.i != _container_.e; \ __extension__ ({ ++_container_.brk; ++_container_.i; })) \ for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) #else
If you just want to iterate over all the items in a container in order, you can use Qt’s foreach keyword. The keyword is a Qt-specific addition to the C++ language, and is implemented using the preprocessor.
Its syntax is: foreach (variable, container) statement. For example, here’s how to use foreach to iterate over a QLinkedList:
QLinkedList<QString> list; QString str; foreach (str, list) qDebug() << str;
qt 初始化函数
bool Port_Hw::Port_Hw_Setup(QString port_name,int baudrate) { QString str = "\\\\.\\"; int index=findindex(baudrate); if (-1 == index) { index=baudrate; } bool ret = false; str += port_name; port->setPortName(str); ret = port->open(QIODevice::ReadWrite|QIODevice::Unbuffered); port->setBaudRate(baudrate); port->setFlowControl(QSerialPort::NoFlowControl); port->setParity(QSerialPort::NoParity); port->setDataBits(QSerialPort::Data8); port->setStopBits(QSerialPort::OneStop); //set timeouts to 20 ms port->waitForBytesWritten(20); port->waitForReadyRead(20); if(ret == true) { printf("%s,line %d,OPEN SUCCESS\n",__func__,__LINE__); port->flush(); } return ret; }
send bytes
int Port_Hw::Port_Hw_Send(unsigned char *buf, int len) { int sent = 0; int ret; if(port->isOpen()) { for(;sent < len;) { ret = port->write((char *)buf + sent,len - sent); port->waitForBytesWritten(-1); if(port->isOpen() == false) { break; } if(ret > 0) { sent += ret; } } } return sent; }
flush
void Port_Hw::Port_Hw_Flush() { if(port->isOpen()) { port->flush(); } }
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11
- Hello Word ~ v0.2.2 背单词软件发布 -- By WHYPRO
- ubuntu下opencv和qt的安装配置
- linux下opengl的安装(with qt)
- qt 学习小节
- QT的命名风格
- QT 中的sleep
- QT 串口的监控