自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唐顺才的博客

后端开发技术探讨:linux、c/c++/qt/golang、存储/即时通讯工具/智能硬件

  • 博客(221)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android Studio控制台输出中文乱码问题

1.找到studio的安装目录下的studio64.exe.vmoptions启动配置文件;2.打开文件,最后一行添加 -Dfile.encoding=UTF-8;3.重启android studio;

2024-03-28 21:40:23 522 1

原创 安卓app之--计算器

写了一款安卓计算器,不是很完善但是能用。

2024-03-16 11:36:35 388

原创 《一个电子工程师的12年》

redis、mysql、sqlite、kafka、zeromq、mongodb、http/https、rest api、mqtt、thread pool、go routine等等,陷入了复杂重复的循环中,中间,我见过形形色色的人,有的很傻,有的很自私,有的很狭隘,有的很极端,有的很要面子,有的很无耻,有的很卑鄙,有的人能当着你的面出尔反尔,这些人的所作所为有适合能惊掉你的下巴……2012年专科毕业,单片机没有学会,keil也不熟悉,protel 99se不熟悉,烙铁不熟悉,就突然毕业了。

2024-02-29 00:06:40 35 1

原创 boost正负压电路设计和原理分析

如图所示,为模拟电子电路中的Boost电路,可同时提供正压、负压。虽经打板实测,但不可用于商业目的,否则后果自负。

2024-02-04 14:27:23 452

原创 多谐振荡电路分析

图片源自b站,红色注释为通过微信截图添加,原理应该分析的比较清晰。multisim仿真文件暂不提供。

2024-02-04 14:23:48 320

原创 从二极管到linux服务器

tcp(单片机信号控制)、udp(游戏)、mqtt(iot物联网传感器)、websocket(游戏、新媒体)、webrtc(用于流媒体、IM聊天软件)需要对寄存器、单片机内部总线、iic、spi、uart、can、modbus、fsmc(8080/8060)协议、sdio协议比较了解。2)模拟电路,LM358运算放大器、电压跟随器、PLL锁相环电路、加法电路、乘法电路、三角波、锯齿波、方波、sin波、恒流/压电路。对os任务切换时寄存器的功能有理解。低功耗蓝牙、wifi、zigbee、2.4G、433等。

2023-11-24 11:39:26 272

原创 qRegisterMetaType 用法

注意:如果自定义类型中包含了指针成员,需要使用qRegisterMetaTypeStreamOperators进行注册。此外,在使用qRegisterMetaType注册类型之前,需要确保类型的定义已经被包含在头文件中。qRegisterMetaType是Qt中用于注册自定义类型的函数。它允许将自定义类型与Qt信号槽系统无缝集成,以便在信号槽传递过程中自动进行类型转换和传递。

2023-11-02 14:54:39 987

原创 《设计一款2轮车充电桩系统》

以深圳为例,深圳有400万台电动2轮车,以每个月电费20元计算,深圳每个月用在2轮车充电上的费用为8000万左右。1年10个亿的市场规模。前景可观,竞争也非常激烈。本文主要讨论技术实现方案。

2023-10-11 20:32:55 543

原创 上N下P三极管推挽电路----》交越失真问题的解决

三极管的导通条件是Vbe > 0.7V,在正弦波驱动波形介于-0.7v ~ +0.7v之间时,上N管子截止、下P管子也截止,此时波形失真。,使其处于微导通状态,一旦正弦波波形值不等于0v时,管子就会导通。通过二极管的钳位能力(1N4148),给上下2个管子加入。(关于三极管的伏安特性曲线、米勒效应,请自行百度)

2023-09-23 00:18:08 427

原创 开关电源boost升压电路米勒效应

在mos管存在3个寄生电容:Cgs,Cgd,Cds,其中Cds与变压器漏感产生LC振荡,体现在D级脉冲高压和振荡,导致mos管发热,变压器漏电感以热量的形式发散出去。本篇文章只给方案和效果,电路原理不展开还会增大篇幅,关于米勒平台、LC振荡、mos管寄生电容、pcb寄生电感、变压器漏感、rcd吸收电路等细节知识可自行百度。在改进版本中,增加了一个在mos管漏极和vcc直接加入一个tvs管,钳位电压为10v,mos管漏极电压应力为20v。加入rcd吸收电路,将mos管漏极的应力通过电容缓冲,通过电阻消耗。

