自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 本地套接字

服务端#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <sys/types.h>#include <sys/un.h>//抽象路径名#define file_path "nochs"int main(int argc, char *argv[]){ int listen_fd;

2022-03-14 14:10:32 121

原创 线程同步实现

C++11#include <iostream>#include <thread>#include <mutex>#include <condition_variable>#include <chrono>#include <list>using namespace std;/* mutex(互斥量) * *********************************************************

2022-03-11 10:24:07 994

原创 Linux平台基于消息队列的C++简易封装

#pragma once#include <cstdio>#include <cstdlib>#include <sys/msg.h>#include <cstring>#include <atomic>typedef void (*mq_recv_call_handler)(int recv_len,char *recv_buf);struct msg_st{ long int msg_type;//作为一个标志,非

2022-03-11 10:18:25 1470

原创 c/c++调用Lua,接口简单封装

封装源码extern "C"{#include "src/lua/include/lua.h"#include "src/lua/include/lauxlib.h"#include "src/lua/include/lualib.h"}#include <iostream>#include <cstring>#include <string>#include <stdarg.h>#include <unordered_map&g

2022-03-11 09:49:34 457

原创 基于select的IO多路复用样例

NTcp.h文件#ifndef NTcp_H#define NTcp_H#include <iostream>#include <functional>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <cstring>#include <thread>#include <string>#

2022-03-11 09:05:56 205

原创 示例`CMakeLists.txt`

示例CMakeLists.txt。#1 设置cmake版本cmake_minimum_required( VERSION 3.9 )#2 设置项目名称project( cli_modbus )#3 设置编译器版本set( CMAKE_CXX_STANDARD 11 )set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")# #打印JYSP_HOME环境变量# message(STATUS "JYSP_HOME:$ENV{JYSP_

2022-01-17 10:59:17 579

原创 split

/*buf:待分割字符串delim:分隔符*/std::vector<std::string> split(const std::string &buf, const std::string &delim){ std::vector<std::string> elems; size_t pos = 0; size_t len = buf.length(); size_t delim_len = delim.length();

2021-12-27 14:19:38 220

原创 QPlainTextEdit设置文本颜色与光标跟踪

分段字体颜色,光标跟踪并自动添加到底部//1、获取当前行(块)数int count = ui->plainTextEdit->blockCount();//2、创建文本块QTextBlock = ui->plainTextEdit->document()->findBlockByNumber(count - 1);//3、设置光标位置ui->plainTextEdit->setTextCursor(QTextCursor(block));//4、创建T

2021-02-07 10:45:29 4139

原创 比较:strcmp(),strncmp(),strcasecmp(),strncasecmp()

一、strcmp vs strncmp1、strcmp头文件:#include <string.h>函数原型: int strcmp(const char *str1, const char *str2)描述: 比较str1和str2的大小参数:str1 —— 待比较的第一个字符串str2 —— 待比较的第二个字符串返回值:str1 > str2 返回值 > 0str1 = str2 返回值 = 0str1 < str2 返回值 < 02、s

2020-12-31 09:43:41 1679

原创 获取线程ID的方法

#获取线程ID的方法获取线程ID的方法Linuxphread_createpthread_selfsyscallWindows_beginthreadexGetCurrentThreadIDC++11std::this_thread::get_id和std::thread::get_idLinuxphread_create调用pthread_create函数时,第一个参数在函数调用成功后可以得到线程ID:#include <pthread.h>// 线程IDpthread_t i

2020-11-27 10:49:47 7084 1

原创 Modbus规约简介

ModBus通讯协议Modbus是一种串行通信协议,通过此协议,控制器相互之间、控制器经由网路(如以太网)和其它设备之间可以通信。他已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。协议采用主从通信模式,典型的主设备包括现场仪表和显示面板,典型的从设备为可编程逻辑控制器(PLC)。主要优点:内容公开、无版权要求、不用支付额外的费用、硬件简单、容易部署。一、传输方式1、协议数据单元Protocol Data Unit,PDU,协议数据单元由功能码+数据结构构成,

2020-11-02 09:04:09 2983

原创 Qt添加自动化备注

文件注释/*******************************************************************************@作者: XXX*@添加时间:%{CurrentDate:ISO} %{CurrentTime:ISO}*@所属项目:%{CurrentProject:Name}*@当前文件:%{CurrentDocument:FilePath}*@文件描述:*@三十功名尘与土,八千里路云和月*********************.

2020-09-29 13:44:17 499

原创 基础算法的基础实现

冒泡平均时间复杂度 :O(n²) 最好情况 :O(n)最坏情况 :O(n²) 空间复杂度 : O(1)稳定性:稳定代码实现:void BubbleSort(int *num,int size){ while (true) { for (int i = 0; i < size -1; ++i) { if (num[i] > num[i+1]) {...

2020-04-24 14:30:50 143

原创 关于c/c++标准库的记录

printf家族1、printf, fprintf, sprintf, snprintf, printf_s, fprintf_s, sprintf_s, snprintf_s定义于头文件 <stdio.h>(1) ​int printf( const char *format, … );​(C99 前)​int printf( const char *restrict f...

2020-04-21 10:35:43 306

原创 记录大小端说明

大小端说明内容取自《深入理解计算机系统》(第三版)某些机器选择在内存中按照从最低有效字节到最高有效字节的顺序存储对象,而另一些机器则按照从最高有效字节到最低有效字节的顺序存储。前一种规则——最低有效字节在最前面的方式,称为***小端法***。后一种规则——最高有效字节在最前面的方式,成为***大端法***。大多数Intel兼容机只用小段模式。如:Windows...

2020-04-20 09:44:16 121

原创 懒汉模式的常规使用

设计模式之单例模式@TOCSingleton Pattern这里不做模式的分析讨论,仅针对使用过的用法进行演示。最早使用的方法:.h#include <mutex>class A {public: explicit A(); ~A(); static A *Instance() { //检测实例是否存在 if (!self) { std::...

2020-04-13 10:13:20 300

原创 我的ECharts介绍

一、什么是EChartsECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9 /10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计...

2019-12-13 16:33:47 920

原创 QT+ECharts实现绘图

(QT+Web使用摸索记录)2019年11月8日 09点55分,这是我第一次在csdn写东西,肯定有很多逻辑问题,但是没关系,我就当这是写给我自己看的,(这就是写给我自己看的)。。。为什么使用Qt+web之前一直在qt环境中绘制2d的图表,包括折线图、柱状图等,控件也使用过qwt、qcustomplot、qtchart等,它们之间的优劣不做阐述,不是本次的重点。目前的项目使用qwt绘制频谱...

2019-11-08 10:56:57 5680 5

空空如也

空空如也

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

TA关注的人

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