#include "if_uart.h" #include "QThread" #include "base/mycfg.h" #include "QDebug" void if_uart::init() { if(serial_==nullptr) { serial_=new QSerialPort(); serial_->setPortName(com); serial_->setBaudRate(bsp); serial_->setParity(QSerialPort::NoParity); serial_->setDataBits(QSerialPort::Data8); serial_->setStopBits(QSerialPort::OneStop); serial_->setFlowControl(QSerialPort::NoFlowControl); if(serial_->open(QIODevice::ReadWrite)) { connect(serial_,&QSerialPort::readyRead,this,&if_uart::ready_read_cb); qDebug("uart \"%s\" bsp=%d",serial_->portName().toLocal8Bit().data(), bsp); serial_open=true; } else { qWarning()<<"uart open failed."<portName(); } } } int if_uart::write(myarray data) { if((nullptr == serial_)||(serial_open!=true)) { //qWarning() << "Can’t send data , TcpClient socket not connect."; return 0; } qDebug("uart send:%s",data.toHex(' ').data()); int wb = serial_->write(data); if((!serial_->flush())||(wb!=data.size())) { //qWarning() << "uart data:"<readAll(); qDebug("uart recv:%s",data.toHex(' ').data()); if (irq_fun) { irq_fun(myarray(data)); } } InterFace *if_uart_hmi() { static InterFace *if_ = nullptr; if (if_ == nullptr) { if_ = new if_uart("/dev/ttySTM1",115200); // QTimer::singleShot(0, if_, &InterFace::init); if_->init(); } return if_; } if_export(uart_hmi, if_uart_hmi); InterFace *if_uart_host() { static InterFace *if_ = nullptr; if (if_ == nullptr) { int bsp=57600; if(syscfg()->uart_bsp!=0){ bsp=syscfg()->uart_bsp; } if_ = new if_uart("/dev/ttySTM2",bsp); // QTimer::singleShot(0, if_, &InterFace::init); if_->init(); } return if_; } if_export(uart_host, if_uart_host); InterFace *if_uart_m4() { static InterFace *if_ = nullptr; if (if_ == nullptr) { if_ = new if_uart("/dev/ttyRPMSG0",115200); // QTimer::singleShot(0, if_, &InterFace::init); if_->init(); } return if_; } if_export(uart_m4, if_uart_m4);