笔记
文章平均质量分 52
鱼非愚
真正的高贵是优于曾经的自己
展开
-
Matter协议解析记录
Matter 协议分析原创 2023-12-28 16:37:14 · 2355 阅读 · 1 评论 -
数字信号处理声音降噪实验
clc;clear;[x,Fs]=audioread('HQ.m4a');%加wavplay载语音信号 %sound(x,Fs);%回放语音信号 [L,W]=size(x); %语音信号长度和宽度X=fft(x);ff=(0:L-1)/(L-1)*Fs;subplot(421);plot(x);title('原始信号时域波形图');subplot(422); plot(ff,abs(X));title('原始信号频谱图');noise=0.05*randn(L,W);xn=x+原创 2020-05-26 13:05:50 · 3429 阅读 · 1 评论 -
基于单片机的智能热水箱设计代码加演示
1 系统总需求要求热水箱的额温度控制系统能完成以下功能:具备基础的提示功能、使用液晶显示、温度上下限的设定,时间的开始及结束、手动设定温度、控温范围在0℃—99℃,精度于±1℃以内、具备自动控制加热的功能。根据以上设计的方案,需要实现下面几点设计的需求:在整体上采用了AT89C52单片机芯片,其他主要模块如DS18b20测温传感器以及LCD1602液晶显示,组成实现温度的实时测量读取并显示。由于是对水温的控制测量的范围就不用再麻烦到人为的去设置而是在程序中进行写死,到时候只需要人为按键设置指定的..原创 2021-09-06 11:10:31 · 1266 阅读 · 0 评论 -
软连接文件的创建删除
/*demo(通过系统命令)*实现一个对视频文件可以操作的软连接路径*在Nginx中的HTML页面可直接访问视频文件*目录的创建,文件的链接,文件的删除*/#include <stdio.h>#include <string.h>#include <errno.h>#include <sys/stat.h> //mkdir#include <sys/types.h>#include <dirent.h> //.原创 2022-04-13 20:13:28 · 428 阅读 · 0 评论 -
更新map中已存在的value值
原因:本来想直接通过插入更新同一key对应的value发现覆盖不了。实现:#include <stdio.h>#include <string.h>#include <pthread.h>#include <unistd.h>#include <map>using namespace std;static pthread_mutex_t mtxBckLoadProgress = PTHREAD_MUTEX_INITIAL原创 2022-02-28 16:56:25 · 3569 阅读 · 0 评论 -
swagger editor使用
1.访问路径;Swagger Editor2.导入协议文件3.填写参数发送请求官方说明地址:OpenAPI Specification - Version 3.0.3 | Swagger总结说明: @SWG\Parameter()为请求的参数,需要注意一下格式;@SWG\Response()为响应的参数,最后请求的时候是列表还是一个参数,请求的格式和get的列表和参数的格式是一样的;3》需要执行命令 :以下命令可以直接生成一个seagger.json文档并把文档当到指定位置swa原创 2022-02-17 10:18:31 · 2238 阅读 · 0 评论 -
字符密码校验
1)连续相同字符如:aaAA11bb,配置后保存不成功--连续相同字符。2)用户名的密码如:用户admin,配置密码admin123--获取用户名--和密码进行字符匹配校验3)前三位及后三位相同/顺序颠倒的数字或字母如:abc11abc、abc11cba--密码的前3位和后3位不能相同--校验包含数字,字母。字符校验特殊字符:$ #?--不包含#include <iostream>#include <string>...原创 2022-02-11 14:05:55 · 762 阅读 · 0 评论 -
GUP使用率查看命令
首先呢,要使用命令lspci | grep -i vga 查看你的显卡是NVIDIA的还是Intel的。对于NVIDIA的直接装个NVIDIA的驱动就可以查看了( nvidia-smi ),这个网上有教程不多说。对于Intel的显卡,其实道理也是一样的,只是没有方法而已。Linux 中安装GPU查看工具:sudo apt install intel-gpu-tools详细用法可以man手册查看GUP使用率查看命令:intel_gpu_top渲染空间可能由常规3D操作使..原创 2021-12-10 16:38:56 · 1914 阅读 · 0 评论 -
Swagger RESTful API 文档规范
*注意编写的关键词:“必须”、“不能”、“需要”、“应当”,“不得”、“应该”、“不应该”,“推荐”、“可能”和“可选的”原文链接:http://swagger.io/specification/介绍: swagger是一个用于描述项目和文档RESTful api。 这里的规范定义了一组描述一个API所需的文件格式。 Swagger-UI项目所使用的这些文件可以显示API和Swagger-Codegen生成客户在不同的语言。 额外的工具也可以利用生成的文件,比如测试工具。定...转载 2021-11-30 16:12:48 · 473 阅读 · 0 评论 -
定时回调函数类
#ifndef _TASKTIMER_H#define _TASKTIMER_H#include <iostream>#ifdef WIN32#include <windows.h>#else#include <unistd.h>#include <sys/time.h>#include <netinet/in.h>#include <pthread.h>#endif //定义回调函数typedef...原创 2021-11-26 17:00:50 · 128 阅读 · 0 评论 -
数据结构--队列、栈(代码实现)
队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表;栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。两种结构有以下区别:(1)操作的名称不同。队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。(2)操作的限定不同。队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。 (3)操作的规则不同。队列是先进先出(FIFO),即队列的修改是依先进先出的...原创 2021-11-15 10:33:55 · 139 阅读 · 0 评论 -
数据结构--链表(代码实现)
链表分类链表分为单向链表(Singly linked lis)、双向链表(Doubly linked list)、循环链表(Circular Linked list)。应用: 1).用于数据数目事先无法确定的情况; 2).用于数据数在内存中不连续存放的情况; 组成: 1). 头指针 2). 结点(节点) 2.1 数据域 2.2 指针域...原创 2021-11-23 19:39:16 · 1238 阅读 · 0 评论 -
定时器--回调函数
回调函数讲解参考这篇#ifndef _TASKTIMER_H#define _TASKTIMER_H#include <iostream>#ifdef WIN32#include <windows.h>#else#include <unistd.h>#include <sys/time.h>#include <netinet/in.h>#include <pthread.h>#endif//定义回调函数原创 2021-11-26 17:00:26 · 1384 阅读 · 0 评论 -
数据结构--二叉树(代码实现)
一、概念一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。二叉树的特点:每个结点最多有两棵子树,即二叉树不存在度大于2的结点。 二叉树的子树有左右之分,其子树的次序不能颠倒。二、存储结构、二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。三、二叉树的性质若规定根节点的层原创 2021-11-16 17:15:36 · 856 阅读 · 0 评论 -
数据结构--哈希表(代码实现)
1、直接定制法哈希函数为关键字的线性函数如 H(key)=a*key+b这种构造方法比较简便,均匀,但是有很大限制,仅限于地址大小=关键字集合的情况产生hash冲突后在存储数据后面加一个指针,指向后面冲突的数据2、查找过程和造表过程一致,假设采用开放定址法处理冲突,则查找过程为:对于给定的key,计算hash地址index = H(key)如果数组arr【index】的值为空 则查找不成功如果数组arr【index】== key 则查找成功否则 使用冲突解决方法求下一个地址,直到arr.原创 2021-11-16 17:15:12 · 1524 阅读 · 0 评论 -
进程信号(sysclock)TestMain
主要对前面发的几篇做一个demo总测试#ifndef BCFSTATUSTYPE_HPP_#define BCFSTATUSTYPE_HPP_#include <vector>namespace BCF{ /** 状态值类型声明\n * BCF提供的所有接口,当需要用函数的返回值来表示不同的执行结果时,\n * 需将函数的返回值声明为StatusType */ enum StatusType { ST_OK =原创 2021-11-08 20:05:56 · 150 阅读 · 0 评论 -
系统精确时钟类(系统时间获取)
#ifndef BCFSYSCLOCK_HPP_#define BCFSYSCLOCK_HPP_#include <time.h>#include <sys/time.h>namespace BCF{ /** 系统精确时钟类,该类提供系统时钟相关的函数\n * 可用于相对时间的处理 */ class BCFSysClock { public: static int getOSUpTime(int* pSec, int* p..原创 2021-11-05 14:32:49 · 145 阅读 · 0 评论 -
字符串转换和处理工具类
#include <string>#include <vector>#include <map>#include <sstream>namespace BCF{ /** 字符串转换和处理工具类\n * 上层调用该类方法无须声明其实例,接口均是static成员函数. */ class String { public: typedef int (*Func)(int c); /** .原创 2021-10-29 16:36:48 · 203 阅读 · 0 评论 -
多进程间信号量类(详细版)
多进程间共享的信号量类定义#ifndef BCFPROCESSSEM_HPP_#define BCFPROCESSSEM_HPP_#include <string>#include "BCFStatusType.hpp"#include <semaphore.h>#include <fcntl.h>namespace BCF{ /** BCF信号量类定义\n * 用于多进程间共享 */ class BCFProcessSe原创 2021-11-03 15:34:19 · 261 阅读 · 0 评论 -
创建进程类
//=========================================== 15 16 void error(const char *message) 17 { 18 perror(message); 19 exit(-1); 20 } 21 22 //========================================== 23 //main function wait the Ctrl+\ to quit 24 //wai.原创 2021-11-01 20:11:18 · 82 阅读 · 0 评论 -
编译出错总结
一、类型匹配问题:1、incompatible types in assignment of ‘char*’ to ‘char [64]’可以使用strcpy();解决。2、error: assigning to an array from an initializer list//不能对数组赋值,只能对数组元素初始化或赋值。3、[Error] ‘f’ was not declared in this scopef 没有进行声明...原创 2021-10-21 13:30:35 · 8452 阅读 · 0 评论 -
c++利用iconv实现编码转换类
iconv的原型如下: size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);此函数利用函数参数,同时返回了好几个值,每个函数参数既是入参,也是出参。作为入参cd是转换句柄。 inbuf是输入字符串的地址的地址。 .原创 2021-10-18 19:14:45 · 1397 阅读 · 0 评论 -
http相关函数
// 用于读取请求详细信息的字符串类型。字符指针不为空struct http_string_s { char const * buf; int len;};struct http_server_s;struct http_request_s;struct http_response_s;// 返回服务器正在运行的事件循环 ID。这将是一个// 在 Linux 上运行时 epoll fd 或在 BSD 上运行 kqueue。这可以用来// 监听套接字等的活动。唯一需要注意的是用户.原创 2021-10-08 13:59:43 · 426 阅读 · 0 评论 -
实现使用libevent库创建服务器连接多个客户端并实现数据互发
需要的头文件包含c库、Unix系统库和envent事件库#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>/* Required by event.h. */#include <sys/time.h>#include <stdlib.h>#include <stdio.h>原创 2021-09-29 19:06:45 · 1142 阅读 · 0 评论 -
子字符串的获取与常见字符操作函数总结
先展示一段子字符串获取函数主要使用到下面介绍的strstr。#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;int getSubstrFromString(const char *buff, const char *starts, const char *ends, char *result, un.原创 2021-09-24 17:17:45 · 1282 阅读 · 0 评论 -
c++异常处理
在设计程序时,通常程序也会出错,程序的错误可以分为三种:语法错误,逻辑错误和运行时错误语法错误发生在编译和链接阶段逻辑错误是我们在编写的代码思路有问题,达不到需求目标。通过调试来解决调试方式:通过打印信息-- printf 或者 通过IDE调试跟踪查看栈信息运行时错误是指程序在运行期间发生的错误,C语言 --- perror在C++,为了更好运行和维护,引入异常(Exception)机制,让我们能够捕获运行时错误,给程序一次最后说话机会1 捕获异常在C++中,可能借助异常机制来捕原创 2021-09-13 19:52:43 · 466 阅读 · 0 评论 -
(C++)的数据类型转换
C语言类型隐式----自动转换char a = 'a';int b = a;显示---强制转换 ---- () ----不管目标类型是什么,都可以将源类型转换过去,属于比较暴力行为int a = 100;char b = (char)a;C++,除了继承C语言中的类型转换之外(不推荐),还提供四种类型转换方式static_cast 静态类型转换,它大多数情况下,跟C语言类型转换差不多reinterpret_cast 重新解释强制类型转换,一般指针使用dynami原创 2021-09-10 17:52:02 · 4352 阅读 · 0 评论 -
泛型编程之类模板
1 类模板基本使用(代码中解析)类模板与函数模板的定义和使用类似类模板中的泛型是指类中成员变量类型和成员函数中参数的类型语法:template <class T>class Test{ public: Test(T a,T b) { this->a = a; this->b = b; } private: T a; T b; };temp原创 2021-09-09 19:31:36 · 175 阅读 · 0 评论 -
泛型编程、函数模板与重载
1 泛型编程介绍泛型是指具有在多种数据类型上皆可以操作含义。在C++中,为了对类型的封装,引入泛型编程概念。STL(标准模板库)是典型的泛型编程2 泛型编程的分类通常分为两种:函数模板和类模板函数模板是一种特殊的函数,可通过不同类型来进行调用 ,而函数模板是C++中重要的代码复用方式。语法格式:函数模板中的类型指定方式:template <typename T>template <class T>T 它代表的是泛型,大家已经习惯使用T,也可以使原创 2021-09-07 10:54:30 · 149 阅读 · 0 评论 -
类的三大特性---多态
2.1 多态的概述在生活中,也有各种各样的多态情景:比如,当班主任说,8:50分钟,同学们要进直播间,上课,同学们分别进入各班级的直播间。多态意义:C++中所谓的多态(Polymorphism)是指,是由继承而产生的相关的不同的类,其对象对同一个消息会作不同响应。意义在于能增加程序的灵活性,可以减轻系统升级,维护,调用的工作量和复杂度,程序的可扩展性会大大增强。比如:在设计动物类时,会设计比如吃,睡觉等方法,对于现在的条件,只能领养狗动物类:吃,睡觉狗类等五年后,发财原创 2021-09-03 10:14:46 · 247 阅读 · 0 评论 -
类的继承性
c++中类有三大特性:封装性 继承性和多态性继承目的:在C++中,继承最主要的目的是提供代码的可重用性继承:如何判断类与类之间存在着继承呢?可通过类与类之间的关系:is-a如果两个类存在is-a的关系,那么,它们就可以使用继承has -- a 是一种包含和组合的关系,比如:电脑包含CPU,主板,硬盘1 继承与组合及继承方式语法:父类(基类)子类(派生类)class 派生类:[继承方式] 基类名{ 派生类}继承方式:private(默认继承方式) --- 私有继原创 2021-09-01 16:36:35 · 512 阅读 · 0 评论 -
类的设计及友元函数的引入
类的设计运算符重载函数类类型 成员变量普通 成员变量const 成员变量static 成员变量对于一个类而言,对象之间的数据共享,可以使用static在实际上,一个类不可能实现一个系统,那么,类与类之间必须存在着一定关系1)在一个类中,会访问另一个类的成员 ---- use a2) 在一个类中,会包含一个类的成员 ----- have a3) 在一个类设计时,它继承于某个类 ---...原创 2021-08-18 19:21:55 · 102 阅读 · 0 评论 -
对象数组及类成员变量实际存储方式
一、对象数组类是一种类型,也可以用它来声明数据比如 Test t1,t2,t3;Test tarray[ ] = {t1,t2,t3};int main(){ int i,j,k; Test t1,t2,t3; int a[] = {1,2,3}; Test array[] = {t1,t2,t3}; //在c++中,通常不会去定义一个类类型的数组, array[0].printT(); Test array1[] = {Test原创 2021-08-20 16:12:24 · 387 阅读 · 0 评论 -
const和 static在C++中的应用
1 const 修饰数据成员比如:const int a; const Test t;如果做为类的数据时,必须初始化,可以在类中声明时进行(const int t2 = 100;),但是,不推荐 或者构造函数初始化列表(这是在类对象之前唯一一次改变const成员的值的机会)2 const修饰成员函数语法: 函数返回值类型 函数名(参数列表)const { }意义:const 成员函数,承诺本函数不会修改类内的数据成员, 且不会调用其它非const成员函数class T.原创 2021-08-23 17:25:33 · 159 阅读 · 0 评论 -
C++中构造与析构函数
一、构造函数1、构造函数也是函数的一种, 构造函数的主要任务就是初始化类中成员变量在C++中,通过一个类去创建对象时,那么编译器会完成两个工作:1)给对象分配一块内存,类似于int i2)C++编译器强行调用构造函数,并且为隐式调用2、构造函数的语法特点:构造函数的函数名必须跟类名 构造函数无返回值 当我们创建类对象的时,构造函数会被自动调用,无需我们主动调用一个类中,可以有多个构造函数,构造函数之间可构成函数重载的关系无参构造函数有参构造函数clas..原创 2021-08-16 20:40:54 · 862 阅读 · 0 评论 -
文件属性获取及open函数
int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);参数说明:1.pathname要打开或创建的目标文件2.flags打开文件时,可以传入多个参数选项,用下面的一个或者多个常量进行“或”运算,构成falgs参数:O_RDONLY: 只读打开O_WRONLY: 只写打开O_RDWR: 读,写打开这三个常量,必须制定一个且只能指定一个原创 2021-08-13 17:04:21 · 439 阅读 · 0 评论 -
QT中常见的几种对话框
一 qt对话框类部件对于对话框的功能,在GUI图形界面开发过程中,使用是非常多,那么,在QT中也提供了丰富的对话框架类The QDialog class is the base class of dialog windows. QDialog 是所有对话框的基类主要被这些类继承:QColorDialog, QErrorMessage, QFileDialog, QFontDialog, QInputDialog, QMessageBox, QProgressDialog,1.1 QC原创 2021-08-09 19:14:56 · 1265 阅读 · 0 评论 -
字符串类型转换(例QT)
字符串拼接:QString str="test1";str += "test2";str += 'A';str.append("test3");qDebug() << str << endl;QString-->char*:char* MainWindow::QstringtoChar(QString str){ QByteArray ba2; ba2.append(str); //也可以 ba2 = s2.to原创 2021-08-11 19:00:35 · 344 阅读 · 0 评论 -
QT按钮类及定时器应用
一 按钮类点击按钮:QPushButton QToolButton单选按钮:QRadioButton复选按钮:QCheckBox对于按钮类来说,使能(enable)属性使用比较常见。该属性也有一对接口:set/getui->testButton->setEnabled(false);ui->testButton->isEnabled();对于按钮来说,使用一个按钮来实现两种状态,这种逻辑也是比较常见,比如:照明开关void MainWindow:原创 2021-08-06 17:20:53 · 1591 阅读 · 0 评论 -
常见c标准库及函数功能
一. <ctype.h> 函数原型 功能 int iscntrl(int c) 判断字符c是否为控制字符。 int isalnum(int c) 判断字符c是否为字母或数字 int isalpha(int c) 判断字符c是否为英文字母 int isascii(int c) 判断字符c是否为asci原创 2021-08-04 19:16:15 · 117 阅读 · 0 评论