该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下是源码:
Firealarmsystem::Firealarmsystem(QWidget *parent) :
QWidget(parent),
ui(new Ui::Firealarmsystem)
{
ui->setupUi(this);
myCom = new Posix_QextSerialPort("/dev/ttyUSB0",QextSerialBase::Polling);
qDebug() << myCom->isOpen();
if(myCom->isOpen())
{
myCom->close();
}
myCom->open(QIODevice::ReadOnly);
myCom->setBaudRate(BAUD115200);
myCom->setDataBits(DATA_8); //数据位设置,我们设置为8位数据位
myCom->setParity(PAR_NONE); //奇偶校验设置,我们设置为无校验
myCom->setStopBits(STOP_1); //停止位设置,我们设置为1位停止位
myCom->setFlowControl(FLOW_OFF); //数据流控制设置,我们设置为无数据流控制
myCom->setTimeout(200); //延时设置,我们设置为延时200ms,如果设置为500ms的话,会造成程序无响应,原因未知
//connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));
//【windows下使用】信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作,linux不支持,只能用定时
readTimer = new QTimer(this); //设置读取计时器
readTimer->start(100); //设置延时为100ms
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));
}
Firealarmsystem::~Firealarmsystem()
{
delete ui;
}
void Firealarmsystem::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void Firealarmsystem::readMyCom() //读取串口数据并显示出来
{
QByteArray temp = myCom->readAll();
qDebug() << "temp:" << temp;
ui->textEdit->append(temp);
}
void Firealarmsystem::on_pushButton_clicked()
{
myCom->close();
delete myCom;
}