自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子皿--啥都不会的菜鸟

努力学习,希望有朝一日能够从事后台服务器开发相关工作!

原创 任务延时的配置

文章目录1 任务延时的配置 1 任务延时的配置 延时要求: 延时考虑因素: 系统延时特点: 看一下系统延时的准确度问题: 系统延时接口: 软延时: 硬件定时器: 系统事件对定时的影响: 比如通信时序: 需要改成: 具体的延时方案如下: 参考资料: 手把手教你学用嵌入...

2020-04-30 15:18:25 100 0

原创 网络聊天程序的完善

文章目录1 网络聊天程序的完善1.1 消息提示1.2 系统消息1.3 用户名验证1.4 快捷发送 1 网络聊天程序的完善 可以完善的一些关键点: 消息提示:当客户端收到消息时,能够提示用户。 系统消息:服务端向客户端主动发送消息。 用户名验证:用户名中不能包含非法字符。 快捷发送:按回车键发送输...

2020-04-30 14:51:24 126 0

原创 管理员权限的实现

文章目录1 管理员权限的实现1.1 设计分析1.2 代码实现 1 管理员权限的实现 1.1 设计分析 问题: 如何定义聊天室管理员这个角色? 如何区分管理员和普通聊天用户? 如何实现管理员所具备的功能? 管理员的定义: 管理员是聊天室的“超级用户”,拥有特殊权限: 因此,在服务端必须记录每...

2020-04-30 14:02:23 684 0

原创 私聊模式的设计与实现

文章目录1 私聊模式的设计与实现1.1 设计分析1.2 代码实现 1 私聊模式的设计与实现 1.1 设计分析 私聊模式: 用户在聊天时能够指定消息的接收者。 对聊天界面进行如下改动: 简单的看一下Qt中的列表类QListWidget: 我们需要增加USER消息: 然后增加MSGP消息,...

2020-04-29 18:00:16 104 0

原创 登录功能和公聊功能的实现

文章目录1 登录功能和公聊功能的实现1.1 分析1.2 代码实现 1 登录功能和公聊功能的实现 1.1 分析 问题: 如何设计客户端和服务端之间的消息交互流程? 消息类型主要分为如下两种: 控制消息: 与聊天内容无关,设计用户状态。 连接、断开、踢人、禁言等。 文本消息: 与聊天...

2020-04-27 17:25:33 92 0

原创 解析扩展分区的数量

文章目录1 解析扩展分区的数量1.1 需求1.2 实现原理1.3 代码实现 1 解析扩展分区的数量 1.1 需求 怎么样在一个磁盘上划分超过4个分区呢? 1.2 实现原理 可以通过在扩展分区下任意划分多个逻辑分区,来突破主分区4个的限制。 扩展分区的各个逻辑分区,通过“链式”结构来连接。 1...

2020-04-27 10:35:01 85 0

原创 服务端程序的初步实现

文章目录1 服务端程序的初步实现1.1 设计实现1.2 代码实现 1 服务端程序的初步实现 1.1 设计实现 服务端设计初步: 设计要素分析: 一般情况下,聊天服务端只负责消息传递。 客户端的连接与断开是两个关键操作,必须消息通知。 服务端能够随时对指定客户端发送消息。 如何设计使得服务端能...

2020-04-25 14:09:56 147 0

原创 客户端程序初步加入网络通讯的功能

文章目录1 客户端初步加入网络通讯的功能1.1 设计方案1.2 代码实现 1 客户端初步加入网络通讯的功能 1.1 设计方案 在主窗口类中使用客户端类: 初步设计方案: 主窗口通过ClientDemo进行消息收发。 主窗口通过TxtMsgHandler接口收取消息。 网络消息通过TextMes...

2020-04-25 13:50:16 133 0

原创 系统时钟节拍设置

文章目录1 系统时钟节拍设置 1 系统时钟节拍设置 系统时钟节拍配置示意图: RTOS任务延时队列组织示意图: 节拍速度与系统负荷: 选择合适的节拍时间: 参考资料: 手把手教你学用嵌入式操作系统 ...

2020-04-24 17:59:37 159 0

原创 利用邮箱实现数据通信

