- 博客(47)
- 问答 (1)
- 收藏
- 关注
原创 [GN] Uart协议解码器源码各个方法
作用:将协议解析后的结构化数据(如完整数据包、校验结果、原始字节)传递给其他Python模块,用于自动化处理、存储或分析。目标用户:软件开发工程师、自动化测试脚本,用于程序化数据消费。
2025-04-11 13:24:28
678
原创 [GN] UART协议解码器源码解析
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考:协议解码框架的核心库。bitpack:将二进制位序列打包为整数的工具。floor/ceil:用于时间戳的精确计算。RX = 0 # 接收方向TX = 1 # 发送方向通过常量区分数据方向,简化后续逻辑判断。
2025-04-09 14:55:40
935
原创 [GN] sigrokdecode 模块
libsigrokdecode 为我们提供了一个 sigrokdecode 模块。sigrokdecode.Decoder 类5个常量解码成功, 返回三个特殊变量: samplenum 数值 、 matched 元组 、pinvalues 元组。
2025-04-08 12:43:30
973
原创 [GN] 通讯协议 - Uart
在阅读libsigrokdecode源码之前,先学习通讯协议。so hard!!通用异步串行接收器/发送器,通常称为UART,是一种广泛应用于嵌入式领域的串行异步、全双工通信协议串行和并行串行传输距离长。还分为同步串行通信: I2C SPI 通信双方 需要使用频率一致的时钟信号异步串行通信:uart通信双方 需要知道波特率数据长度起始位和停止位波特率:每秒传输多少个码元UART 通道有两条数据线。一个 RX 引脚和一个 TX 引脚(RX 用于接收,TX 用于发送)。
2025-04-07 15:43:18
376
原创 [GN] sigrokdecode 模块学习指南 --- 准备阶段
libsigrokdecode广泛应用于电子工程和嵌入式开发领域,通过它,开发者可以解析复杂的数据流,比如解读I2C、SPI通信等。使用libsigrokdecode结合sigrok-cli或图形界面工具如PulseView来分析硬件通信。在调试嵌入式系统时,利用预定义的解码器来快速验证外设通讯协议。开发自定义解码器时,遵循项目提供的Python接口文档,保证解码器的可维护性和兼容性。: 用于生成configure脚本的 Autoconf 配置文件。: 用于生成Makefile。
2025-04-06 12:40:09
922
原创 [GN] Python3 面向对象
在调用生成器运行的过程,每次遇到yield时候函数会暂停并保存当前所有的运行信息,返回yield的值。__private_attrs: 两个下划线开头,声明该属性为私有,不能在类的外部被使用。在类的内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数。__private_method:两个下划线开头,声明该方法为私有,不能在类的外部被使用。希望输出的值转化为字符串,可以用repr()和str()迭代器有两个基本的方法:iter() 和 next()
2025-04-05 16:52:42
519
原创 [GN] Python3基本数据类型 -- 与C的差异
Numbers(数字);String(字符串);Tuple(元组);Dictionaries(字典)序列类型包括 字符串、列表、元组、集合和字典。(集合和字典不支持索引、切片、相加和相乘操作)创建可以使用{} 或者 set();但创建空的必须是set();元组中的元素值不允许删除。is not 两个标识符不是引用自不同一个对象。键是唯一的,不可变的(如字符串,数字,元组)元组使用小括号();元组中的元素值不允许修改。集合是一个无序的不重复元素序列。2//4 除法 一个整数。2/4 除法 一个浮点数。
2025-04-04 23:01:09
673
原创 [GN] 车300笔试记
没想到双非coder这次能在车300笔试中依靠算法储备给了我面试判断点是否在多边形内: 这不经典计算几何问题,太板了,还好不是在线纯手敲。部署到linux: 刚好我有服务器,一行命令的事远程debug: 刚好知道2023版IDEA远程开发使用牛客看看大家建不建议写,果然有人觉得麻烦不写。果然我能有面试是别人觉得麻烦不写了…
2024-04-21 17:03:00
802
3
原创 [GN] Spring Security 和 SHiro的配置使用
Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型。注解来进行权限校验。这个注解标记在方法上时,Shiro 会自动识别并在方法执行前进行权限校验。其中 doGetAuthenticationInfo是是登陆用到,还未介绍到,下面将介绍登录逻辑。方法被调用时候Shrio会自动检查当前用户是否有权限。Shrio安全框架更灵活和简单,代码易读使用简单。在上面ShiroConfig加入开启注解。Shiro 中,你可以使用。
2024-04-01 10:59:00
977
1
原创 [GN] 前后端身份认证:session身份认证,JWT认证
浏览器 服务器验证,服务器session存储信息。携带token去请求 -----> 服务器校验合法并返回信息。不安全 加密算法和信息都暴露 ---- 所以非敏感信息并且短期。浏览器登陆请求 ----> 服务器创建token。存储占用空间太大 ----- 但是客户端存储 服务端很轻松。浏览器
2024-04-01 09:02:06
479
原创 [GN] 23种设计模式 —— 常见设计模式学习总结
本编文章仅为个人学习 23种模式中‘常见’的设计模式,创建型模式(Creational Pattern)工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(Structural Pattern):适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模
2024-01-30 23:45:57
1199
原创 [GN] 设计模式—— 创建型模式
简单工厂: 唯一工厂类,一个产品抽象类,工厂类的创建方法依据入参判断并创建具体产品对象。工厂方法:多个工厂类,一个产品抽象类,利用多态创建不同的产品对象,避免了大量的f-else判断。抽象工厂:多个工厂类,多个产品抽象类,产品子类分徂,同一个工厂实现类创建同术中的不同产品,减少了工厂子类的数量。
2024-01-29 23:58:33
1944
原创 [GN] 设计模式——面向对象设计原则概述
一个类只负责一个功能领域中的相应职责类承担的职责越多,它被复用的可能性就越小而且一个类承担的职责过多,就相当于将这些职责耦合在一起本篇知识设计模式开篇基础知识。后面将会补充我学习过程中的设计模式。
2024-01-29 18:52:03
801
原创 [GN] 面向对象程序三大特性:封装、继承、多态
(1)保证数据的安全性,防止调用者随意更改数据。(例如,在封装一些常用的工具类时,会把类的无参构造器私有private化或者在类名前使用abstract修饰,不准创建该类,达到只能调用,继承,不能修改的效果)(2)提高代码的复用性。(把公用的方法放到一个类中,谁需要谁直接就调用)提供了大量能使我们快速便捷地处理数据的函数和方法。接口 变量名 = new 实现类();父类 变量名 = new 子类();子类必须要对父类中方法进行重写。通过父类的引用调用重写的方法。
2024-01-28 22:24:37
403
原创 [GN] Vue3.2 快速上手 ----常用API及其新组件
只将对象的顶层属性设置为只读,对象内部的嵌套属性仍然是可变的。返回的对象不再是响应式的,不会触发视图更新。—— 在需要将响应式对象传递给非。用于获取一个响应式对象的原始对象,适用于只需保护对象顶层属性的场景。可以确保它们收到的是普通对象。的库或外部系统时,使用。变为响应式对象,可以使用。
2024-01-26 21:26:21
762
原创 [GN] Vue3.2 快速上手 ---- 核心语法(终章)_3
路由器工作模式命名路由to的三种写法嵌套路由路由传参query参数params参数路由的props配置replace 和 push编程式导航重定向
2024-01-20 19:33:04
1219
原创 [GN] Vue3.2 快速上手 ---- 核心语法_1
- `Vue2`的`API`设计是`Options`(配置)风格的。- `Vue3`的`API`设计是`Composition`(组合)风格的。### Options API 的弊端`Options`类型的 `API`,数据、方法、计算属性等,是分散在:`data`、`methods`、`computed`中的,若想新增或者修改一个需求,就需要分别修改:`data`、`methods`、`computed`,不便于维护和复用。### Composition API 的优势可以用函数的方式,更
2024-01-19 22:42:59
1119
原创 [GN] 使用vue3+vite+ts+prettier+eslint
做到代码格式等统一,此时,esint和prettier就要登场了。eslint是代码检测工具,可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义。prettier是代码格式化工具,作为代码格式化工具,能够统一你或者你的团队的代码风格。=> 安装prettier+eslint包,并做一系列的配置
2024-01-15 23:11:04
1069
原创 [GN] nodejs16.13.0版本完美解决node-sass和sass-loader版本冲突问题
npm install 运行vue项目时候。
2024-01-13 16:41:53
1185
原创 ACM板子
有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限(但不能超过一堆),最后取光者得胜。所以取到(0,0,0,0)就获胜了 ---- 异或和不等零 先手必胜。
2024-01-09 11:05:17
950
原创 [GN] 微服务开发框架 --- Docker的应用 (24.1.9)
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考构建自定义的镜像时,并不需要一个个文件去拷贝,打包。我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。而描述上述信息的文件就是Dockerfile文件。Dockerfile就是一个文本文件,其中包含一个个的。
2024-01-09 10:51:09
1188
原创 [GN] 微服务开发框架 --- Gateway网关的应用 (24.1.3)
微服务配置中心两种方法: 更建议后者通过yml配置方式 – 有固定的31种通过实现实现GlobalFilter接口 自定义配置过滤器下章更网关部分!
2024-01-04 13:44:36
1001
1
原创 [GN] 微服务开发框架 --- 配置中心的应用 (24.1.2)
考研狗回顾开发知识,准备春招了 😥😥😥配置中心两种方法: 更建议后者通过注解方式通过调用实现类下章更网关部分!
2024-01-04 12:22:12
938
1
原创 [GN] 微服务开发框架 --- 注册中心的应用 (24.12.30)
考研狗回顾开发知识,准备春招了—😥😥😥 > 一个微服务一个数据库>> - 不同微服务,不要重复开发相同业务> - 微服务数据独立,不要访问其它微服务的数据库> - 微服务可以将自己的业务暴露为接口,供其它微服务调用【远程调用】## 微服务间远程调用.依托此结构两个注册中心的用法类似-----明日更配置中心。
2024-01-04 11:43:29
864
1
原创 Git 常用命令 以及 IDEA进行版本管理
Git是一个分布式的版本控制系统,用作Linux内核代码的管理,Git同样可以作为部署工具所使用。Untracked未跟踪(未被纳入版本控制)Tracked已跟踪(被纳入版本控制)Unmodified未修改状态Modified已修改状态Staged已暂存状态注意:这些文件的状态会随着我们执行Git的命令发生变化。
2022-11-18 22:46:39
305
2
原创 抽象类和接口对比
抽象类使用abstract修饰类抽象类当中可以包含普通类所能包含的成员抽象类和普通类不一样的是,抽象类当中可以包含抽象方法。int cnt;}在Java中,接口可以看成是:多个类的公共规范 (一些没有实现的方法,封装到一起)使用interface来修饰接口接口当中的成员方法不能有具体的实现int name;} }接口是更加抽象的抽象的类;抽象类里的方法可以有方法体;接口里的所有方法都没有方法体(JDK7.0之前)。接口体现了程序设计的多态和高内聚低耦合的设计思想。
2022-11-10 15:43:31
271
1
原创 [GN] LeetCode----链表
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。递归的终止条件是链表中没有节点,或者链表中只有一个节点,此时无法进行交换。依次从队列中取 n个元素进行拓展,然后进入下一次迭代。可以通过递归的方式实现两两交换链表中的节点。求当前队列的长度 n。
2022-11-08 20:06:27
109
3
原创 [GN] 计算机组成原理 ----- 第二章
定长8位字长的字,采用补码形式表示8位二进制整数,最高位是符号位,可表示的数范围为 -128 ~ 127。a₀,若要x>-0.5,则请给出对应a₀,a₁,a₂,…已知x=-0.01111,y=+0.11001,用补码运算方法求下面式子的值,利用双符号位判断溢出。用n+1位字长表示定点数(其中1位为符号位),它所能表示的小数范围是**0≤|N|≤1-2。已知x=0.10110,y=0.111,请用不恢复余数法计算[x÷y]补,并给出对应真值。设x的补码形式为1x₁x₂x₃x₄,则满足()时,x>-8成立。
2022-11-06 15:46:32
1292
2
原创 [GN] 计算机组成原理 ----- 第一章
若某CPU的时钟周期为0.4μs,每个机器周期平均包含4个时钟周期,每个指令周期平均包含2.5个机器周期,则计算机的平均指令执行速度为多少MIPS?CPI = (指令条数 * CPI)/ 主频 得: (12-10)S = n* (5 - 2 ) /1.2G。从采用的器件角度看,计算机的发展大致经历了五代的变化。8位的微机系统是指每个存储单元中所能存储的二进制代码的位数。至今为止,计算机中的所有信息仍以二进制方式表示的理由是。CPI:执行一条指令所需的时钟周期数。IPS:每秒执行多少条指令;
2022-11-05 19:05:01
237
2
原创 ubuntu20.04安装nginx并配置代理
在开发完前端项目并把它打包成静态的网站之后,需要上传到服务器上,才能让用户来访问。我们就需要在服务器上安装服务器程序: 如 Nginxserver:代表一个服务器的配置,可以配置多个 server 块,每个 server 之间通过监听不同的端口,来处理不同的请求。listen:监听端口号,默认为80端口server_name:服务器域名,未申请域名可直接填IP地址,也可不填root :配置项目所在地址index:配置HTML主页try_files:当出现意外情况时,访问该页面。
2022-11-04 15:16:58
3469
3
原创 [GN] 如何使用MySQL进行主从复制及其原理
我们来思考后端MYSQL数据库只有一台时候,会有那些问题?1、单点故障服务不可用2、无法处理大量的并发数据请求3、数据丢失所以通过主从复制后,它的优点就很明显1、如果主节点出现故障,那么我们就直接将服务切到从节点,来保证服务立马可用。2、如果并发请求特别大的时候,我们可用进行读写分离操作,让主库负责写,从库负责读。3、如果主库数据丢失,但从库还保存一份,减少数据丢失的风险。(1)MySQL数据库默认是支持主从复制的,不需要借助于其他的技术,我们只需要在数据库中简单的配置即可。
2022-11-03 17:34:07
161
6
原创 防火墙相关命令介绍
查看防火墙状态关闭防火墙打开防火墙开放端口sudo ufw allow 端口号关闭端口sudo ufw deny 端口号重启防火墙。
2022-11-03 16:59:52
305
2
原创 [GN] 使用spring cache缓存数据
我们知道内存的读取速度远大于硬盘的读取速度。当需要重复地获取相同数据时,一次一次地请求数据库或者远程服务,导致在数据库查询或远程方法调用上消耗大量的时间,最终导致程序性能降低,这就是数据缓存要解决的问题。Spring Cache 是一个非常优秀的缓存组件。自Spring 3.1起,提供了类似于@Transactional注解事务的注解Cache支持,且提供了Cache抽象,方便切换各种底层Cache(如:redis) 使用Spring Cache的好处1,提供基本的Cache抽象,方便切换各种底层Cac
2022-11-02 22:58:22
434
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人