本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

案例分享:某品牌音响系列协议调试工具(搜寻主机,查询通道,基本控制API,云音乐API,语言节目API等,可增删改指令)

发布于2021-05-30 19:41     阅读(701)     评论(0)     点赞(4)     收藏(0)


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115920854

长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)


需求

  某音响品牌需要一套完整的协议调试工具,提供给研发人员,渠道商,客户,现场人员等使用:
  1.使用sqlite3数据库存储协议,
  2.搜寻主机,操作主机;
  3.探测云端API,调试API;
  4.指令包含tcp,udp,udp组播;
  5.打开pdf查看使用说明和协议;
  6.隐藏功能,管理员可就调出“控制”菜单,对指令进行增改删操作;
  7.支持windows系统;


Demo:某一产品线完整系列协议

  在这里插入图片描述
  设备控制指令,如下:
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述
  通过操作设备,获取云音乐(某大厂),测试该系列供应商接口是否正常:
  在这里插入图片描述
  在这里插入图片描述
  通过操作设备,获取语言类节目,测试该系列云端供应商接口是否正常:
  在这里插入图片描述
  直接搜索主机,或者搜索指定主机的通道数量以及对应编号:
  在这里插入图片描述
  管理员使用特殊的操作,可以调出“控制”菜单,如下图:
  在这里插入图片描述
  选取指令可以增删改,如下图:
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  
在这里插入图片描述


头文件源码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "DbServer.h"

#define PDF_EXE     "SumatraPDF.exe"

class UdpTransfer;
class QThread;
class QTcpSocket;
class QUdpSocket;
class QLabel;
class QModelIndex;
class QTreeWidgetItem;
class QTimer;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    struct ChannelInfo{
        ChannelInfo(){}
        QString roomId;
        QString roomName;
        QString devStat;
    };

    struct HostInfo{
        HostInfo(){}
        QString ip;
        QString deviceId;
        QString deviceName;
        QString deviceType;
        QList<ChannelInfo> listChannelInfo;
    };

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public:
    void init();
    void sendUdpData(QByteArray);
    void sendTcpData(QByteArray byteArray, QString ip, quint16 port);

public slots:
    void connected();
    void disconnected();

private slots:
    void btn_clicked_FaSongZhiLing();
    void lvw_clicked_ZhiLingJi();
    void ckb_clicked_XianShiZuiXin();
    void btn_clicked_ZengJiaZhiLing();
    void btn_clicked_XiuGaiZhiLing();
    void btn_clicked_ShanChuZhiLing();
    void trw_clicked_ZhuJiLieBiao(QTreeWidgetItem* item ,int index);
    void btn_clicked_SouSuoZHuJi();
    void btn_clicked_HuoDeZhuJiTongDao();
    void cmb_changed_ZhiLingLeiXing(QString typeString);
    void tim_timeout();

private slots:
    void recvUdpData();
    void recvTcpData();
    void recvUdpNotify(QByteArray,QString,quint16);

private slots:
    void on_btn_DaKaiXieYi_clicked();
    void on_act_SouSuoZhuJi_triggered();
    void on_act_Exit_triggered();
    void on_act_HuoQuZhuJiTongDao_triggered();
    void on_act_DaKaiXieYi_triggered();
    void on_act_About_triggered();
    void on_act_AboutQT_triggered();
    void on_btn_QingKongUdp_clicked();
    void on_btn_QingKongTcp_clicked();
    void on_btn_QingKongUdpNotify_clicked();

private:
    void updateZhiLingJi();
    void showList();
    void updateHost();

private:
    QString ByteArrayToPlain(QByteArray byteArray);
    QString JsonToPlain(QJsonObject & jsonObject);
    QByteArray PlainToByteArray(QString str);

protected:
    void keyPressEvent(QKeyEvent * event);
    void keyReleaseEvent(QKeyEvent * event);

private:
    Ui::MainWindow *ui;
    UdpTransfer *_pUdpTransfer;
    QThread *_pUdpTransferThread;
    QHash<QString, DbServer::ZhiLingJi> _hashZhiLingJi;
    QString _content;
    QTcpSocket *_pTcpSocket;
    QUdpSocket *_pUdpSocket;
    QByteArray _tcpByteArray;
    QStatusBar *_pStatusBar;
    QLabel * _pStatusLabel1;
    QLabel * _pStatusLabel2;
    QHash<QString, HostInfo> _hashHostInfo;
    DbServer::ZHILINGJI_API_TYPE _type;
    bool _ctrl;
    QProcess *_pDdf;
    QTimer *_pTimer;
};
#endif // MAINWINDOW_H

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115920854



所属网站分类: 技术文章 > 博客

作者:天神下凡

链接:http://www.phpheidong.com/blog/article/86900/d1b1dde5646fc7bd45c4/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)