自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 基于STM32和Linux的远程智控项目

7. STM32 每隔2s 将SHT20数据 上传到 TCP服务器(Linux端), Linux端可以将SHT20数据上传的Sqlite数据库中。8. STM32可以向ESP8266发送指令 "CLEAR" : 清除TCP服务器SQLITE数据库中的数据。HUM:(阈值), TCP服务器修改湿度阈值。TUM:(阈值), TCP服务器修改湿度阈值。MOTOR_ON, 控制马达震动。MOTOR_OFF,停止马达震动。FAN_ON, 控制风扇旋转。FAN_OFF,控制风扇停止。

2024-12-07 14:31:58 346

原创 基于QT前端,边缘网关(MQTT/TCP)以及驱动开发的智能家居项目

1、本项目由上位机、边缘网关、下位机三部分组成。上位机:基于C++/QT结合mqtt客户端进行发开。边缘网关:由linux下2个进程组成1、第一个进程使用MQTT协议与上位机进行通信,并结合linux多线程进行消息收发并与第二个进程使用消息队列进行通信。2、第二个进程使用TCP协议与下位机进行数据采集和控制硬件,并结合linux多线程进行消息收发并与第一个进程使用消息队列进行通信。

2024-12-07 14:21:45 702

原创 web服务器实现采集传感器数据和控制硬件设备(传感器和硬件通过slave模拟)

web服务器与Modbus服务器建立通信,从而使网页控制硬件

2024-11-29 16:12:11 708

原创 编程实现采集传感器数据和控制硬件设备(传感器和硬件通过slave模拟)

传感器:2个,光线传感器、加速度传感器(x\y\z)2.循环1s采集一次数据,并将数据打印至终端。3.同时从终端输入指令控制硬件设备。硬件设备:2个,led灯、蜂鸣器。1.多任务编程:多线程。0 1 :led灯打开。0 0:led灯关闭。1 0 : 蜂鸣器关。

2024-11-26 19:52:52 653

原创 c高级day5

2024-10-18 17:27:34 169

原创 c高级day4

2024-10-17 19:02:58 147

原创 c高级day3

2024-10-16 21:01:46 187

原创 c高级day2

2024-10-16 20:17:54 152

原创 c高级day1 shell 指令

2024-10-14 19:33:33 147

原创 QTday6

【代码】QTday6。

2024-10-10 20:55:06 313

原创 QTday5

2024-10-09 21:26:33 174

原创 QTday3

2024-10-09 17:10:35 375

原创 QTday1代码的形式实现登录框

【代码】QTday1代码的形式实现登录框。

2024-09-28 20:57:30 245

原创 将之前实现的顺序表、栈、队列都更改成模板类

【代码】将之前实现的顺序表、栈、队列都更改成模板类。

2024-09-27 22:18:54 350

原创 c++day7模板函数

1、虚函数是在父类中加了virtual关键字的函数,子类可以对该函数进行重写,并用父类的指针或引用指向子类的对象实现多态。链表:存储方式为链式存储的数据结构,通常由头节点和数据节点组成,而节点由数据域和指针域组成。2、保证detele 父类的指针时既能回收父类指针指向的那一份空间,也能回收子类的那一份空间,防止内存泄漏。7、栈区:存放的是局部变量,该变量随着函数的消亡而消亡,遵从先进后出原则,最先被定义的局部变量最后消亡。空间:指针需要开辟一块新空间,而引用使用的是引用目标的空间,不需要新开辟空间。

2024-09-27 09:09:56 375

原创 继承和多态

int *data;//容器//最大容量public:Queue();~Queue();void pop();int back();int i = 0;i++;int i =0;if(this!

2024-09-25 20:37:28 737

原创 c++day5

int size;int *data;int top();void pop();if(this!=&other)//深拷贝int i =0;return;return;

2024-09-24 21:37:18 644

原创 c++类中的特殊函数

/串为空串cout<<"调用拷贝构造函数 "<<endl;while(*src!src++;//cout<<"调用构造函数 "<<endl;if(this!=&other)cout<<"调用拷贝赋值函数 "<<endl;

2024-09-23 21:36:15 1100

原创 c++day3 手动封装一个顺序表(SeqList),分文件编译实现

有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len成员函数:初始化 init(int n)判空:empty判满:full尾插:push_back插入:insert(int index)任意位置删除:erase(int index)尾删: pop_back求长度:size()获取任意位置元素:& at(int inex)将顺序表进行排序:sort(bool flag) //flag 为真,表示升序,否则是降序。

2024-09-21 09:44:43 788

原创 c++day2

2024-09-20 21:07:58 175

原创 c++day1

使用cin和cout完成,提示并输入一个字符,判断该字符是大写还是小写,如果是大写字母,则转变成对应的小写字母输出,如果是小写字母,则转变成对应的大写字母输出,如果是其他字符,则转变成 '*' 并输出。else if(ch>='a'&&ch<='z')//小写转大写。提示并输入一个字符串,统计该字符串中字母、数字、空格、其他字符的个数并输出。if(ch>='A'&&ch<='Z')//大写转小写。使用cout实现输出斐波那契前20项的值。

2024-09-18 19:43:18 497

原创 【无标题】

-1);return -1;int k =9;return -1;

2024-09-11 20:58:54 1047

原创 数据库C语言删除修改和输出