文章目录1 利用邮箱实现数据通信 1 利用邮箱实现数据通信 问题分析: 解决方案: 使用邮箱完成数据传递和同步功能。 消息通信分析: 示例代码: /** * @brief tOS应用示例 * @details * @author 01课堂 李述铜 http://01ketang.c...

2020-04-24 17:14:44 170 0

原创 利用全局数据实现数据通信

文章目录1 利用全局数据实现数据通信 1 利用全局数据实现数据通信 问题分析: 解决方案: 示例代码: /** * @brief tOS应用示例 * @details * @author 01课堂 李述铜 http://01ketang.cc * @date 2017-06-01 *...

2020-04-24 16:36:21 81 0

原创 环状同步造成的死锁问题

文章目录1 环状同步造成的死锁问题 1 环状同步造成的死锁问题 竞争资源造成的死锁: 环路等待事件引发死锁: 示例代码如下: /** * @brief tOS应用示例 * @details * @author 01课堂 李述铜 http://01ketang.cc * @date 20...

2020-04-24 16:23:02 93 0

原创 使用信号量实现简单双向同步

文章目录1 用信号量实现简单双向同步 1 用信号量实现简单双向同步 问题需求: 两个或多个任务相互协同合作完成某一项任务。 解决方案: 使用A信号量发送启动命令,再使用B信号量报告工作完成。 代码示例: /** * @brief tOS应用示例 * @details * @autho...

2020-04-24 15:44:15 198 0

原创 用事件标志组实现多事件的单向同步

文章目录1 用事件标志组实现多事件的单向同步 1 用事件标志组实现多事件的单向同步 问题需求: 某一任务等待事件中一个或多个事件同时发生。 解决方案: 事件发生时,设置指定事件标志位,任务4等待所有这些标志位全部置位才运行。 示例代码: /** * @brief tOS应用示例 *...

2020-04-24 15:08:21 77 0

原创 解析主分区数量

文章目录1 解析主分区数量1.1 实现原理1.2 代码实现 1 解析主分区数量 1.1 实现原理 先看一下PC机上分区的情况: 为什么要使用分区? PC如何解析磁盘中的分区的? 原理如下: 分区标志类型: 1.2 代码实现 xdisk中添加相关数据结构定义: /** * 文件系统类型 ...

2020-04-24 14:27:59 86 0

原创 二叉搜索树的算法实现

文章目录1 二叉搜索树简介2 二叉搜索树的算法实现2.1 节点结构体的定义2.2 二叉搜索树插入节点 1 二叉搜索树简介 当我们要在一组数中要找到 26?你该怎么找? 答案: 从左至右 或 从右至左遍历一次,找到这个数字。 当我们把数据进行排序(按照从小到大的顺序排列)后,再查找相应的这条记录?...

2020-04-24 11:56:04 144 0

原创 二叉树的基本概念

文章目录1 二叉树的基本概念2 二叉树的分类2.1 完全二叉树2.2 满二叉树2.3 平衡二叉树2.4 二叉搜索树2.5 红黑树 1 二叉树的基本概念 二叉树是一个每个结点最多只能有两个分支的树,左边的分支称之为左子树,右边的分支称之为右子树。 二叉树具有如下特性: 在非空二叉树中,第 i层的...

2020-04-24 10:51:09 74 0

原创 用邮箱实现多事件的单向同步

文章目录1 用邮箱实现多事件的单向同步 1 用邮箱实现多事件的单向同步 问题需求如下: 某一任务等待多个事件中的任意事件发生。 解决方案: 事件发生时,向邮箱中投递事件消息,任务在邮箱上等待消息然后处理。 代码如下: /** * @brief tOS应用示例 * @details ...

2020-04-24 10:34:25 112 0

原创 客户端界面实现及登录功能实现

文章目录1 客户端界面实现及登录功能实现1.1 界面设计1.2 界面实现及实现登录对话框的功能 1 客户端界面实现及登录功能实现 1.1 界面设计 界面设计: 界面实现方案: 使用不同Layout对组件进行嵌套布局。 1.2 界面实现及实现登录对话框的功能 代码如下: QLoginDial...

2020-04-24 10:21:08 757 0

原创 树的基本概念

文章目录1 树的基本概念 1 树的基本概念 状图是一种数据结构,它是由 n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个结点有零个或多个子结点; 没有父结点的结点称为根结点; 每一个非根...

2020-04-23 15:51:29 76 0

原创 使用栈求解迷宫问题

文章目录1 使用栈求解迷宫问题 1 使用栈求解迷宫问题 找迷宫通路需要使用回溯法,找迷宫通路是对回溯法的一个很好的应用,实现回溯的过程用到数据结构—栈! 回溯法: 对一个包括有很多个结点,每个结点有若干个搜索分支的问题,把原问题分解为若干个子问题求解的算法;当搜索到某个结点发现无法再继续搜索下去时...

2020-04-23 11:36:07 97 0

原创 结构体打包

文章目录1 结构体打包 1 结构体打包 先来看一个问题: 分析: 解决方案: pragma pack(n): pragma pack(1),指示结构体按1字节对齐。 pragma pack(),取消自定义的pragma pack(n),采用原系统默认的方式。 参考资料: 自己动手从0...

2020-04-22 10:42:58 95 0

原创 栈的原理及实现

文章目录1 栈的原理2 栈的算法实现2.1 栈数据结构的定义2.2 栈的初始化2.3 入栈2.4 出栈2.5 获取栈顶元素2.6 判断空栈2.7 获取栈中元素个数2.8 销毁栈2.9 测试代码 1 栈的原理 胡同里的小汽车是排成一条直线,是线性排列,而且只能从一端进出,后进的汽车先出去,后进先出...

2020-04-21 17:11:45 84 0

原创 实现磁盘操作接口

文章目录1 实现磁盘操作接口1.1 定义xdisk_xxx接口1.2 实现xdisk_xxx接口1.3 修改测试代码 1 实现磁盘操作接口 需求: 实现如下: 1.1 定义xdisk_xxx接口 xdisk.h: /** * 本源码配套的课程为 - 从0到1动手写FAT32文件系统。每个例程...

2020-04-21 15:54:14 96 0

原创 Qt基于文本协议的网络应用开发

文章目录1 文本协议的设计与实现1.1 文本协议设计介绍1.2 文本协议设计示例 1 文本协议的设计与实现 1.1 文本协议设计介绍 我们首先来看一下TCP应用编程中的问题: 数据接收端无法知道数据的发送方式! 网络程序设计中的期望: 每次发送一条完整的消息,每次接收一条完整的消息。 即使...

2020-04-21 10:57:33 101 0

原创 实现虚拟磁盘驱动

文章目录1 实现虚拟磁盘驱动 1 实现虚拟磁盘驱动 为了方便,我们直接使用虚拟磁盘文件: 代码实现如下: driver.c: /** * 本源码配套的课程为 - 从0到1动手写FAT32文件系统。每个例程对应一个课时,尽可能注释。 * 作者:李述铜 * 课程网址:http://01ket...

2020-04-20 17:36:09 218 0

原创 Qt中TCP服务端编程

文章目录1 Qt中的TCP服务端编程1.1 TCP服务端编程介绍1.2 Qt中的TCP服务端编程 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 网络中的服务端: 服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据,为客户端提供功能接口等。 Client/Ser...

2020-04-20 16:16:36 117 1

原创 Qt中的TCP客户端编程

文章目录1 Qt中的TCP客户端编程1.1 TCP客户端编程介绍1.2 QTcpSocket的同步编程1.3 QTcpSocket的异步编程 1 Qt中的TCP客户端编程 1.1 TCP客户端编程介绍 Qt中的客户端编程: Qt中的TCP客户端编程: 对于Qt编程而言,网络只是数据传输的通道。...

2020-04-20 14:26:36 134 0

原创 堆排序的实现

文章目录1 堆排序的实现 1 堆排序的实现 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。 (选择排序工作原理 - 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排...

2020-04-18 13:46:05 62 0

原创 用堆实现优先级队列

文章目录1 用堆实现优先级队列 1 用堆实现优先级队列 如果最小键值元素拥有最高的优先级,那么这种优先队列叫作升序优先队列(即总是先删除最小的元素),类似的,如果最大键值元素拥有最高的优先级,那么这种优先队列叫作降序优先队列(即总是先删除最大的元素);由于这两种类型是完全对称的,所以只需要关注其...

2020-04-18 13:41:15 86 0

原创 用信号量实现任务间单向同步

文章目录1 用信号量实现任务间单向同步1.1 问题需求1.2 解决方案1.3 其它方案1.4 典型案例 1 用信号量实现任务间单向同步 1.1 问题需求 某一任务必须等待另一任务允许后才能继续往下运行。 1.2 解决方案 使用信号量控制任务的等待与恢复运行。 /** * @brief tOS...

2020-04-18 10:54:44 185 0

原创 网络编程基础

文章目录1 网络编程基础1.1 什么是网络1.2 局域网和广域网1.3 网络基本概念 1 网络编程基础 1.1 什么是网络 普通网络用户: 资源库、信息媒体、虚拟世界、通讯媒介… 应用程序开发者: 数据收发的通道(open、send、receive、close)。 网络设备开发者: 数据...

2020-04-18 10:25:33 104 0

原创 Qt中多线程与界面组件的通信

文章目录1 多线程与界面组件的通信1.1 通过信号与槽实现多线程与界面组件的通信1.2 通过自定义事件实现多线程与界面组件的通信 1 多线程与界面组件的通信 有趣的问题: 是否可以在子线程中创建界面组件? 如上代码运行程序会直接崩溃! GUI系统设计原则: 所有界面组件的操作都只能在主线程...

2020-04-18 10:14:48 118 0

原创 代码结构分层

文章目录1 代码结构分层1.1 定义基本数据类型和错误码1.2 定义设备类结构和定义操作接口结构1.3 添加驱动实例 1 代码结构分层 我们需要将代码结构进行分层,有如下好处: 有组织的安排代码编写的文件。 分层结构能简化代码开发。 主要分为如下三层: 三层结构的具体功能: 在此之前我们需...

2020-04-17 16:53:00 135 0

原创 任务中断间的同步与通信概述

文章目录1 任务中断间的同步与通信概述 1 任务中断间的同步与通信概述 通常情况下,任务并不是独立运行的,总是要与其他任务活中断发生联系。 RTOS提供的协同机制: 我们需要解决的问题: 同步的概念: 在实际应用中,通常会创建并运行多个任务,任务启动运行后,各自并不是相互独立运行。除了前...

2020-04-17 15:20:22 104 0

原创 嵌套中断共享资源问题及解决

文章目录1 嵌套中断共享资源问题及解决 1 嵌套中断共享资源问题及解决 这个问题可以使用三种方式解决: 关总中断。 关指定中断。 请求模式解决嵌套中断共享资源问题。 这里采用关总中断的方式解决,代码如下: /** * @brief tOS应用示例 * @details * @author...

2020-04-17 14:48:22 98 0

原创 Qt中另一种创建线程的方式

文章目录1 Qt中另一种创建线程的方式1.1 另一种创建线程的方式1.2 同步型线程的设计1.3 异步型线程的设计 1 Qt中另一种创建线程的方式 1.1 另一种创建线程的方式 历史的痕迹: 现代软件架构技术中的参考准则: 尽量使用组合的方式实现系统功能。 代码中仅体现需求中的集成关系。 思...

2020-04-17 14:07:45 75 0

原创 Qt中线程的生命期问题

文章目录1 Qt中线程的生命期问题1.1 Qt中线程的生命期问题1.2 同步型线程设计1.3 在异步型线程设计 1 Qt中线程的生命期问题 1.1 Qt中线程的生命期问题 一个工程中实际的问题: C++对象有生命周期,线程也有生命周期,QThread对象的生命周期与所对应的线程生命周期是否一致?...

2020-04-17 13:52:46 85 0

原创 堆的原理及实现

文章目录1 堆的原理2 堆的实现2.1 堆的创建 1 堆的原理 先看一下堆长什么样: 最大堆的特点: 每个结点最多可以有2个子结点。 根结点的键值是所有堆结点值中的最大者,且每个结点的值都比其孩子的值大。 除了根结点没有兄弟结点,最后一个左子结点可以没有兄弟结点,其他结点必须有兄弟结点。 看...

2020-04-16 16:11:20 111 0

原创 请求模式解决共享资源冲突

文章目录1 请求模式解决共享资源冲突 1 请求模式解决共享资源冲突 原有方式: 我们可以对其进行改进,统一处理: 代码如下: /** * @brief tOS应用示例 * @details * @author 01课堂 李述铜 http://01ketang.cc * @date 20...

2020-04-16 15:55:14 85 0

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