- 博客(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
原创 编程实现采集传感器数据和控制硬件设备(传感器和硬件通过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++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++day1
使用cin和cout完成,提示并输入一个字符,判断该字符是大写还是小写,如果是大写字母,则转变成对应的小写字母输出,如果是小写字母,则转变成对应的大写字母输出,如果是其他字符,则转变成 '*' 并输出。else if(ch>='a'&&ch<='z')//小写转大写。提示并输入一个字符串,统计该字符串中字母、数字、空格、其他字符的个数并输出。if(ch>='A'&&ch<='Z')//大写转小写。使用cout实现输出斐波那契前20项的值。
2024-09-18 19:43:18
497
原创 数据库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("春\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关注的人
RSS订阅