2023-08-02 09:02:10 574

原创 arm-linuxdeployqt编译

【代码】arm-linuxdeployqt编译。

2023-06-01 19:30:00 489

原创 Qt 状态机实现按钮条约效果

【代码】Qt 状态机实现按钮条约效果。

2022-11-19 21:33:50 387 1

原创 lvgl 8 多style属性设置

全部修改一个小部件的属性,大概最多需要调用64 *111 次api, 其中111 个api,设置64个不同的参数和值。当时实际开发时很少有人这么干,默认的属性占到一大半,一小半属性才需要额外设置(例如坐标、颜色、图片、透明度、渐变色、边框、轮廓、pad填充等常规属性需要额外修改)。一个object对应的style最多有2^6(64)个,每个style有最多111个属性值。而lvgl 8中,每一个part(一个控件最多8个part)的每一个状态(最多有9个状态)的属性,都需要有一个单独的style 变量。

2022-10-16 18:39:43 1050

原创 lv_meter

lvgl8开始,gauge和line_meter被移除,新增lv_meter实现仪表盘功能。

2022-10-05 12:58:10 1657

原创 QFileInfo常规方法

代码】QFileInfo常规方法。

2022-07-29 11:27:38 455

原创 QgrapicsView实现画板

代码】QgrapicsView实现画板。

2022-07-20 15:44:56 360

原创 c++基类未指定virtual虚函数,内存泄漏示例

c++ 基类的析构函数,需要加 virtual ,否则产生内存泄漏

2022-07-07 13:05:35 435

原创 开源IM软件----rabbit

开源聊天软件

2022-06-02 11:02:29 1957 1

原创 《k3s 源码解析7 ---- k3s agent启动流程》

k3s agent 启动流程:1)解析配置文件作为参数、可被cli指定的参数覆盖2)创建tunnel隧道服务(也就是正向代理服务器)(代理服务器除了负载均衡作用,更重要的是提供稳定的网络连接:用长连接保活、用短连接提供业务。这样可以避免网络抖动对业务的干扰/破坏)3)加载linux kernel module,通过exec.Command(),执行命令行:modprobe --overlay|–nf_conntrack|–br_netfilter|–iptable_nat|ip6table_na.

2022-05-29 02:21:16 675

原创 《k8s 源码解析1 ---- 插件机制》

插件定义:用于执行目标明确的独立功能可执行文件,或任务触发。 例如:一个用于压缩日志的shell脚本,其它语言(python、c++、java、golang)可执行文件。插件的实现方式:exec函数组:k8s中插件的实现方式:// 显然,k8s中插件的实现方式有2个接口:查找可执行文件(的绝对路径)、与参数 环境变量一起调用exec函数组// PluginHandler is capable of parsing command line arguments

2022-05-17 15:54:27 392

原创 键盘特殊符号

在代码中写流程图时,需要一些特殊符号,键盘不方便输入,这里用文档记录下来,以方便使用╮╭╯╰►▼▲例如以下代码的注释部分:// Component defines the lifecycle of managed components./// Created ――――――――――――――――――――――►(Stop)―――╮// ╰―(Init)―► Initialized ―――――――►(Stop)――╮│// ╰―(Ru

2022-05-11 15:32:36 696

原创 从零实现文件加密、解密(基础原理演示)

有一个做底端嵌入式的朋友请求帮忙做一个加密、解密的功能。 蓝牙一个广播包是32byte,因此不可能用rsa等加密算法。这里用异或进行加密原理:1 ^ 1 = 01 ^ 0 = 10 ^ 1 = 10 ^ 0 = 0上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>// 密钥const unsigned char PUB[32] = { 0x01, 0.

2022-05-10 10:50:16 1299

原创 《k3s 源码解析6 ---- k3s参数解析》

