草庐IT

安卓与串口通信-基础篇

前言安卓并不仅仅只是一个手机操作系统,在很多领域都能见到安卓的身影。无论是车载系统、工控系统、屏控系统还是物联网设备基本都有安卓的一席之地。在所谓的寒冬之下,纯粹的安卓开发似乎已经不再吃香,于是越来越多的安卓开发者转向了车载、工控等领域。而在这些领域,绕不开串口通信相关知识,无论是车载系统与车身各个传感器或者ECU通信还是工控系统与PLC交互,都离不开串口。说来惭愧,虽然我勉强算是一个做安卓工控的吧,但是实际上干的活却是调轮子,调参数,对于其中的基本原理一直是一知半解的。正好最近有空,我决定先从串口通信学起,慢慢夯实我的基础知识。在学习过程中也会把自己学到的东西结合自己工作中积累的为数不多的经

深入探讨进程间通信的重要性:理解不同的通信机制(下)

前言在上一篇文章中,我们探讨了进程间通信的三种常见机制:管道、消息队列和共享内存。我们了解到,这些机制各有其特点和适用场景,可以根据实际需求选择合适的机制进行进程间通信。然而,进程间通信并不仅限于这三种方式。在本文中,我们将继续探索进程间通信的知识点,重点关注信号量、信号和套接字。信号量是一种用于进程同步的机制,它可以用于控制对共享资源的访问。信号是一种用于进程间通知的机制,可以用于处理异步事件。而套接字则是一种用于网络通信的接口,它可以实现不同主机之间的进程间通信。信号量共享内存通信方式虽然提供了高效的数据交换,但也引发了新的问题。如果多个进程同时修改同一个共享内存区域,很可能会导致数据冲突

Spring WebSocket实现实时通信,构建高可靠的实时交互系统

SpringWebSocket实现实时通信,构建高可靠的实时交互系统一、简介二、WebSocket的实时通信原理及应用场景三、SpringWebSocket的实时通信实现方法1SpringWebSocket实时通信的基本实现方法2SpringWebSocket实时通信的高可靠实现方法四、构建高可靠的实时交互系统1.构建高可靠的实时交互系统的基本考虑2.实现实时通信的高可靠性方案心跳包重连机制五、小结回顾1.SpringWebSocket实现实时通信的意义及优点2.实现实时通信的注意事项和建议一、简介SpringWebSocket是基于WebSocket协议的一个开源框架,它使得开发人员可以更加

Windows 实现wsl2固定ip地址,并实现与hyper-v、主机之间实现通信

1.为wsl中的虚拟机添加静态ip地址,并为wsl的虚拟网卡vEthernet(WSL)添加ip地址创建一个.bat文件,以下内容为bat文件的模板(需以管理员身份运行)wsl-d(wsl安装的虚拟机名称)-urootipaddradd(为该虚拟机新增的静态ip地址)/24broadcast(设置broadcast地址)deveth0labeleth0:1netshinterfaceipaddaddress"vEthernet(WSL)"(为wsl虚拟网卡添加的ip地址需与虚拟机新增的ip同网段)255.255.255.0以下以为openEuler新增192.168.130.10的ip地址、为

“Xilinx ZYNQ+TCP通信+Python上位机”实现实时视频传输系统

笔者在CSDN的第一篇万字长文,请多多支持。本文是笔者的公众号IC设计者笔记文章的转载。很多优质原创内容都会第一时间发布在公众号,欢迎关注公众号,一起交流学习。公众号后台回复“ZYNQ图像传输”即可免费下载包括Vivado工程、Python源码以及说明文档等文件。前言前段时间接到老板匆忙打电话,大概内容是:之前师兄流片的CMOS图像传感器马上要提交结题报告,需要帮忙用ZYNQ系列FPGA将图像传感器的数据实时传输到PC​,并且通过上位机拍照。由于时间紧急,要求两三天内完成。当时自己心想:“​FPGA开发+ARM程序编写+PC端上位机开发”两三天完成,还包括调试。。。Areyoukidingme

服务端和客户端通信--UDP(含完整源代码)

UDP通信实验实验设备:   目标系统:Windows软件工具:vs2022/vc6/dev 实验要求:完成UDP服务端和客户端的程序编写;分别实现UDP一对一通信和广播通信功能。实验内容:-static-libgcc一对一通信:服务器和客户端编程详细步骤:1、加载/释放Winsock库,创建套接字(WSAStartup()/socket())。加载方法:WSADATAwsa;/*初始化socket资源*/if(WSAStartup(MAKEWORD(1,1),&wsa)!=0){   return;  //代表失败}释放方法:WSACleanup();2、绑定IP地址、端口等信息到socke

CAN总线详解及STM32的CAN通信编程指南

对于CAN通信而言,本人之前也未接触了解过,由于实习的技术要求,因此也花费了一段时间对CAN通信进行学习,并且实现了基于STM32的CAN环回静默模式通信,因此写一遍比较详细的文章对该内容进行总结。本文的参考资料有STM32的中文参考手册、协议手册等。话不多说开始吧!什么是CAN?CAN是一种通信的方式,就是用来传递数据的,是属于串行通信的一种,是异步的半双工通讯,根据通信速率的不同可以分为高速CAN和低速CAN,主要的区别是在于对总线电平和数据传输速率(波特率)的定义,分别遵循ISO的不同标准。低速CAN  通信速率10-125Kbps,总线长度可达1000米。高速CAN(ISO11898)

基于FPGA的UDP 通信(一)

引言手头的FPGA开发板上有一个千兆网口,最近准备做一下以太网通信的内容。本文先介绍基本的理论知识。FPGA芯片型号:xc7a35tfgg484-2网口芯片(PHY):RTL8211网络接口:RJ45简述以太网什么以太网?以太网是一种计算机局域网技术。IEEE组织的IEEE802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术。常用的传输速率以太网传输速率:10Mbps、100Mbps、1000Mbps、10Gbps硬件接口以太网的接口类型有,RJ45接口、RJ11接口,SC光纤接口等。RJ45的接口插头和插座的示意图:R

智能家居(2)---串口通信(语音识别)控制线程封装

封装语音线程(语音通过串口和主控设备进行交流)实现对智能家居中各种灯光的控制mainPro.c(主函数)#include#include"controlDevice.h"#include"inputCommand.h"#includestructDevices*pdeviceHead=NULL;//设备工厂链表头structInputCommander*pcommandHead=NULL;//指令工厂链表头structDevices*findDeviceByName(structDevices*phead,char*name)//在设备链表中查找设备(语音和socket均可使用){struct

1.1QT网络通信

QT进行TCP网络通信:TCP是C/S模式的需要建立连接的网络通信架构,建立连接需要进行三次握手,断开连接需要四次握手。服务器模式:需要先创建监听套接字,通过bind函数进行ip和端口绑定,通过listen函数监听客户端的连接请求,通过accept函数处理客户端的连接请求并返回通信套接字进行通信。客户端模式:相较服务器简单,只需创建通信套接字,然后通过connect函数和服务器进行连接,然后即可进行通信。在QT内通过QT的一些函数将TCP通信进行封装,首先,要用到通信,QT必须先引入network模块;在服务器通过创建对象创建QTcpServer套接字,然后通过listen函数进行IP和端口绑