同步操作将从 广州灵派科技有限公司/Encoder 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "UART.h"#include "Json.h"#include <QFile>UART::UART(QObject *parent) : QObject(parent),uart(this),socket(this){rmtPort=0;}void UART::init(){QFile file("/link/config/uart.json");file.open(QFile::ReadOnly);QString json=file.readAll();file.close();update(json);connect(&uart,SIGNAL(readyRead()),this,SLOT(onReadUart()));connect(&socket,SIGNAL(readyRead()),this,SLOT(onReadUDP()));}bool UART::update(QString json){QVariantMap cfg=Json::decode(json).toMap();if(cfg["device"].toString()!=uart.portName() || cfg["baudRate"].toInt()!=uart.baudRate()){if(uart.isOpen())uart.close();uart.setPortName(cfg["device"].toString());if(uart.open(QIODevice::ReadWrite)){uart.setBaudRate(cfg["baudRate"].toInt());uart.setDataBits(QSerialPort::Data8);uart.setParity(QSerialPort::NoParity);uart.setFlowControl(QSerialPort::NoFlowControl);uart.setStopBits(QSerialPort::OneStop);}else{qDebug()<<"can not open uart "<<uart.portName();}}if(cfg["port"].toInt()!=socket.localPort()){socket.close();socket.bind(cfg["port"].toInt());}if(cfg.contains("ip")){rmtIp.setAddress(cfg["ip"].toString());rmtPort=cfg["port"].toInt();}Json::saveFile(cfg,"/link/config/uart.json");return true;}void UART::onReadUart(){while(uart.bytesAvailable()>0){QByteArray ba=uart.readAll();if(rmtPort!=0)socket.writeDatagram(ba,rmtIp,rmtPort);}}void UART::onReadUDP(){while(socket.hasPendingDatagrams()){QByteArray ba;ba.resize(socket.pendingDatagramSize());socket.readDatagram(ba.data(),ba.size(),&rmtIp,&rmtPort);qDebug()<<ba;if(uart.isOpen())uart.write(ba);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。