- 博客(74)
- 问答 (1)
- 收藏
- 关注
原创 GB28181的SIP注册与PS推流学习
通过开源项目构建GB28181的sip注册和设备ps流推送试验,以更好的学习GB28181。B站学习视频:国标:《GB28181-2022》
2025-04-17 20:15:22
869
1
原创 Qt直播软件练习
(1)重复代码较多,存在“散弹式修改”的风险。应合理利用继承和多态进行改进;(2)界面之间嵌入了其他界面的句柄,以便界面的跳转,耦合度太高。可以使用单例和工厂模式对整体管理界面。可以参考我的文章:创作中心-CSDN这个小项目,我认为比较好的解决了这个问题。
2025-04-09 15:23:58
287
原创 远程监控系统项目里练习
其实我使用的方法传输的效率特别,但由于时间原因,又不想做更多的改动,我能想到的可以改善的方法如下:(1)改用udp,多包发送,确认后,再回复补包,补充缺少的包;(2)采用一些压缩算法,减少数据量;(3)本案例中已经将图片数据生成了文件,可以通过tftp直接发送文件;(4)视频流传输(我还不会);(5)采用一些专用的传输协议(我也还不会);
2025-04-08 21:40:17
843
原创 物联网外设管理服务平台
基于Linux5.10.10源码和STM32MP157开发板,完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪;:为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试,采用linux内核自带的stm32mp-xx驱动。:在linux环境下,通过xxx、xxx、xxx使用c语言开发一款WebServer,对内访问驱动获取数据或遥控硬件,向外部用户提供restful api访问接口;
2025-04-04 17:52:47
762
1
原创 Linux设备驱动-练习
一、设备树1、配置设备树信息:将3个led灯和1个风扇使用到的设备信息配置到设备树中二、设备驱动层1、通过of_find_node_by_name、of_get_named_gpion等内核核心层统一的api接口调用外设;2、通过udev设备管理器自动注册并创建设备文件3、通过ioctl控制开启/关闭外设,其中,3个led灯通过传递 设备名称-次设备号minor 控制具体的某栈灯;三、应用层1、多线程开发,第一个线程实现三个灯的流水,第二个线程实现风扇的控制。
2025-02-21 20:28:05
289
原创 UART、I2C和SPI对比
4线(MISO、MOSI、SCK、NCS)、3线:空闲时0-低电平,1-高电平;0-前采后改,1-前改后采高电平,逻辑1,3.3v/5v;低电平,逻辑0,0v高电平,逻辑1;低电平,逻辑0。高电平,逻辑1;低电平,逻辑0.1、空闲位2、起始位,1位3、数据位,5-8位4、校验位(奇、偶、无)5、结束位,1-2位6、空闲位1、开始信号2、从机地址7位3、读写位1位4、数据信号5、ACK/NACK6、结束信号<图2>1、主机向从机写1个字节;2、主机向从机写多个字节;
2025-01-28 18:34:52
391
原创 基于ILI9341液晶屏+STM32U5单片的显示试验
1、通过串口,下发两个命令 STR和PIC;2、STR模式:(1)串口输入什么,屏幕上显示什么(2)如果屏幕满,自动下滚(3)输入回车,进行换行(4)输入PIC切换到PIC模式3、PIC模式:(1)快速连续播放内置的单片机图片(以达到动图效果)(2)串口输入STR切换至STR模式。
2025-01-12 21:49:55
1238
原创 基于SMT32U575RIT单片机-中断练习
封装以实现功能:1)封装LED1、LED3、FAN和BEE的启动、关闭和切换2)实现mode_set、mode_change(切换模式)
2025-01-07 16:27:41
459
原创 汇编点灯练习
1、轮流将LED1、LED2、LED3及蜂鸣器点亮2、基于STM32MP157AAA,阅读原理图和STM32MP157芯片手册3、ARM汇编指令点灯。
2024-12-31 22:55:39
505
原创 Qt-练习1(事件循环)
1、使用QT的IO读取文件;2、以QSlider为基础,写一个进度条,显示文件读取的进度;3、给QSlider布置qss样式,qss文件像css文件一样,分离出来。
2024-12-05 21:23:02
396
原创 c++-练习2-类的封装练习(msg队列)
1、构造函数:创建一个消息队列,或者访问该消息队列2、operator[] :通过index,切换send和recv的消息类型;3、snd(const string& data) 向消息队列的指定频道中发送消息;4、recv(int size) 从消息队列中读取消息,并返回读取到的消息;5、析构函数,删除消息队列。
2024-11-24 10:37:38
398
原创 c++-练习1-面向对象与运算符重载练习
一、编写一个MyStr类,实现以下功能1、析构函数,释放buf指向的堆空间2、编写 append(const mystring r) 为当前字符串尾部,拼接新的字符串r3、编写 isEqual(const mystring r) 判断当前字符串和 字符串 r是否相等4、swap实现两个MyStr对象的内部字符串内容互换二、运算符重载1、+ :本质就是append str1 = "hello" str2 = "world" str3 = str1 + str2 == "helloworld"
2024-11-21 18:59:42
293
原创 linux-c 使用c语言操作sqlite3数据库-1
1、使用sqlite3_exec执行查询语句,并将查询结果insert到链表中,最后打印链表的内容;2、使用sqlite3_get_table执行查询语句,并以key:value的方式,打印查询结果。
2024-11-11 21:11:13
996
原创 汇编练习-1
练习要求引自《汇编语言-第4版》实验10.3(P209页)-编程,将data段中的数据,以10进制的形式显示出来data ends。
2024-11-02 22:50:43
596
原创 Linux-c 网络socket练习1
2)成功连接上服务器后,显示操作界面及提示信息,简单的命令行终端即可(1-登录,2-注册,Q-退出客户端)1、基于tcp/ip,自定义通讯协议,c-s架构,client和server端均用sh终端运行;4)注册:输入用户名、密码和确认密码,要求密码和确认密码一致,且用户名、密码不超过10位。2、实现用户登录和注册功能,服务端返回操作码,如果失败,返回失败信息;使用以下结构体,将内存中的字节存储方式,直接写入到文件中,读取亦然。3)登录:输入用户名和密码,密码不可见,且用户名、密码不超过10位。
2024-11-02 14:36:06
700
原创 汇编-debug
现在的windows操作系统一般没有安装debug.exe工具,因此需要安装DSBOX+debug.exe来模拟环境,直接百度搜索就好了,本文不再赘述。1、例子中的值,1,2均是十六进制的表达方式,即1H,2H。注:如果要执行指定内存段的代码,需要和r CS和r IP配合使用。2、键入完成,在键入回车,退出。
2024-10-28 13:45:48
518
原创 linux c-exec系列函数学习
这些函数都是以替换的方式,创建一个新的进程替代当前的进程。新的进程与原来的进程号相同,所有的用户空间(代码段、数据段)及部分的内核空间都可以视为是全新的。要注意与fork函数的区别。:可以参考va_start系列的(宏)函数,因此,无论是...,还是vector,还是环境变量的数组,最后一个元素必须是。,相关的错误代码会被设置到errno中。在执行错误的有返回值,且返回值为。
2024-10-25 20:32:13
371
原创 进程编程练习1
1、通过fork出来的子进程,直接使用父进程预先打开的fd,操作文件,似乎会有点问题;使用父子进程完成两个文件的拷贝,父进程拷贝前一半,子进程拷贝后一半,两个进程同时进行。2、不同进程中的fd若相同,操作的是同一个文件吗。
2024-10-18 01:24:40
243
原创 Linux-标准IO常用函数
重要入参:moder,r+,w,w+,a,a+,x(谨慎模式)成功:返回FILE*类型的变量失败:返回NULL,并将错误编码设置到系统的errno变量中。
2024-10-16 19:17:47
1104
原创 文件IO练习1
1、使用fread和fwrite完成两个文件的拷贝,要求源文件和目标文件由外界输入。2、使用fgets获取当前文件的总行数。3、向文件中每一秒打印当前系统时间。
2024-10-15 19:00:54
263
原创 内部排序算法小结
练习目标:1、实现 直接插入排序、冒泡排序、SHELL排序和快速排序;2、随机生成100组数据,每组数据1000个元素。注意:计时的单位是CPU的clock而非时间!!!【后续】1、加入选择排序;2、将后续研究的排序算法加入到此项目中。
2024-10-14 17:37:12
299
原创 makefile的基本练习
假设有如下目录结构:(目录结构图)完成以下操作:1、通过纯命令编写Makefile文件,并发现使用纯命令的不足;2、在Makefile中,添加变量,简化参数的重复书写;3、尝试在多目录环境下,优化一个通用的Makefile文件;4、思考:makefile在实际的工程还有哪些应用。
2024-10-09 21:17:58
807
原创 直接插入排序(升序)
/元素节点,表示数据内容int len;//头节点,表示数据域的长度//创建一个长度为len的数列,并对元素赋随机值//打印链表的内容//直接插入排序,返回值为遍历的次数//销毁链表//头插法插入链表.插入成功返回1,失败返回0。
2024-10-08 23:11:07
333
原创 HashMap哈希表练习
/学号//姓名//分数Stu stu;//指针数组//顺序表的大小int len;//元素数量//计算hashcode。
2024-09-25 23:56:35
313
原创 单链表练习
1、建立学生结构体(学号、姓名、成绩);4、任意位置插入一个完整的学生信息;2、循环调用头插法创建整表;7、单链表按照学生成绩排序。5、任意位置删除一个学生;
2024-09-23 20:06:36
209
原创 顺序表操作
2、mylist.c 目前的代码量是319行,有时间可以缩写下,挑战100行以下(static 函数的封装);1、转移表的使用,特别在参数数量和类型都不确定的情况,如何处理。可以看看pirntf函数的源码是怎么编写的;4、头文件卫士的应用,避免同一个头文件重复引用和循环引用(参考华为的C编码规范)。1、通过C语言的数组,实现一个顺序表,对学生信息进行CRUD操作。2、通过命令行窗口,输入操作指令,对顺序表进行操作。3、C语言中,是否也有深浅拷贝,以及相关的应用;
2024-09-19 20:50:39
413
原创 Linux下需记住的文件--持续更新
记录在学习linux过程中,碰到的常见的文件的路径Linux中重要的文件小结 序号 路径 关键字 描述 1 /etc/bashrc(所有用户) ~/.bashrc(登录用户) /root/.bashrc(root用户) 用户环境、 别名 每开启一个新的bash终端都会生效. ???...
2019-06-06 17:01:29
260
原创 普通java工程之远程debug
有这样一个需求,生产或者测试环境有运行一个程序,发现一个bug,可是我们本地的开发环境bug死活重现不出来。这个时候就需要本地eclipse+工程源码<-远程调试->java程序。准备:1.eclipse+源码2.可执行程序,通过java启动。本文不涉及tomcat的远程调试3.操作系统为centos7.41.服务端可执行程序启动的时候添加参数:...
2019-06-04 14:02:26
572
原创 linux下使用生成ws客户端
有这个需求,通过wsimport生成ws的客户端代码,环境如下:1)有台服务器,linux操作系统,无界面2)同网段的某服务器发布了webservice服务端,且发布的wsdl文件有错误针对以上需求,我写了如下操作的步骤:1)通过命令行访问wsdl发布地址,并将内容下载到本地2)使用vim修改本地的wsdl内容3)wsimport从本地生成客户端------------...
2019-05-25 11:47:53
2640
空空如也
C语言 int变量在执行过程中被莫名奇妙地修改
2024-10-09
一个关于bat脚本的问题
2014-10-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人