在使用k8s、k3s的时候没有指定参数,大家注意到除了kubeadm init/join时指定了一些必要的初始化参数(网段、ip、端口等),在运行(kubectl命令)时是不需要指定参数的,当然如果你额外指定参数也是可以的。原因如下:防止记错参数,成熟的组件会帮你把参数写到配置文件中(配置文件往往用json、yaml格式编码,k8s中是用yaml编码)简化使用难度,不可能有人能把几十个参数、参数的顺序记忆在脑海里。配置文件中的参数可以被环境变量、cli输入的参数覆盖掉,保留灵活度 1 配置.

2022-05-03 13:43:10 752

原创 《k3s 源码解析5 ----master逻辑源码分析2》

一、k3s server启动入口:暂时写到这里,后续追加。

2022-04-30 18:37:44 863

原创 k8s 市场现状闲聊

关于k8s 的运维方式,dashboard与kubectl cli哪个更好:2年前曾经与某做跨境电商的产品经理聊这个问题,我说linux cli是天花板。 而对方用很不屑的语气说你的命令行敲错了怎么办? 说用web界面才是王道。草……昨天,去高新园与一个做游戏的聊天,对方的观点就比较正。 我们一致认为:命令行是运维人员应当追求的,而web界面是给小白鼠用的。不同的人观点不一样,只能选择,不能说服别人去认同你的观点,因为知识体系,工作背景不同。昨天也提到阿里云提供了k8s 一键部署,用起来也很一

2022-04-30 11:42:04 2892

原创 golang slice去重

以前去面试,某个面试题目如下:数据类型如下:type ele struct { id int lastTime time.Time}请编写函数,对Id重复的元素,只保留lastTime最新的元素。分析:先排序后去重速度会比盲目去重要快,按照id排序后需求去重的数据比较集中,比按照时间戳排序要快。 方案如下:按照id排序在排序后的slice上面放置窗口滑动块,窗口的范围是:id连续相同的元素func RemoveDuplicates(islice []ele, dna int) []

2022-04-29 10:12:23 1568

原创 《k3s 源码解析4 ---- k3s重要数据结构》

k3s完全兼容k8s,我解释一下是为什么:因为k3s的底层数据结构(写入etcd/mysql/sqlite/dsqlite数据库的格式),是完全照搬k8s的数据结构。api完全兼容。 对外表现相同,底层数据相同,只是实现方式不同(举个例子: 一个爆炒大虾,一个油焖虾)。我认为 k3s/k8s数据结构的3个用途:缓存从api中解析出来的参数,为了后面的处理逻辑更方便的去引用api的参数。方便响应api时,用marshal() 去生成json/protobuf序列化的数据方便写入数据库(et

2022-04-25 21:53:03 1784 4

原创 《k3s 源码解析3 ---- k3s集群搭建》

一、安装说明:主机名要求主机名不能一样,如果主机名一 样,可以通过参数--with-node-id添加一个随机后缀, 或者通过参数--node-name或者环境变量$K3S_NODE_NAME指定主机名操作系统基本上可以跑在所有的Linux系统上,官方支持并测试的系统包括Ubuntu 16.04 (amd64)Ubuntu 18.04 (amd64)Raspbian Buster*硬件资源CPU:1内存:512MB(建议至少1G)磁盘:K3s性能依赖数据库的性能,建议跑在S.

2022-04-25 01:16:21 1825

原创 《k3s 源码解析2 ----master逻辑源码分析》

一、k3s 源码入口: 二、k3s master入口: 三、配置文件数据结构://pkg/cli/cmds/server.go var ( ServerConfig Server // 从cli、配置文件加载配置参数)type Server struct { ClusterCIDR cli.StringSlice // (networking) IPv4/IPv6 network CIDRs to use for pod IPs (default: 10.42.

2022-04-20 20:05:21 1665

原创 golang 1.8泛型测试

golang 目前最新版本是1.8.1, 泛型功能测试一把。golang.org 官方例子 main.go内容如下:package mainimport ( "fmt")type Number interface { int64 | float64}func main() { // Initialize a map for the integer values ints := map[string]int64{ "first": 34, "second": 12,.

2022-04-19 22:09:12 1883

原创 《k3s 源码解析1----源码目录结构》

k3s 是Rancher Labs (知名开源组织) 发布的k8s的一个精简发行版本,内核是k8s,外设是经过魔改的,完全兼容k8s 标准资源定义。相当于debian之与linux,ubuntu之与liinux。k3s 官网地址: 一、k3s定义:K3s - 轻量级 Kubernetes轻量级 Kubernetes。生产就绪,易于安装,内存减半,全部在小于 100 MB 的二进制文件中。非常适合:边缘计算物联网CI持续集成开发arm嵌入式 k8sk8s集群适用的情况为什.

2022-04-18 00:25:45 1028

原创 基于linux cli( 命令行) 的翻译工具推荐

推荐2个cli翻译工具:1 有道出品的:fy2 谷歌翻译:trans从易用性上来说,fy cli比较美观好用,支持彩色。 从功能上来说,trans支持的语言更多,更强大。fy安装使用:0) 安装apt install fy -y1) 汉译英root@jack-VirtualBox:~/translate-shell# fy 你好吗/var/lib/gems/2.7.0/gems/fy-1.0.1/lib/fy/fanyi.rb:17: warning: URI.escape i

