- 博客(150)
- 收藏
- 关注
原创 MySQL补充知识点学习
MySQL数据库关键知识点摘要:1. 游标(Cursor)用于逐行处理查询结果,适合复杂业务逻辑和大量数据处理,但性能开销较大。2. 事务(Transaction)具有ACID特性(原子性、一致性、隔离性、持久性),包含提交和回滚操作,默认自动提交。3. 表设计原则包括使用自增主键、优化二进制字段存储、保存资源地址而非内容本身、添加完整注释等。4. 软删除(Soft Delete)采用标记删除而非物理删除,便于数据恢复和审计追踪,通常通过添加is_deleted或deleted_at字段实现。
2025-06-04 23:07:13
1802
原创 MySQL关系型数据库学习
MySQL是一款开源的关系型数据库管理系统,采用表结构存储数据,支持标准SQL语言。学习要点包括:1)安装配置MySQL服务端;2)用户权限管理,通过GRANT命令分配表级权限;3)配置文件/etc/my.cnf的核心参数设置;4)数据类型与表结构设计;5)连接方式(命令行/图形工具如Workbench);6)Python操作MySQL(pymysql库)及ORM框架应用;7)防范SQL注入的关键措施(参数化查询/输入验证)。文档提供了Windows安装指南和Python代码示例。
2025-06-03 23:05:15
1093
1
原创 MongoDB数据库学习
MongoDB作为分布式文档数据库,采用BSON格式存储键值对数据,集合相当于关系型数据库的表。初级学习需掌握基本概念、使用Compass图形工具/Python(PyMongo)连接数据库,创建数据库时需注意集合和文档的创建机制。中级内容涵盖模式设计(如分桶模式、树形模式)、副本集搭建(主从节点切换与数据同步)以及分片技术(数据拆分与集群管理)。分片适用于扩展RAM/磁盘空间、降低单机负载等场景。推荐结合MongoDB Atlas或Ops Manager简化运维。
2025-06-03 22:52:55
1121
原创 windows安装和部署docker
Docker是一种开源的容器化平台,支持将应用程序及其依赖打包成轻量级容器进行部署。本文介绍了Windows系统下Docker的安装方法:首先启用虚拟化功能,从官网下载Docker Desktop并完成安装(内置Docker Compose)。接着安装WSL2,通过PowerShell执行wsl --install命令部署Linux环境。安装完成后需重启系统,可使用wsl -v验证版本。文中还提供了卸载WSL发行版的方法及官方文档参考链接,包括Docker安装指南和WSL2官方安装说明。该教程适合开发者快速
2025-06-03 22:30:00
472
原创 串口通讯协议学习
见的串口硬件协议包括UART、RS-232、RS-485、RS-422、SPI和I²C,每种协议在通信方式、电平信号、拓扑结构和典型应用上有所不同。
2025-05-18 16:07:32
805
原创 蓝牙通讯协议学习
传统蓝牙(RFCOMM)和低功耗蓝牙(BLE)在通信协议和使用方式上有显著差异。传统蓝牙模块(如HC-05)通过RFCOMM/SPP协议直接透传串口数据,无需UUID,而BLE模块(如HM-10)基于GATT协议,需通过服务UUID和特征UUID进行通信。传统蓝牙模块通常使用固定通道传输数据,而BLE模块则需要通过AT指令或扫描工具获取UUID。
2025-05-18 15:34:36
1012
原创 【每天学习一点点】使用Python的pathlib模块分割文件路径
Python的pathlib模块提供了一种面向对象的方式来处理文件系统路径,比传统的os.path更加直观和易用。通过pathlib,可以轻松地分割、合并和处理文件路径。例如,使用Path对象可以获取路径的父目录、文件名、后缀等信息,还可以处理多级路径、相对路径和多个后缀的文件。此外,pathlib还提供了检查路径属性的方法,如判断路径是否为文件或目录,以及路径是否存在。pathlib的这些功能使得路径操作更加直观和安全,特别是在跨平台开发时,它能自动处理不同操作系统的路径分隔符问题。
2025-05-08 22:18:22
382
原创 工具分享:通过滑块拉取CAN报文信号数值自动发送报文
CAN报文发送工具使用wxpython进行开发,配套Excel模板可以通过修改Excel自定义界面展示的信号名称和信号的属性;同时,工具支持导入现场采集的报文数据自动按照配套Excel模板定义的报文发送周期进行模拟发送。
2025-05-07 21:28:20
993
原创 MinIo安装和使用操作说明(windows)
桶(Bucket):MinIO中存储对象的容器,类似于文件夹。将MinIo的服务端和客户端的.exe都下载好。对象存储:存储非结构化数据,如图片、视频等。
2025-05-07 14:51:32
655
原创 使用PyQt5绘制水波浪形的柱状显示流量—学习QTimer+QPainterPath
进入学习Python开发上位机界面的第二阶段,学习如何开发自定义控件,从常用的控件入手学习,本期主要学习如何使用PyQt5绘制水波浪形的柱状显示流量。但是最后我放弃了,因为水波的效果达不到我想要的。
2025-04-05 11:22:46
698
原创 【学习篇】fastapi接口定义学习
假设您有一个自定义异常,您(或您使用的库)可能 .UnicornExceptionraise并且您希望使用 FastAPI 全局处理此异常。您可以使用以下命令添加自定义异常处理程序:@app.exception_handler()
2025-04-04 23:07:00
1172
原创 【学习篇】pandas进行数据清洗
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。Pandas 提供了丰富的功能,包括:数据清洗:处理缺失数据、重复数据等。数据转换:改变数据的形状、结构或格式。数据分析:进行统计分析、聚合、分组等。数据可视化:通过整合 Matplotlib 和 Seaborn 等库,可以进行数据可视化。需要记住的示例,对自己理解pandas的数据结构有很大的帮助。
2025-04-01 11:00:04
399
原创 分享一个Pyside6实现web数据展示界面的效果图
然后,让我们来看下子DS直接给我实现的web界面效果吧。数据展示界面有点大,就只截图一小部分给你看看DS是多么的优秀(当然大家都知道DS的优秀)。后续我也会尝试DS推荐的“结合 FastAPI + React 前后端分离”方案,等方案落地了再和大家分享吧。
2025-03-29 22:46:37
373
原创 性能优化:python中的状态机
使用状态机可以优化包含大量`if-else`逻辑的Python代码,使其更简洁、可维护,并在某些情况下提升性能。
2025-03-22 22:39:18
545
原创 嵌入式基础知识学习:SPI通信协议是什么?
基本特性全双工同步通信:支持同时发送和接收数据,通过主设备提供的时钟(SCLK)实现精确时序同步。主从架构:一个主设备(Master)控制一个或多个从设备(Slave),通过片选信号(SS/CS)选择通信对象。四线制接口:包括SCLK(时钟)、MOSI(主发从收)、MISO(主收从发)、SS(片选)四根信号线,硬件连接简单。高速传输:无固定速率限制,实际应用中可达10 Mbps甚至更高。工作原理数据交换:主从设备通过移位寄存器实现数据交换,每个时钟周期传输1位数据,通常从最高位(MSB)开始。
2025-03-22 22:14:18
580
原创 嵌入式基础知识学习:UART是什么?
基本特性异步通信:无共享时钟线,依赖起始位和停止位标记数据边界,通过双方约定的波特率实现时序同步。全双工传输:支持同时发送(TX)和接收(RX)数据,使用独立引脚实现双向通信。简单硬件接口:仅需TX、RX和共地(GND)三根线,适合远距离、低成本场景。数据帧结构起始位:1位低电平(逻辑“0”),标志数据传输开始。数据位:5~9位(通常为8位),从最低有效位(LSB)开始传输。校验位(可选):奇偶校验位,用于检测数据错误(如偶校验、奇校验)。
2025-03-22 22:01:25
596
原创 从OSI七层网络模型角度了解CAN通信协议
CAN通信协议的网络架构基于OSI七层模型进行设计,但实际实现中根据其应用场景(如汽车电子、工业控制等)进行了简化和优化。通过分层架构,CAN实现了从底层电气特性到高层应用协议的完整生态,成为工业与汽车领域的主流通信方案。
2025-03-20 21:58:44
1403
原创 CAN通信转TCP/IP通信协议解析
最近项目开发受限于开发版只有一路CAN口和多个CAN通信对象的帧ID一样,考虑采用转换模块将CAN通信转成TCP/IP通信,间接实现获取CAN报文数据的目的。
2025-03-20 21:53:56
617
原创 Linux环境如何使用周立功的.so进行二次开发
重新编译.so除了controlcan.h 文件,还需要controlcan.c文件。controlcan.c文件是实际实现 controlcan.h 中声明的函数的代码。没有 controlcan.c,你无法生成真正的 .so 文件,因为 .so 文件需要包含这些函数的具体实现。test.c:使用了 controlcan.h 中定义的函数和数据结构,实现了具体的 CAN 通信逻辑,包含了设备的打开、初始化、数据发送和接收等功能。需要注意的是目前只有CANFD类型的才提供aarch64系统的驱动,
2025-03-05 20:22:02
617
原创 VS Code使用Copilot (GitHub Copilot)插件自动按照注释生成代码
使用PyQt5实现自定义控件,控件的基本功能是用户设置流量数值,柱状图的水波能够到达相应的水平线。然后,按下Enter键等待1s内的时间,Copilot自动给你生成注释提示你这个自定义控件生成代码的步骤,按下Tab键接受这个建议。
2025-02-23 17:55:32
1094
1
原创 PyQt5中自定义控件的技巧
PyQt中提供了强大的2D绘图系统,可以使用相同的API在屏幕上和绘图设备上进行绘制,主要基于QPainter、QPainterDevice和QPainterEngine这3个类。QPainter一般在部件的绘图事件paintEvent()中进行绘制,首先创建QPainter对象,然后进行图形的绘制,最后记得销毁QPainter对象。QFont用于文本绘制,由字体属性组成。控件样式设置:在控件箱中选择的控件通常具有默认的样式和外观,开发者可以通过修改控件的样式表或者设置样式属性来自定义控件的外观。
2025-02-23 14:37:29
315
原创 PySide6中如何实现TableWidget全选后Ctrl+C自动复制表格内容(包含列标题和行标题)
使用PySide6进行工具开发,通过TableWidget选择某个单元格进行Ctrl+A全选再Ctrl+C复制后,打开excel选择某个sheet页签的某个单元格进行Ctrl+V,实现自动复制全表内容(包括列表头)。在复制单元格内容时,将换行符 (\n) 替换为特殊标记(例如 |||),以避免 Excel 将其解释为单元格内的换行。使用制表符 (\t) 分隔列,使用换行符 (\n) 分隔行,确保 Excel 能够正确解析。
2025-02-23 13:45:20
349
原创 PySide6中如何实现TableWidget跨行列粘贴Excel表格内容
在 PySide6 中,QTableWidget 默认不支持跨行或跨列粘贴内容。要实现跨行列粘贴功能,需要自定义粘贴逻辑。可以通过重写 QTableWidget 的 dropEvent 或 paste 方法来实现。使用PySide6进行工具开发,通过TableWidget实现跨行列粘贴Excel表格内容。列数是固定的(因为列标题是固定的),而只根据粘贴内容动态增加行数。如果粘贴的内容超出表格列范围,超出的部分会被忽略。
2025-02-22 22:21:06
207
原创 Linux设置CAN波特率的几点认识
在CAN(Controller Area Network)通信中,波特率(bitrate)是网络通信中的一个关键参数,它决定了数据在总线上的传输速率。波特率的设置必须确保通信双方(即所有节点)都使用相同的速率,否则通信将无法正确进行。CAN总线上的每个报文都是以位(bit)的形式发送的。如果波特率不匹配,接收到的数据位将无法正确对齐,导致数据无法被正确解析。
2025-02-19 21:55:18
768
原创 PyQt5中使用多线程执行多个任务操作
现代操作系统大多支持多线程概念,每个进程至少有一个线程,所以即使没有使用多线程编程技术,进程也含有一个主线程,所以也可以说,CPU中执行的是线程,线程是程序的最小执行单位,是操作系统分配CPU时间的最小实体。线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时,该进程所产生的线程都会被强制退出并清除。在采用多线程编程技术的程序中,多个任务由不同的线程去执行,不同线程各自占用一段CPU时间,即使线程任务还没完成,也会让出CPU时间给其他线程去执行。
2025-02-14 08:32:54
1110
原创 关于使用numpy进行数据解析性能优化的几点认识
如果数据解析存在大量for循环操作,优先考虑使用numpy自定义函数提升数据解析性能。NumPy的矢量化操作通常不是通过Python层面的for循环实现的,而是通过底层C语言代码实现的,这些代码经过高度优化,能够高效地处理整个数组。关于数组执行的先后顺序,NumPy的矢量化操作通常是并行执行的,但这取决于底层实现和硬件支持。NumPy本身并不保证操作的执行顺序,但它保证最终结果的正确性。总之,当你使用NumPy的矢量化操作时,你通常不需要担心内部是如何实现的,因为NumPy已经为你处理了这些细节。
2025-02-05 12:58:42
928
原创 【每天学习一点点】通过使用@property装饰器来创建一个属性的getter和setter方法
property装饰器:这个装饰器将一个方法转换为相同名称的只读属性。在这里,reset_state方法被转换为一个属性,你可以通过实例访问它(如instance.reset_state),而不需要调用它(如instance.reset_state())。@reset_state.setter装饰器:这个装饰器允许你定义一个方法来设置reset_state属性的值。这样,当你尝试给reset_state赋值时(如instance.reset_state = new_value),这个方法会被调用。
2025-02-02 10:00:38
258
原创 使用PyQt5绘制带有刻度的温度计控件
进入学习Python开发上位机界面的第二阶段,学习如何开发自定义控件,从常用的控件入手学习,本期主要学习如何使用PyQt5绘制带有刻度的温度计控件。
2025-02-01 20:29:45
865
原创 PySide6如何实现点击TableWidget列表头在该列右侧显示列表选择框筛选列数据
鼠标单击选择需要筛选的表格列标题,在列标题右侧出现列表选择框,选中列表选择框的某个数据,相应的表格上就只显示符合筛选条件的数据。
2024-12-25 20:12:56
623
原创 Linux如何设置redis可以外网访问—执行使用指定配置文件启动redis
前言:先按照文章:Linux下安装Redis(超详细教程)安装redis成功后,想通过Redis Insight工具建立和linux上面redis服务的连接,查看redis的数据,这个过程中遇到了很多问题,在此记录下。
2024-12-25 15:12:20
844
原创 PySide6如何使用自定义委托实现在TableWidget填充颜色
信号在报文中的排布最直观的是用不同颜色表示,有几个信号表格中就有几种颜色,一个信号最少占用一个bit,也就是说一条长度为8个字节的报文最多可以有64种不同的颜色。需要64种不同的颜色,想要通过一个8*8的表格选取不同单元格的颜色实现采集64种不同颜色的目的。
2024-12-21 14:57:44
1050
原创 PySide6如何使用委托实现在TableWidget上面绘制带箭头的直线表示CAN报文信号的排布
实现和CANDB++软件信号在一帧报文中的排布一样的界面效果。
2024-12-16 18:47:45
394
原创 pyside6打包生成.exe,如何保证窗口使用的图标不丢失
生成一个.qrc资源文件,其中icon/icon_log.ico表示相对路径icon文件夹下面的icon_log.ico图片,这个图片就是窗口需要使用的,但是直接打包.exe的时候窗口不能使用这个图标,因为图标没有被.exe包含,图片必须放在生成.exe的同一路径下才可以通过相对路径访问这个图标供窗口使用。在上面的代码中,:/icon/icon_log.ico是资源路径,它告诉PySide6从资源文件中查找名为icon_log.ico的图标。,它告诉Qt这是一个资源路径而不是文件系统中的实际路径。
2024-11-21 12:43:29
566
1
原创 cantools模块如何解析DBC文件
报错信息导致的原因是加载DBC文件之后,得到的db是None。目前还没有找到原因,我采取的解决办法是换cantools模块解析DBC文件,发现生成的.exe文件功能执行正常。
2024-11-20 21:32:37
372
原创 如何安装cantest驱动
先在周立功官网上搜索“CANTEST”,在“下载资料”选择如下的应用软件进行安装,安装成功后能打开cantest软件界面,但是插入can盒后无法读取can报文,因为还没有安装正确的can盒驱动程序。周立功官网搜索“can驱动”,在“CAN驱动合集”找到CAN盒对应的设备类型,例如我买的CAN盒是USBCANII,相应的我选择windows的CAN驱动下载。下载驱动后直接点击默认安装,安装完成后,在电脑的“设备管理器”出现“ZLG USBCAN”字样表示驱动安装成功,可以设别电脑上插入的CAN盒设备。
2024-08-21 10:45:07
1842
通过滑块拉取CAN报文信号数值自动发送报文:https://blog.csdn.net/Logintern09/article/details/127106646?spm=1011.2415.3001
2025-05-05
集装箱空箱调运的文献综述
2025-05-05
博弈论凸博弈特性分析及行生成算法在合作博弈核心计算中的应用研究
2025-05-05
博弈理论演化博弈论在经济学中的应用:动态均衡与选择机制解析
2025-05-05
【演化博弈理论】基于演化博弈的班轮航线网络设计:任务分配与动态联盟策略分析
2025-05-05
文献研读:The coopetition game in international liner shipping
2023-05-14
智能电池信息界面的.ui文件-博客《使用PyQt5实现添加工具栏、增加SwitchButton控件》的.ui
2024-08-08
python实现车辆路径轨迹移动的上位机程序
2024-05-25
python实现九宫格的车辆路径轨迹上位机程序
2023-05-19
python调用32位的ControlCan.dll实现can报文的收发
2022-11-05
文献研读:Stable Cooperation in Dynamic Vehicle Routing Problems
2023-02-07
文献研读:在集装箱班轮航运网络中逆转港口循环方向
2023-02-06
32位ControlCan.dll 供实现周立功can设备报文收发调用
2022-09-29
用于求解单配送中心带硬时间窗约束VRP的多智能体进化算法
2022-10-21
DBC文件可以解析J1939 DM1多包故障报文吗?
2023-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人