自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java内部类

然后使用匿名内部类来实现该接口并覆盖其方法。通过实例化接口对象时直接定义匿名内部类,我们可以在同一位置定义接口的实现逻辑,从而使代码更加简洁。,然后使用匿名内部类来继承该抽象类并实现其抽象方法。通过匿名内部类,我们可以在创建抽象类对象时同时提供实现逻辑,避免了额外定义一个具体的子类。在上面的例子中,我们定义了一个接口。在这个例子中,我们定义了一个抽象类。

2023-10-23 00:08:11 69

原创 全网最全之字符数数组、字符串、字符指针详解(字符串常量)

字符数组是一种特殊的数组,它存储了一系列的字符。字符串数组可以对数组中任意一个元素赋值,可以在定义的时候用字符串为其赋值,但是定义了一个字符数组之后,当字符数字做函数参数时。我们需要传递两个参数,一个是数组名(即字符数组的首地址),另一个是数组的长度。字符串做函数参数的时候,如果定义的是字符型指针变量,则只需要传递一个变量就可以了,不需要传递长度。字符型指针字符串在使用时可以再次用字符串进行赋值,但是字符数组定义的字符串不行。试图通过修改字符串常量的方式来更改其值是非法的,并且可能导致未定义的行为。

2023-09-05 00:54:43 318

原创 linux下多个usb设备固定名称方法(亲测有用)。

3.若ttyUSB设备过多找不到自己要固定的串口设备,可以对要固定的设备进行拔插,通过比较插拔前后ls /sys/class/tty/ttyUSB* -l命令输出结果来找到所需要固定的串口号。重新插拔设备(或重启)就会在/dev目录下生成固定的设备名(本实例为:/dev/my-_rplidar)。查找需要 需要固定的usb设备,例如我要固定多个usb转串口的设备,先查询各个usb的详细信息。如下图所示,我有两个usb设备,而我们要用到的是数据就是红色箭头所指的数据。创建自己的rules文件。

2023-09-01 18:31:43 557 1

原创 全网最全的char *c[], **cp[],char ***cpp详解

根据下述代码,我们就能好好整理上char *c[], **cp[],char ***cpp的关系。首先char *c[]是一个指针数组,重点在于它是一个数组,存放的都是指针,而且每个指针都指向一个字符串。char **cp[]是一个二级指针数组,它里面的指针指向数组char *c[]char ***cpp 是一个三级指针,指向二级指针数组char **cp[]。它们的关系图。

2023-07-04 21:52:03 510

原创 C语言之链表

链表是一串数据,而且地址是连续的。尾插法:在p的后面插入。关键点:判断p是否为空;判断p的score是否等于data。等于的话,把new插进去,new->next=p->next;p->next=new。头插法:在p前插入。关键在于要改变head,因为头可能会变,所以要用指针改变head。分两种情况:第一,判断第一个数是否是目标数。是的话直接在第一个数前面插入。代码为:struct test* head = p; new->next=head; return n...

2023-05-10 21:29:55 84

原创 智能家居 (六) ——智能家居项目整合(语音控制线程,网络控制线程)

livingroomLight.c upstairsLight.c等等就不放上来了,可参考前面章节。

2023-05-10 21:29:10 104

原创 基于orangepiZero2智能家具(四)串口通信(语音识别)线程控制

【代码】基于orangepiZero2智能家具(四)串口通信(语音识别)线程控制。

2023-05-10 21:28:55 125

原创 智能家具(五)—— 网络服务器线程控制

【代码】智能家具(五)—— 网络服务器线程控制。

2023-05-10 21:27:46 35

原创 网络编程(1) —— 7层OSI网络模型

是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的在世界范围内。它将体系结构划分为七层,每层都可以提供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——。OSI 模型各层间关系和通讯时的数据流向如图所示:规定数据的传输协议应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;EG: 解决不同系统之间的通信,比如Linux下的QQ和Windows下的QQ可以通信;建立一个连接(自动的手机信息、自动的网络寻址)

2023-05-10 21:27:21 61

原创 智能家居(八) —— 香橙派摄像头加入设备工厂

