no message

master
zcy 2021-05-03 02:02:25 +08:00
parent 4114dc8c70
commit 3e514bb131
9 changed files with 165 additions and 114 deletions

View File

@ -31,95 +31,96 @@ Item {
height: parent.height
RowLayout {
spacing: 5
Label {
id: label6
Row{
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("打开端口: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
TextEdit {
id: port
Layout.leftMargin: 20
Layout.topMargin: 20
width: 80
height: 40
text: qsTr("9001")
font.italic: false
font.bold: true
Layout.columnSpan: 2
Layout.preferredHeight: 33
Layout.preferredWidth: 50
selectionColor: "#f0f0f1"
cursorVisible: true
font.pixelSize: 20
}
Label {
id: label6
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("打开端口: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
TextEdit {
id: port
Layout.leftMargin: 20
Layout.topMargin: 30
width: 80
height: 40
text: qsTr("9001")
selectionColor: "#f0f0f1"
cursorVisible: true
font.pixelSize: 18
}
RadioButton {
id: isServer
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("服务端")
checked: true
RadioButton {
id: isServer
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("服务端")
checked: true
onClicked:{
if(isServer.checked == true){
isServer.checked = false
isServer.checkable = false
}else{
isServer.checked = true
isServer.checkable = true
onClicked:{
if(isServer.checked == true){
isServer.checked = false
isServer.checkable = false
}else{
isServer.checked = true
isServer.checkable = true
}
}
}
}
}
RowLayout{
spacing: 5
Label {
id: label7
Row{
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("协议选择: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
ComboBox {
id: proto_combox
Layout.leftMargin: 20
Layout.topMargin: 20
width: 143
height: 40
Label {
id: label7
Layout.leftMargin: 20
Layout.topMargin: 20
text: qsTr("协议选择: ")
Layout.preferredHeight: 40
renderType: Text.QtRendering
Layout.preferredWidth: 125
wrapMode: Text.NoWrap
font.pointSize: 20
}
ComboBox {
id: proto_combox
Layout.leftMargin: 20
Layout.topMargin: 20
width: 143
height: 40
model:[
"udp",
"tcp"
]
}
RadioButton {
id: radioSelectWebsocket
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("websocket")
checkable: true
checked: true
onClicked:{
if(radioSelectWebsocket.checked == true){
radioSelectWebsocket.checked = false
radioSelectWebsocket.checkable = false
}else{
radioSelectWebsocket.checked = true
radioSelectWebsocket.checkable = true
model:[
"udp",
"tcp"
]
}
RadioButton {
id: radioSelectWebsocket
Layout.leftMargin: 20
Layout.topMargin: 20
width: 138
height: 41
text: qsTr("websocket")
checkable: true
checked: true
onClicked:{
if(radioSelectWebsocket.checked == true){
radioSelectWebsocket.checked = false
radioSelectWebsocket.checkable = false
}else{
radioSelectWebsocket.checked = true
radioSelectWebsocket.checkable = true
}
}
}
}
@ -166,14 +167,6 @@ Item {
text: qsTr("打开网口")
onClicked: {
console.log(hostEdit.text)
// TYPE_UDP_SERVER = 0,
// TYPE_TCP_SERVER = 1,
// TYPE_UDP_CLIENT = 2,
// TYPE_TCP_CLIENT = 3,
// Q_INVOKABLE int openNetwork(QString ip,uint32_t port,bool is_ws,int type);
console.log(proto_combox.currentText)
let type_network = -1
if(proto_combox.currentText == "udp" && isServer.checked){
type_network = 0
@ -196,12 +189,11 @@ Item {
radioSelectWebsocket.checked,
type_network)
if(ret != 0){
tip.text = "网络连接失败"
tip.visible = true
tip.fail("网络连接失败")
return
}
tip.text = "网络连接成功"
tip.visible = true
tip.success("网络连接成功")
}
}
@ -210,14 +202,31 @@ Item {
id: tip
text: qsTr("")
visible: false
font.pixelSize: 25
width: 220
contentItem: Text {
id : tip_item
text: tip.text
font: tip.font
color: "#21be2b"
}
background: Rectangle {
id: tip_background
border.color: "#21be2b"
width: 220
height: 40
}
function success(str){
tip_item.color = "#21be2b"
tip.text = str
tip.visible = true
}
function fail(str){
tip_item.color = "#ff0000"
tip.text = str
tip.visible = true
}
delay: 100
timeout: 1000

View File

@ -150,13 +150,6 @@ Item {
}
TextEdit {
id: send_data
width: parent.width - 60
height: 30
text: qsTr("Text Edit")
font.pixelSize: 16
}
}
}
}

View File

@ -201,8 +201,6 @@ Item {
uart_open = false
}
}
}
}
}

View File

@ -23,13 +23,6 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
// QQuickView view;
// view.setResizeMode(QQuickView::SizeRootObjectToView);
// view.setSource(QUrl("qrc:/main.qml"));
// view.setTitle ("多用途通信协议调试器,基于lua");
// view.rootContext()->setContextProperty("DataWrap",&gGlobal);
// view.show();
QQuickWidget *m_quickWidget=new QQuickWidget();
QUrl source("qrc:/main.qml");
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView );
@ -38,6 +31,5 @@ int main(int argc, char *argv[])
m_quickWidget->show();
gGlobal.SetQuickView(m_quickWidget);
return app.exec();
}

View File

@ -93,6 +93,13 @@ Rectangle {
color: "white"
font.pointSize: 10
}
Text {
text: qsTr("协议调试")
width: parent.width
anchors.centerIn: parent.Center
color: "white"
font.pointSize: 10
}
}
}
SerialSelect{

View File

@ -3,6 +3,10 @@
NetworkController::NetworkController(NetworkController::NetWorkType type, QString ip, uint16_t port)
{
mType = type;
if(_checkType(type) == TYPE_UNKOWN){
}
if(type == NetWorkType::TYPE_TCP_CLIENT){
mTcp = new QTcpSocket();
mCnn = mTcp;
@ -12,6 +16,21 @@ NetworkController::NetworkController(NetworkController::NetWorkType type, QStrin
mTcp->connectToHost(ip,port,QIODevice::ReadWrite);
}
if(type == NetWorkType::TYPE_TCP_SERVER){
mTcpServer = new QTcpServer();
connect(mTcpServer,SIGNAL(newConnection()),
this,SLOT(on_server_accept()));
connect(mTcpServer, SIGNAL(acceptError(QAbstractSocket::SocketError socketError)),
this, SLOT(displayError()));
if (!mTcpServer->listen(QHostAddress::Any, port))
{
qDebug() << "m_pTcpServer->listen() error";
}
}
}
int NetworkController::SendData(int8_t *data, uint32_t len)
@ -38,9 +57,36 @@ NetworkController::~NetworkController()
void NetworkController::on_ready_read()
{
qDebug()<<QString::fromStdString(mTcp->readAll().toStdString());
emit(on_data_recv());
}
void NetworkController::on_disconect()
{
qDebug()<<"close";
if(nullptr != mCnn){
emit(this->on_conection_close());
mCnn->close();
}
}
void NetworkController::on_server_accept()
{
if(mType == TYPE_TCP_SERVER){
mTcpServer->pauseAccepting();
QTcpSocket* pClientConnection = mTcpServer->nextPendingConnection();
if(nullptr != pClientConnection){
QObject::connect(pClientConnection, SIGNAL(readyRead()), this, SLOT(on_ready_read()));
QObject::connect(pClientConnection, SIGNAL(disconnected()), this, SLOT(on_disconect()));
}
mTcp = pClientConnection;
}
}
NetworkController::NetWorkType NetworkController::_checkType(NetWorkType type){
if(type < TYPE_UNKOWN){
return type;
}else{
return TYPE_UNKOWN;
}
}

View File

@ -6,7 +6,7 @@
#include <QUdpSocket>
#include <QTcpSocket>
#include <QThread>
#include <QTcpServer>
class NetworkController : public QObject
{
@ -17,6 +17,7 @@ public:
TYPE_TCP_SERVER = 1,
TYPE_UDP_CLIENT = 2,
TYPE_TCP_CLIENT = 3,
TYPE_UNKOWN = 4,
}NetWorkType;
NetworkController(NetWorkType type,QString ip,uint16_t port);
@ -28,16 +29,19 @@ public:
public slots:
void on_ready_read();
void on_disconect();
void on_server_accept();
signals:
void on_data_recv();
void on_conection_ok();
void on_conection_close();
void on_send_data(QByteArray);
private:
NetWorkType type;
NetWorkType _checkType(NetWorkType);
NetWorkType mType;
QUdpSocket *mUDP;
QTcpSocket *mTcp;
QTcpServer *mTcpServer;
QIODevice *mCnn;
QThread mThread;
};

View File

@ -92,7 +92,6 @@ void SerialController::GetSetting(QString baudRate, QString dataBits, QString st
mBaudrate = baudRate.toUInt();
mDataBits = (QSerialPort::DataBits)dataBits.toUInt();
mParity = QSerialPort::Parity::NoParity;
}
void SerialController::ReadyRead()

View File

@ -17,7 +17,6 @@ ShareData::ShareData(QObject *parent) : QObject(parent),
QTextStream in(&file);
m_lua_string = in.readAll();
qDebug()<< m_lua_string;
int ret = m_lua_.DoString(m_lua_string);
if(ret < 0){
qDebug()<<"默认lua脚本加载错误";
@ -90,6 +89,11 @@ int ShareData::openNetwork(QString ip, unsigned int port, bool is_ws,int type)
if(type == NetworkController::TYPE_UDP_CLIENT){
}
if(type == NetworkController::TYPE_TCP_SERVER){
m_network_ = new NetworkController(NetworkController::TYPE_TCP_SERVER,ip,port);
return 0;
}
return -1;
}
@ -145,7 +149,6 @@ int ShareData::saveLuaScript(QString s)
}
file.close();
return 0;
}
bool ShareData::luaStatus()