自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 固高控制卡高速捕获

前几年做相机飞拍的时候,需要运动轴在高速运动的过程中,触发相机拍照,当年写的没做记录,然后忘记了。最近又碰到了高速轴在运动时候,触发Laser采集信息的功能。查了下固高说明书,需要用高速捕获功能。mode为捕获模式,CAPTURE_HSIO0(HSIO0 口捕获) CAPTURE_HSIO1 HSIO1。这里需要注意的点是,pBuf给出的位置是要触发的位置相对于运动起始位置的相对值,而不是绝对值!触发可以输出电平,也可以输出脉冲,看自己的实际使用情况。指令,把某一编码器的捕获模式设置为。

2024-01-20 11:00:21 630

原创 Matlab 最小二乘法

最小二乘法

2022-07-29 14:26:09 2469 1

转载 高斯曲线拟合推导过程

高斯曲线求解推导

2022-06-01 10:13:42 1530

转载 最小二乘法拟合直线

转载

2022-06-01 09:50:37 217

原创 Qt 信号与槽总结

最近写项目时候,碰到一个功能需求。底层类子线程循环运行时,碰到问题可以让主界面随时弹警告框。于是写了个信号,由底向主界面类发送信号,主界面实现槽函数功能即可。写的信号如下:void signalPopupMessageBox(QMessageBox::StandardButton &resultBtn, const QString &title, const QString &text, QMessageBox::StandardButtons buttons...

2022-03-23 10:34:18 1145

原创 Qt moveThread问题

在用moveThread时,本意是想避免主界面卡死,把运行时间久的放到子线程里去执行。实例如下:extern QProcessControl *g_pProcessCtrl;#define SAFE_DELETE(e) if(e!= nullptr){delete e; e=nullptr;}QDlgMain::QDlgMain(QWidget *parent) : QMainWindow(parent){ m_ui.setupUi(this); g_pProcessCtrl

2022-02-14 19:30:00 707

转载 CALLBACK

2.1 函数指针回调在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。因此,要实现回调,必须首先定义函数指针,请看下面的例子:void Func(char *s);// 函数原型void (*pFunc) (char *);//函数指针可以看出,函数的定义和函数指针的定义非常类似。一般的化,为了简化函数指针类型的变量定义,提高程序的可读性,我们需要把函数指针类型自定义一下。typedef void(*pcb)(char *);回调函数可以象普通函数一样被

2022-01-11 10:16:30 54

原创 设计模式--代理模式

定义:为另一个对象提供一个替身或占位符以控制对这个对象的访问。类图如下:示例代码://代理模式//a 类包含B类,a b类共同实现相同的接口class Subject{public: virtual void saleBook() = 0;};//实体书店class RealSubjectStore:public Subject{public: virtual void saleBook() { cout <<"sale book"<&

2021-10-19 22:57:18 50

原创 设计模式--组合模式

定义:允许将对象组成树形结构来表现 “整体/部分” 层次结构。组合能让客户以一致的方式处理个别对象及对象组合。说白了,就是类似于树形结构。 只是它要求子节点和父节点都具备统一的接口。类图如下:示例如下:比如我们常见的电脑上的目录,目录下面有文件夹,也有文件,然后文件夹里面还有文件及文件夹。这样一层层形成了树形结构。示例代码如下:#include <iostream>#include <stdio.h>#include "string"#includ..

2021-10-10 23:16:39 50

原创 迭代器模式

定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又暴露其内部的表示。类图如下:示例代码typedef int Object;const int SIZE = 5;//迭代器基类class MyIterator{public: virtual void First() = 0; virtual void Next() = 0; virtual bool IsDone() = 0; virtual Object CurrentItem() = 0;};//集合.

2021-10-10 22:57:32 38

原创 设计模式--模板模式

模板模式:定义一个算法的步骤,并允许子类为一个或多个步骤提供实现。模板模式很简单,类图如下:示例:星巴克做饮料时,都有些固定的步骤。比如调咖啡的步骤为:1.把水煮沸 2.用沸水冲咖啡粉 3.把咖啡倒进杯子 4.加糖和牛奶调茶的步骤为:1.把水煮沸 2.用沸水泡茶叶 3.把茶倒进杯子 4. 加柠檬。两种饮料制作方法固定步骤都一样,不同的是步骤2 和4 ,那么我们可以把步骤做成固定的算法模板,而步骤2 4做成虚拟的方法,让子类不实现。示例代码如:class Drin..

2021-10-10 10:45:51 50

原创 设计模式--外观模式

外i观模式:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。模型如下图示例:假设理财的时候,有股票、期货及债权可供投资,如果我们想进行稳定投资,那么就买债权,想高收益,买股票和期货。外部使用的时候,需要自己来调用子系统类。如果我们做个基金接口,那么外部直接调用基金这个类就可以了。示例代码如下://股票class Stock{public: void BuyStock() { cout <<"投资股票"<&.

2021-10-10 10:29:00 44

原创 雷赛控制卡总线方式的坑

最近在做一台设备,用的雷赛总线控制方式,第一次用,碰到一些坑,记录下。以前我用的雷赛控制卡采用的控制一直是脉冲式。1.复位方式不同。//仅贴出不同之处//脉冲式 复位时的最小速度可以为0 高速 低速给0 和1 就行if ( 0 != dmc_set_profile( nCardID, nAxisID, dMinVel, dMaxVel ,dAccTime,dDecTime, dStopVel) ){ return false ;}//回零模式 2 二次回零 EZ_count

2021-10-09 17:24:43 4661

原创 适配器模式

定义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。例如之前举例子的鸭子,鸭子基类可以飞,可以叫。但是火鸡不属于鸭子,它可以叫,但是飞的距离不如鸭子远,方法里飞行定义也不一样,这时,就需要写个适配器来把火鸡伪装成鸭子。示例class Duck{public: virtual void fly() = 0; virtual void quake() = 0;};class Turkey{public: void turkeyFly()

2021-10-07 23:24:51 64

原创 设计模式--单例模式

单例模式:确保一个类只有一个实例,并提供一个全局访问点。在实际工作中,写控制软件时候,我都会写一个控制中心类,所有的控制都通过这个控制中心类来操作,所以这个控制类只允许实例一个对象。实现单例模式有两种:一种是懒汉式,一种是饿汉式。懒汉式 实例如下:class Single{private: Single() { cout<<"begin create"<<endl; Sleep(1000); cout <<"end create"&l

2021-10-07 12:48:27 67

原创 装饰者模式

装饰者模式又叫包装模式,把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要添加功能时,只需要有选择、按顺序的使用装饰功能来包装对象。设计模式如下图:一个简单的例子:一辆小汽车,基本功能是可以跑。但是我要对这个汽车增加功能,比如让它可以飞翔,让它可以在水里跑,或者其他功能。当基类的汽车,需要什么功能,我就添加什么功能。把功能设计成类。设计代码如下:class car{public: virtual void show() = 0;};class .

2021-10-03 19:54:25 61

原创 观察者模式

观察者模式:定义了对象之间的一对多依赖,当一个对象改变其状态时,它所有的依赖者都会收到通知并自动更新。应用场景举例:例如公司的老板行踪,秘书都知道,那么员工想知道老板的行踪,就通过秘书,多个员工就形成了观察者(observer),老板秘书就成了主题(subject),当老板的行踪发生变化时,秘书要通知各个员工。代码示例://老板秘书 为主题类class SubSecurity;//员工 为观察类class Observer{public: Observer(SubSe

2021-10-03 19:21:58 86

原创 函数指针做函数参数

之前一直不太明白函数指针做函数参数,为什么有回调函数。今天总算明白了,记录下。函数指针做函数参数可以实现调用者与实现者进行了分离,在保证外部调用框架不变的情况下,只需要给不同的函数指针即可实现不同的作用,有点类似于C++的多态。测试代码如下:int addFunc(int a, int b){ cout << "addFunc..."<<endl; return a + b;}int addFuncA(int a, int b){ cout <&l

2021-10-01 23:16:20 151

原创 函数指针基本语法

1.如何定义一个函数类型2.如何定义一个函数指针类型3.如何定义一个函数指针(指向一个函数的入口地址)int addNum(int a,int b){ cout << " func..."<<endl; return a+b;}int main(){ addNum(1,2); int result = 0; //定义一个函数类型 { typedef int(MyFuntAdd)(int a,int b); //定义函数类型 MyFunt

2021-10-01 22:43:10 89

原创 Head First设计模式--策略模式

最近在看设计模式,此文章仅为记录自己读后的理解。策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。设计原则:多用组合,少用继承。从鸭子应用说起:某公司准备做一套相当成功得模拟鸭子游戏。游戏会有各种鸭子,可以做各种动作,比如游泳、呱呱叫。此系统设计了一个鸭子类,让各种鸭子继承此类。类结构如下:各方法都采用虚函数,由子类来继承并实现。如果要添加鸭子飞行的动作,也写成虚函数的话。会造成不具备飞行的鸭子类也要实现此虚函数,导致代码修改量比较大.

2021-09-28 15:15:30 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除