这里的摄像头只是当作一个设备去用,目前实现通过串口指令然后system()进行拍照。然后翔云平台进行人脸对比,未实现自动人脸检测(不会py)。所以摄像头没有另创线程。但是做视频监控可以另创线程。监控运动物体(人脸靠近)参考:树莓派摄像头使用Motion监测人物动作_行稳方能走远的博客。这样当串口发送OCR时,实现人脸对比并开锁,所以没有用线程去做。这里使用fswebcam进行拍照。首先在/smarthome拍照,命名为。

2023-05-10 21:27:03 205

原创 网络编程(2) —— 三次握手与四次挥手、半连接状态、2MSL

手机能够使用联网功能是因为手机底层实现了 TCP / IP 协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。标志位含义建立连接响应确认结束RST(reset)重置建立起一个TCP连接需要经过“三次握手”四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在 socket 编程中,这一过程由客户端或服务端任一方执行close来触发。

2023-05-10 21:26:55 333

原创 网络编程(5) ——了解应用层的HTTPS协议

http协议是的,因此很容易被截取和解析,泄漏个人数据。https协议是在多添加了一层加密SSL,进行身份验证和数据加密。

2023-05-09 19:41:40 34

原创 网络编程(3) —— SOCKET、TCP、HTTP之间的区别与联系

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。(其实就是bind绑定)

2023-05-09 19:41:16 1312 1

原创 网络编程(4) ——了解应用层的HTTP协议

编程实现需要基于人工智能平台,基于HTTP协议通讯,B/S模式,顺便协议相关的周边,也是在为面试做准备。

2023-05-09 19:41:04 34

原创 基于orangepiZero2智能家具(二)

【代码】基于orangepiZero2智能家具(二)

2023-05-09 19:40:45 59

原创 网络编程(6)——libcurl库简介及其编程访问百度首页

在linux下用c语言做HTTP的编程有一种方法是依赖于这个libcurl库,以后做跨平台网络协议相关的开发,第一个要想到的就是它。libcurl是一个跨平台的网络协议库,支持http, https, ftp等协议,libcurl同样支持:(1)HTTPS证书授权(2)HTTP POST, HTTP PUT, FTP 上传(3)HTTP基本表单上传,代理,cookies,和用户认证库下载地址:然后发送到linux开发环境中。

2023-05-09 19:40:42 330

原创 Linux基本操作2

1、先进入 /usr/include2、grep,其中*代表当前目录下,r是递归的寻找,n是找出来显示行号,i是不区分大小写的寻找。

2023-05-09 19:40:32 46

原创 基于orangepiZero2智能家具(三)

【代码】基于orangepiZero2智能家具(三)

2023-05-09 19:40:19 52

原创 基于orangepiZero2智能家居(一)设计框架

工厂模式是常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在公厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且使用一个共同的接口(API)来指向新建的对象。

2023-05-09 19:39:31 164

原创 智能家居(七) —— 人脸识别 & 翔云平台编程使用(编译openSSL支持libcurl的https访问、安装SSL依赖库openSSL)

OCR (Optical Character Recognition,光学字符识别)百度搜索OCR识别,可以发现有很多大厂都在做这个项目,比如百度OCR,腾讯OCR,科大讯飞OCR等等。国内中小型公司,甚至是大公司在做项目时希望能够快速占领市场,比如人脸识别,车牌识别需要非常稳定的算法,如果需要本公司研发部的研发人员去做,可能要包含两个硕士一个博士还有几个本科生一同做研发,生产周期以及稳定性都是面临了巨大的挑战。这时候,购买别人已经做好的方案,是非常划算的。

2023-05-09 19:39:22 273 1

原创 ftp服务器

socket返回的fd叫做监听fd,是用来监听客户端的,不能用来和任何客户端进行读写;accept返回的fd叫做连接fd,用来和连接那端的客户端程序进行读写。(struct sockaddr *)&s_addr这之所以需要类型转换的原因是因为我们用的是IPV4的结构体,而给出的标准是IPV4和IPV6的通用结构体,所以我们一般用IPV4的结构体之后将其转换为系统给出的通用结构体htons:端口号大小端的转换(具体大小端要看对应的计算机)atoi:字符串转换成整型,使我们输入的数字端口号可以被识别。

2023-05-09 19:39:01 64 1

原创 Linux进程间通信

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等,其中Socket和Streams不同主机上的两个进程IPC。(记住、需要背)每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。信号定义在signal.h头文件中,信号名都定义为正整数。具体的信号名称可以使用kill -l。

2023-03-29 21:24:32 377 1

空空如也

空空如也

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

TA关注的人

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