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

昆明设计网站马克互联网主题 wordpress

昆明设计网站,马克互联网主题 wordpress,湛江仿站定制模板建站,wordpress如何设置幻灯片啊0.前言 最近一年多的时间一直在开发设备控制相关的软件#xff0c;加上之前在聚光的两年时间#xff0c;前前后后开发这种设备控制类型的上位机软件也有三年的时间了。总结出了一套基于Qt的上位机编程框架#xff0c;核心思想类似于C#的依赖注入#xff0c;对象的初始化都…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.hclass BaseFactory { public:BaseFactory();virtual BaseItem* CreateInstance(QString concreteType);template typename T1int Register(){int preCount_map.count();const QMetaObject meta T1::staticMetaObject;_map.insert(meta.className(),meta);if(preCount1!_map.count()){throw QString(%1注册失败请检查!).arg(meta.className());}return _map.count();}protected:QMapQString,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.hclass 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 QSharedPointerQWidget GetConfigWidgetZZZ();protected:QString _name;QJsonObject _obj;QJsonObject _other;signals:public slots: };#endif // BASEITEM_HBaseManager主要定义了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 QElapsedTimerWaitUtils::WaitUtils(QObject *parent) : QObject(parent) {}bool WaitUtils::_isRunningfalse;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() {_isRunningtrue; }void WaitUtils::Stop() {_isRunningfalse; }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://www.w-s-a.com/news/768078/

相关文章:

  • 江苏建站速度忿先进的网站建设
  • 广州天河建站公司com域名注册多少钱
  • 成都网站建设推广好vs2013如何做网站
  • 茶叶网站建设模板企业网站备案要多少钱
  • 怎么查网站找谁做的win主机伪静态规则 wordpress
  • 轻云服务器菁英版 多个网站北京it外包服务商
  • 售后服务 网站建设阳江seo优化
  • 网站建设后怎么赚钱wordpress调用导航栏
  • 特产网站设计六色网站
  • 服务器网站备案做网站公司如何赚钱
  • 怎样进行站点优化荣成市有做网站的吗
  • 合肥建设工会网站芜湖做网站建设公司
  • 玉林市住房和城乡建设局网站网站开发百灵鸟
  • 网站怎么做双机房切换建设部网站2015年第158号
  • 郑州服务设计公司网站色块的网站
  • 网站设计所用到的技术做网站添加mp3
  • 凡科做的微网站怎样连接公众号seo李守洪排名大师
  • 温州网站开发网站的制作东莞寮步伟易达电子厂
  • 北京网站设计制作关键词优化微信小程序开发推广网站建设优化规划书
  • 杭州临平网站建设开发公司将购房款划给总公司的法律责任
  • 广东外贸网站推广分类wordpress
  • 聚美优品网站建设方案商城和营销型网站建设
  • 比较著名的seo网站如何建设网站?
  • 如何做商业网站最火wordpress主题
  • 建设网站需要哪些软硬件条件wordpress文章页标题优化
  • 网站建设功能需求文档wordpress 1g1核1m
  • 学做窗帘要下载哪个网站用户反馈数据分析软件园
  • 宁晋网站建设多少钱产品宣传推广方式有哪些
  • delphi做网站阿里巴巴官网首页登录入口
  • 游戏网站怎么建设新建wordpress模板