printf("\t\t\t*******工人阶级为主导的社会主义国家**********\n");printf("错误码:%d错误信息:%s,出错行是:%d\n",printf("\t\t\t1、插入一个工人信息\n");printf("\t\t\t2、删除一个工人信息\n");printf("\t\t\t3、修改一个工人信息\n");printf("\t\t\t4、查找一个工人信息\n");printf("\t\t\t5、输出所有工人信息\n");printf("\t\t\t0、退出\n");

2024-09-10 20:03:59 766

原创 在堆区申请10个连续空间,手动输入10个数(乱序),采用简单选择排序,输出排序后的结果。注意:main函数在main.c 输入函数,输出函数,排序函数,在sort.c

printf("给数组赋值:");

2024-09-07 15:19:49 288

原创 1:在堆区申请10个连续空间,手动输入10个数(递增),输入关键字key,采用折半查找方式查找关键字是否存在,存在给出位置,不存在,输出查找失败。

printf("找到了,改值在%d位置\n",ret+1);printf("查找失败");printf("输入key:");

2024-09-07 15:03:04 263

原创 局域网聊天室

printf("%s:%d进入聊天室\n",inet_ntoa(cin[client_count].sin_addr),ntohs(cin[client_count].sin_port));printf("收到%s:%d的消息%s\n",inet_ntoa(cin[i-1].sin_addr),ntohs(cin[i-1].sin_port),buff);printf("%s:%d退出聊天室",inet_ntoa(cin[i-1].sin_addr),ntohs(cin[i-1].sin_port));

2024-09-06 21:04:55 476

原创 UDP客户端服务器通信

while(1)printf("客户端跑路\n");break;printf("客户端发来信息:%s",buff);return 0;

2024-09-05 19:57:02 1252

原创 流式域套接字

return -1;return -1;//7.recvwhile(1)printf("%s客户端发来%s",cln.sun_path,buff);printf("转发成功\n");//8.close。

2024-09-05 19:35:21 540

原创 广播发送接收

int k = 1;return -1;//3.sendtowhile(1)printf("广播通知:\n");printf("发送成功\n");

2024-09-04 20:57:08 720

原创 多线程并发服务器

printf("收到来自%s:%d客户端的信息:%s\n",inet_ntoa(cln->cln.sin_addr),ntohs(cln->cln.sin_port),buff);printf("%s:%d发出请求连接\n",inet_ntoa(cln.sin_addr),ntohs(cln.sin_port));printf("客户端退出\n");printf("设置复用端口成功\n");printf("发送成功\n");

2024-09-04 20:33:10 614

原创 多进程并发服务器

printf("%s:%d发来信息%s\n",inet_ntoa(cln.sin_addr),ntohs(cln.sin_port),buff);printf("%s:%d发来连接请求\n",inet_ntoa(cln.sin_addr),ntohs(cln.sin_port));printf("客户端退出\n");printf("发送成功\n");printf("设置端口快速复用成功\n");

2024-09-04 20:32:06 612

原创 2、UDP服务器中,使用connect函数,实现唯一的客户端与服务器通话。

/1、创建套接字return -1;//2、绑定perror("绑定失败");return -1;printf("绑定success");//3、收发消息while(1)//不用管谁发的printf("服务器只能与一个客户端通信");if(len==0)perror("客户端跑了");break;

2024-09-03 21:32:33 1379

原创 TCP的CS模型

return -1;//将套接字与主机ip和端口号绑定return -1;//把旧的标识符用于监听客户端队列return -1;//接收客户端队列信息生成新的标识符用于与客户端通信return -1;//创建通信用的缓冲区while(1)//每次接收之前清空缓存区//阻塞接收printf("客户端断开链接");break;

2024-09-03 20:20:35 1199

原创 建立两个.c 建立子父进程,父进程发送消息到队列,子进程读取队列,另一个同样。

long mtype;}buf;return -1;while(1)printf("输入类型\n");getchar();printf("输入正文\n");break;return -1;wait(NULL);return -1;return -1;while(1)

2024-08-29 21:41:11 611

原创 将共享内存发送接收实现一遍。

return -1;return -1;char *buff;return -1;while(1)printf("发送\n");//从文件输入流写入buffbreak;if(shmdt(buff)==-1)//断开进程和共享内存的联系return -1;return -1;return 0;

2024-08-29 20:44:48 837

原创 将消息队列发送接收端实现一遍。

long mtype;}buf;//获取密钥return -1;//获取消息队列return -1;while(1)printf("输入类型\n");getchar();//吸收enterprintf("输入正文\n");break;return -1;return 0;

2024-08-29 20:17:58 788

原创 有名管道,创建两个发送接收端,父进程写入管道1和管道2,子进程读取管道2和管道1.

pid_t pid;//定义子线程号if(pid>0){return -1;while(1)// printf("父进程1写入管道1:\n");//从输出入读取字符串放入buff//从buff写入fifobreak;close(fd1);return -1;while(1)//printf("子进程1读取管道2:\n");

2024-08-28 20:08:15 704

原创 作业三:互斥锁,无名信号量,条件变量再联系一遍。

printf("生产一个苹果\n");printf("我买一个苹果\n");

2024-08-27 21:10:36 348

原创 作业二:使用无名信号量实现循环输出 春、夏、秋、冬。

printf("春\t");printf("夏\t");printf("秋\t");printf("冬\t");

2024-08-27 20:44:36 320

原创 作业一:创建3个线程,一个子线程拷贝文件的前一半,一个子线程拷贝后一半文件,主线程回收子线程资源。

int len;return -1;close(fd);return len;return -1;return -1;int res;int sum=0;=0)sum+=res;break;close(fd);close(fd1);if(argc!=3)return -1;

2024-08-27 20:29:11 419

空空如也

空空如也

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

TA关注的人

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