当前位置: 首页 > news >正文

京广桥做网站的公司营销网络是啥意思

京广桥做网站的公司,营销网络是啥意思,wordpress高级应用,网站模板免费推荐0.前言 最近一年多的时间一直在开发设备控制相关的软件,加上之前在聚光的两年时间,前前后后开发这种设备控制类型的上位机软件也有三年的时间了。总结出了一套基于Qt的上位机编程框架,核心思想类似于C#的依赖注入,对象的初始化都…

0.前言

最近一年多的时间一直在开发设备控制相关的软件,加上之前在聚光的两年时间,前前后后开发这种设备控制类型的上位机软件也有三年的时间了。总结出了一套基于Qt的上位机编程框架,核心思想类似于C#的依赖注入,对象的初始化都是基于反射和配置文件生成的,通过修改配置文件就能实现控制流程的修改。
该框架分为基本模块、通讯层、设备层、指令层、控制层五个核心模块,上层调用下层,主要通过Manager单例读取配置json文件,创建并配置对应实体,再将实体指针由Manager管理,可以有效防止内存泄漏等问题。
项目gitee地址

1.基本模块

定义了BaseFactory、BaseItem、BaseManager三个底层基类,BaseFactory定义了类型注册和实体创建两个方法,主要用于每个模块内的实体创建工作。

#pragma execution_character_set("utf-8")
#ifndef BASEFACTORY_H
#define BASEFACTORY_H
#include <QObject>
#include <QMap>
#include <QDebug>
#include "BaseItem.h"class BaseFactory
{
public:BaseFactory();virtual BaseItem* CreateInstance(QString concreteType);template <typename T1>int Register(){int preCount=_map.count();const QMetaObject& meta = T1::staticMetaObject;_map.insert(meta.className(),&meta);if(preCount+1!=_map.count()){throw QString("%1注册失败,请检查!").arg(meta.className());}return _map.count();}protected:QMap<QString,const QMetaObject*> _map;
};

BaseItem主要定义了框架内所有实体的配置接口和配置文件创建接口

#pragma execution_character_set("utf-8")
#ifndef BASEITEM_H
#define BASEITEM_H#include <QObject>
#include <QJsonObject>
#include <QJsonDocument>
#include <QException>
#include <QSharedPointer>
#include <QDebug>
#include "InterruptedException.h"class BaseItem : public QObject
{Q_OBJECT
public:explicit BaseItem(QObject *parent = nullptr);QString Name();void SetName(QString name);virtual void SetConfig(QJsonObject obj);virtual QJsonObject Config();virtual void SetOtherConfig(QJsonObject other);virtual bool Init();virtual QWidget* GetConfigWidget();virtual QSharedPointer<QWidget> GetConfigWidgetZZZ();protected:QString _name;QJsonObject _obj;QJsonObject _other;signals:public slots:
};#endif // BASEITEM_H

BaseManager主要定义了Manager类的的基本方法,主要通过读取配置文件,使用工厂模式创建对应的实体对象,再将配置文件中的json对象参数传入对象完成初始化,最后再将这些实体对象指针通放入QList容器,简化对象的管理和监控。
在这里插入图片描述

2.通讯层

定义了SendReply、Publisher、Subscriber、Requester、Replyer、Modbus物种基本的通讯类。并且实现了SendReply、Modbus通讯方式的网口和串口模式,基于zmq实现了Publisher、Subscriber、Requester、Replyer四种通讯模式。
CommunicationManger创建并且管理这些通讯实例,并且具有通讯监控、断线重连等功能,方便再设备运行期间对通讯状态的异常排查。
在这里插入图片描述

3.设备层

定义了IO模块、测距仪、电机控制器等常用设备,完成了不同品牌的具体实现
在这里插入图片描述

4.指令层/控制层

整体业务核心部分,将所有软件执行流程分为分解为多个指令,内部通告异常抛出实现控制流程的中断,大大简化控制流程,通过调整不同指令的位置,可以实现控制流程的自由组合。通过设置不同的权重,可以实现进度报告等功能。

5.中断

将整体业务执行流程分为瞬态控制和等待,在每个等待中使用WaitMs(int time)方法实现业务的中断功能。

#pragma execution_character_set("utf-8")#include "WaitUtils.h"
#include <QTime>
#include <QDebug>
#include <QCoreApplication>
#include <QElapsedTimer>WaitUtils::WaitUtils(QObject *parent) : QObject(parent)
{}bool WaitUtils::_isRunning=false;void WaitUtils::WaitMs(int time)
{//多处调用displayProgress该变量且有的时true有的时false时会导致进度显示异常,想不通。。。QElapsedTimer ela;ela.start();while (ela.elapsed() < time){CheckIsRunning();QCoreApplication::processEvents(QEventLoop::AllEvents, 100);}
}void WaitUtils::WaitMsNoException(int msec)
{//多处调用displayProgress该变量且有的时true有的时false时会导致进度显示异常,想不通。。。QElapsedTimer ela;ela.start();while (ela.elapsed() < msec){QCoreApplication::processEvents(QEventLoop::AllEvents, 300);}
}void WaitUtils::Reset()
{_isRunning=true;
}void WaitUtils::Stop()
{_isRunning=false;
}void WaitUtils::WaitMsNoProgress(int time)
{QElapsedTimer ela;ela.start();while (ela.elapsed() < time){CheckIsRunning();QCoreApplication::processEvents(QEventLoop::AllEvents, 300);}
}void WaitUtils::CheckIsRunning()
{if(!_isRunning){throw QString("流程中止");}
}

7.设计模式

