案例分享:某品牌音响系列协议调试工具(搜寻主机,查询通道,基本控制API,云音乐API,语言节目API等,可增删改指令)
需求
某音响品牌需要一套完整的协议调试工具,提供给研发人员,渠道商,客户,现场人员等使用:
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
案例分享:某品牌音响系列协议调试工具(搜寻主机,查询通道,基本控制API,云音乐API,语言节目API等,可增删改指令)的更多相关文章
- 易普优APS高级计划排程系统系列提纲:行业知识,业务建模,排程算法,计划可视化,平台框架,案例分享
专注于高级计划排程系统研发与实施10来年了,国内外各种APS软件基本都研究过,这里列个提纲主要从6个方面跟大家一起讨论分享,欢迎大家鼓掌或拍砖 易普优APS高级计划排程系统系列001:行业知识,APS ...
- 前端案例分享(一):CSS+JS实现流星雨动画
目录 引言 1.效果图 2.源码 3.案例解析 4.小问题 5.结语 引言 平常会做一些有意思的小案例练手,通常都会发到codepen上,但是codepen不能写分析. 所 ...
- [测试技术分享]easyFuzzer使用案例分享
easyFuzzer使用案例分享 1.简介: easyFuzzer是wooyun的一位白帽子(光刃)提供的一款用于fuzz文件的工具.平时主要是和网络协议安全打交道,和本地软件安全打交道比较少,所以没 ...
- 【案例分享】在 React 框架中使用 SpreadJS 纯前端表格控件
[案例分享]在 React 框架中使用 SpreadJS 纯前端表格控件 本期葡萄城公开课,将由国电联合动力技术有限公司,资深前端开发工程师——李林慧女士,与大家在线分享“在 React 框架中使用 ...
- ArcGIS Add-in插件开发从0到1及实际案例分享
同学做毕设,要求我帮着写个ArcGIS插件,实现功能为:遍历所有图斑,提取相邻图斑的公共边长及其他属性(包括相邻图斑的ID),链接到属性表中.搞定后在这里做个记录.本文分两大部分: ArcGIS插件开 ...
- Office 2010 KMS激活原理和案例分享
Office 2010 KMS激活原理和案例分享 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...
- Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs
[作者:葛伟华.张玉工程师 , Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...
- 老李案例分享:Weblogic性能优化案例
老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...
- 性能调优案例分享:Mysql的cpu过高
性能调优案例分享:Mysql的cpu过高 问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程
老李案例分享:MAT分析应用程序服务出现内存溢出过程 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...
随机推荐
- [转帖]SSL数字证书分类DV/OV/EV
SSL证书的分类主要是通过下面两个维度进行分类: 1.根据验证模式分类 根据CA机构对申请者的身份审核范围分为:DV证书.OV证书.EV证书. 1.1.DV证书(域名证书) DV(Domain Val ...
- [转帖]【jmeter】BeanShell用法详细汇总
一.什么是Bean Shell BeanShell是用Java写成的,一个小型的.免费的.可以下载的.嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k. B ...
- [转帖]/proc文件简介
https://www.jianshu.com/p/2610241770be 简介 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提 ...
- 京东哥伦布即时设计平台ChatGPT落地实践
一.平台介绍 即时设计平台是一个即时搭建c端楼层的开发平台,支持通过导入relay设计稿url完成Ui2Code,在此基础上完成前端可视化搭建,同时支持通过ChatGPT完成一句话需求,搭建后的楼层自 ...
- protojson简介
google.golang.org/protobuf/encoding/protojson 是 Go 语言中的一个库,用于处理 Protocol Buffers(protobuf)和 JSON 之间的 ...
- 有道云笔记之备选方案Obsidian和Notion
有道云笔记限制登录设备 在商业项目中一般都会有plana.planb,对于云笔记,我也在寻找planb,有道云笔记在国内市场已经占据了很大的份额. 同类型中的就不再去挑选了,我觉得商业软件,迟早也会走 ...
- 使用三方jar中的@RestControllerAdvice不起作用
背景 公司封装了自己的基础核心包core-base,里边包含了Validation的异常捕获处理类:同时开发项目有全局异常捕获处理类,经测试发现,core-base里边的不起作用 可能原因: 未扫描外 ...
- 驱动开发:内核读取SSDT表基址
在前面的章节<X86驱动:挂接SSDT内核钩子>我们通过代码的方式直接读取 KeServiceDescriptorTable 这个被导出的表结构从而可以直接读取到SSDT表的基址,而在Wi ...
- 7、后端学习规划:PHP学习 - 学习规划系列文章
PHP在其阵营中被称为世界上最好的编程语言.笔者在学习了其一些框架后也有一定的经验,当时主要根据其框架进行的开发.对于PHP来说,在编程排行榜上也是有名的存在,现在还有一些网站应用也是用的PHP进行的 ...
- 神奇的 SQL ,同时实现小计与合计,阁下该如何应对
开心一刻 今天,小区有个很漂亮的姑娘出嫁 我对儿子说:你要好好学习,认真写作业,以后才能娶到这么漂亮的老婆 儿子好像听明白了,思考了一会,默默的收起了作业本 然后如释重负的跟我说到:爸,我以后还是不娶 ...