2022-04-05 19:10:17 4770

原创 k8s 部署android实例

环境:root@k8s-master:~/work/ingress-controller/1.1.1/test/deployment/android-x86# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTI

2022-03-13 19:34:05 4544 2

原创 禁止ubuntu自动更新

ubuntu系统默认会更新一些系统组件,如果不禁止自动更新,则系统会中的垃圾文件会越来越多。禁止系统更新:APT::Periodic::Update-Package-Lists "1";APT::Periodic::Download-Upgradeable-Packages "0";APT::Periodic::AutocleanInterval "0";改为:APT::Periodic::Update-Package-Lists "0";APT::Periodic::Download-.

2022-03-12 15:49:49 1058

原创 如何扩大ubuntu的ubuntu--vg-ubuntu--lv空间

在使用virtualbox安装ubuntu时,默认被选中了lvm安装根分区,且根分区比较小。因此磁盘不够用。扩大ubuntu的ubuntu–vg-ubuntu–lv空间1 查看根分区空间:root@jack:~# df -hFilesystem Size Used Avail Use% Mounted onudev 948M 0 948M 0% /devtmpfs .

2022-03-12 14:11:32 5787 3

原创 helm部署ingress nginx controller

helm是用于ingress nginx controller部署的一个客户端工具,有专用的服务站点和资源仓库。helm官方网站链接一、仓库添加:1 )Add Repository (stable)$ helm repo add nginx-stable https://helm.nginx.com/stable$ helm repo updateAdd Repository (experimental)$ helm repo add nginx-edge https://helm.ng.

2022-02-08 00:17:09 1553

原创 golang 编译错误:unknown revision xxx

go mod处理第三方依赖包时出现unknown revision xxx错误。原因:github上面的一些开源组件,用的git版本是最新的版本。 而编辑机的git版本比较旧,有的git命令没有,导致下载失败。解决方法:升级git到最新版本(目前是2.35.1)。sudo apt update # 更新源sudo apt install software-properties-common # 安装 PPA 需要的依赖sudo add-apt-repository ppa:git-core/pp

2022-01-31 22:34:48 3991

原创 golang 网络心跳包设置

socket 心跳:import ( "log" "net" "time" "github.com/felixge/tcpkeepalive")func main() { addr := "0.0.0.0:8080" tcpAddr, err := net.ResolveTCPAddr("tcp", addr) if err != nil { log.Fatalf("net.ResovleTCPAddr fail:%s", addr) } listener, err

2022-01-31 15:32:57 903

原创 k8s 部署ingress-nginx v1.1.1(完整版)

部署ingress nginx controller1.0 获取ingress controller部署yaml文件:[root@k8s-master test]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml[root@k8s-master ingress]# [root@k8s-master ing

2022-01-30 13:05:58 3240 1

原创 k8s deployment部署、更新

nginx.yaml:apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspec: selector: matchLabels: app: nginx replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx

2022-01-24 00:48:44 4352

Red_Hat_Gluster_Storage-3.5-Administration_Guide-en-US.pdf

gluster 运维手册(482页英文原版文档)

2021-01-29

空空如也

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

TA关注的人

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