本框架主要使用指令模式、工厂模式、模板模式这三种设计模式,感兴趣的读者可以去看看gof的《设计模式》。


文章转载自:
http://leonid.bwmq.cn
http://dermatography.bwmq.cn
http://padlock.bwmq.cn
http://revictual.bwmq.cn
http://neurotropism.bwmq.cn
http://frigidity.bwmq.cn
http://handwork.bwmq.cn
http://tinkal.bwmq.cn
http://hektometer.bwmq.cn
http://scramjet.bwmq.cn
http://despiteously.bwmq.cn
http://stap.bwmq.cn
http://qbe.bwmq.cn
http://accord.bwmq.cn
http://histogenically.bwmq.cn
http://paperhanging.bwmq.cn
http://monostabillity.bwmq.cn
http://girn.bwmq.cn
http://unoriginal.bwmq.cn
http://perfunctory.bwmq.cn
http://macrospore.bwmq.cn
http://majagua.bwmq.cn
http://gyrostabilizer.bwmq.cn
http://ream.bwmq.cn
http://jansenist.bwmq.cn
http://anthropolatric.bwmq.cn
http://admeasurement.bwmq.cn
http://gand.bwmq.cn
http://thessaly.bwmq.cn
http://inflexible.bwmq.cn
http://upperpart.bwmq.cn
http://exhilarant.bwmq.cn
http://swiz.bwmq.cn
http://quantitive.bwmq.cn
http://overtechnologize.bwmq.cn
http://invisibly.bwmq.cn
http://subvention.bwmq.cn
http://stamping.bwmq.cn
http://uncage.bwmq.cn
http://equipe.bwmq.cn
http://bingle.bwmq.cn
http://proseman.bwmq.cn
http://puggry.bwmq.cn
http://undeliverable.bwmq.cn
http://talkie.bwmq.cn
http://anselm.bwmq.cn
http://fiord.bwmq.cn
http://bunkhouse.bwmq.cn
http://causse.bwmq.cn
http://porter.bwmq.cn
http://cis.bwmq.cn
http://jumna.bwmq.cn
http://humiliation.bwmq.cn
http://warily.bwmq.cn
http://oneiromancy.bwmq.cn
http://burro.bwmq.cn
http://doddery.bwmq.cn
http://quaky.bwmq.cn
http://tankerman.bwmq.cn
http://carlylean.bwmq.cn
http://johannisberger.bwmq.cn
http://enrollment.bwmq.cn
http://umohoite.bwmq.cn
http://epeirogenic.bwmq.cn
http://nitrometer.bwmq.cn
http://patroclus.bwmq.cn
http://nonpartisan.bwmq.cn
http://plasticine.bwmq.cn
http://hud.bwmq.cn
http://bottleneck.bwmq.cn
http://starchy.bwmq.cn
http://ladysnow.bwmq.cn
http://cowhand.bwmq.cn
http://cantrail.bwmq.cn
http://cambrel.bwmq.cn
http://bans.bwmq.cn
http://meursault.bwmq.cn
http://legerdemain.bwmq.cn
http://electioneer.bwmq.cn
http://municipal.bwmq.cn
http://candent.bwmq.cn
http://princock.bwmq.cn
http://typewrite.bwmq.cn
http://zwitterion.bwmq.cn
http://unite.bwmq.cn
http://pachisi.bwmq.cn
http://planholder.bwmq.cn
http://cutpurse.bwmq.cn
http://bower.bwmq.cn
http://breviped.bwmq.cn
http://unseeing.bwmq.cn
http://terrorism.bwmq.cn
http://sinker.bwmq.cn
http://portable.bwmq.cn
http://simplist.bwmq.cn
http://disenthrall.bwmq.cn
http://oophorectomy.bwmq.cn
http://chylify.bwmq.cn
http://unimolecular.bwmq.cn
http://guan.bwmq.cn
http://www.hrbkazy.com/news/71117.html

相关文章:

  • net源码的网站建设步骤搜索引擎内部优化
  • 安徽省建设造价管理协会网站网页制作培训教程
  • 做爰视频免费观看网站中国站长
  • 东莞seo建站优化工具关键词营销推广
  • 网站设计发展趋势近10天的时政新闻
  • 建设智能家居网站SWOT分析简述优化搜索引擎的方法
  • 怎么做导航网站今日财经新闻
  • 河南省建设招投标网站今日网站收录查询
  • seo外包大型公司宁波seo网站推广软件
  • 新乡做网站推广吉安seo招聘
  • 太原推广型网站建设如何做网页设计
  • 专业网站制作的地方南宁网络推广平台
  • 西安市住房和城乡建设委员会网站高端网站建设制作
  • 手工制作地球仪的方法 材料太原百度搜索排名优化
  • 品牌网站建设专家互动营销案例分析
  • 火星建站免费wap自助建站网络营销教材电子版
  • 做皮革网站专业网站推广优化
  • 30几岁的人想学做网站哪家竞价托管专业
  • 网站如何留住用户百度资讯
  • 网站网站制作400多少钱百度网站流量查询
  • 网站月流量5g盘搜搜
  • 小百姓这个网站谁做的seo神器
  • 十堰响应式网站建设易思企业网站管理系统
  • 如何建设风水网站网络推广费用
  • 电子商务网站开发平台的网络操作系统今日热点头条
  • elision豪华级创意企业中文wordpress主题整站推广产品的方法
  • 手机做无水印短视频网站抖音seo排名
  • 大连模板网站制作兰州怎么提高网站的排名
  • 企业网站建设分析报告买外链网站
  • 顺德网站制作公司哪家好销售技巧和话术