前言 前段时间赶项目的过程中,遇到一个调用RS485串口通信的需求,赶完项目因为楼主处理私事,没来得及完成文章的更新,现在终于可以整理一下当时的demo,记录下来. 首先说一下大概需求:这个项目是机器视觉方面的,AI算法通过摄像头视频流检测画面中的目标事件,比如:火焰.烟雾.人员离岗.吸烟.打手机.车辆超速等,检测到目标事件后上传检测结果到后台系统, 后台系统存储检测结果并推送结果到前端,这里用的是SpringBoot整合WebSocket实现前后端互推消息,感兴趣的同学可以看一看,大家多交流.…
最近项目有一个空气检测仪,需要得到空气检测仪的实时数据,保存到数据库当中.根据了解得到,硬件是通过rs485进行串口通讯的,需要发送16进制命令给仪器,然后通过轮询来得到数据. 需要先要下载RXTX的jar包,win64位下载地址:http://pan.baidu.com/s/1o6zLmTc):将解压后的rxtxParallel.dll和rxtxSerial.dll两个文件放在%JAVA_HOME%/jre/bin目录下,这样该包才能被正常的加载和调用. 代码如下: package com.g…
---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:Python编程实现USB转RS485串口通信(发送数据.接收数据均为16进制格式) 运行环境:Windows7&Python3.7与Ubuntu14.04&Python2.7,宇泰UT-890A USB转RS-485/422串口连接线 文件下载:源码点击下载 vsl7 一.Windows7&Pyth…
假设你还没有看上一篇 手把手教你Android手机与BLE终端通信--搜索,你就先看看吧,由于这一篇要接着讲搜索到蓝牙后的连接.和连接后的发送和接收数据. 评论里有非常多人问假设一条信息特别长,怎么不丢包,或者怎么推断一个完整的信息发送完了呢. 我写的时候连的串口是我们公司硬件project师设计的,他定义好了信息的格式.什么字符开头.什么字符结尾,中间哪几位代表什么意思,我假设不能成功取到一对开头和结尾而且长度也符合我就会丢弃那点信息,取得的完整信息则会依据硬件project师的文档取出app…
关于java实现的串口通信,使用的是开源项目RXTX,之前sun公司也有JCL项目,不过已经很久没有更新了,RXTX项目地址:点击打开,但是两个项目的API用法是一样的,只是导入的包不一样而已.简单的入门可以参照官方的wiki. 对应你的开发环境(Linux.window.Mac)下载对应的文件(下载地址),这里说下具体的安装方法,官方给的有点啰嗦,在Eclipse下使用,下载后里面的文件: RXTXcomm.jar包放到你项目的lib文件夹下,Java Builder Path---->Add…
原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看 解决办法: MSDN的说明: Close 方法可关闭远程主机连接,并释放所有与 Socket 关联的托管资源和非托管资源.关闭后,Connected 属性将设置为 false. 对于面向连接TCP的协议,建议先调用 Shutdown,然后再调用 Close 方法.这可以确保在已连接的套接字关闭之前,已发送和接收该套接字上的所有数据. 如果需要在不首先调用 Shut…
netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和接收数据都会继承SimpleChannelInboundHandler和ChannelInboundHandlerAdapter这两个抽象类,那么这两个到底有什么区别呢? 其实用这两个抽象类是有讲究的,在客户端的业务Handler继承的是SimpleChannelInboundHandler,而在服…
netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和接收数据都会继承SimpleChannelInboundHandler和ChannelInboundHandlerAdapter这两个抽象类,那么这两个到底有什么区别呢? 其实用这两个抽象类是有讲究的,在客户端的业务Handler继承的是SimpleChannelInboundHandler,而在服…
1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8from socket import *# 1. 创建udp套接字udp_socket = socket(AF_INET, SOCK_DGRAM)# 2. 准备接收方的地址# '192.168.1.103'表示目的ip地址# 8080表示目的端口dest_addr = ('192.168.1.103', 8080)  # 注意…
出错的代码 #server端 import socket import struct sk=socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() conn,addr=sk.accept() str_len1=struct.unpack('i',conn.recv(4))[0] print(sk.recv(str_len1)) str_len2=struct.unpack('i',conn.recv(4))[0] print(sk.recv…
最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^ 一: 首先,你需要下载一个额外的支持Java串口通信操作的jar包,由于java.comm比较老了,而且不支持64位系统,这里推荐Rxtx这个jar包(32位/64位均支持). 官方下载地址:http://fizzed.com/oss/rxtx-for-java (注:可能需要FQ才能下载) 不能FQ的童鞋,可以在这里下载: http://files.cnblo…
1.首先应公司要求再 com 口本来使用 .net 由于 .net 适用 linux 太麻烦 改为java 准备工作 准备 RXTXconmm.jar(版本很重要) 因为版本问题我搞了一天. 主要讲述linux 系统使用串口(windows 比 linux 更简单) 话不多说直接上代码 @RequestMapping(value = "/porttest",method ={RequestMethod.POST,RequestMethod.GET}) @ResponseBody pub…
最近摸索做个上位机,简单记录一下关键的几个部分 c#做串口通信主要使用的是System.IO.Ports类,其实还是十分方便的 最终效果如下: 千万不要忘记了下面这个 填写串口相关配置 我们可以通过GetPortNames方法获取本机的端口列表,注意:不同设备连接电脑后端口不一定相同 string[] sps = SerialPort.GetPortNames(); 配置其他串口相关 例如波特率列表 string[] baud = { "300", "1200",…
发送 package cn.stat.p4.ipdemo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress;…
代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和保存数据形式保存到数据库中. 代码如下: import serial,pymysql,threading,time x=serial.Serial('com1',9600,timeout=1) def faSong(): # 发送函数 while True: # 循环发送数据 time.sleep(…
java原生对串口的支持只有javax.comm,javax.comm比较老了,而且不支持64位系统,我在看jlibmodbus(一个java实现的modbus协议栈)的时候发现了几个可供使用的java操作串口的扩展类库. 1.RXTX 官网:http://fizzed.com/oss/rxtx-for-java 2.jSerialComm 官网:https://fazecast.github.io/jSerialComm/ 3.purejavacomm github:https://githu…
InetAddress UDP例程: 发送数据: 接收数据: 结果: TCP例程: 发送数据: 接收数据: 结果:…
这里我们来探讨一下在网络编程过程中,有关read/write 或者send/recv的使用细节.这里有关常用的阻塞/非阻塞的解释在网上有很多很好的例子,这里就不说了,还有errno ==EAGAIN 异常等等.首先我们拿一个简单的实例代码看一下. read/write面临的是什么问题: 字节流套接字上调用read或write的返回值可能比请求的数量少,这并不是出错的状态,这种情况发生在内核中的用于套接字缓冲区的空间已经达到了极限,需要再次的调用read/write函数才能将剩余数据读出或写入.那…
原文地址:http://www.cnblogs.com/wangtonghui/p/3277303.html 最近在做服务器压力测试程序. 接触了一段时间Socket异步通讯,发现自己对BeginReceive什么时候回调产生了错误的理解.之前我一直以为异步接收数据只有当Buffer被填满的时候才会回调.如果这样当服务端的Buffer大于客户端发送的数据时,客户端发送的数据就不会得到及时的处理(当Buffer填满时才处理).这显然是不合情理的,于是我做了如下测试: 服务端代码: using Sy…
简述:      MPTCP在发送数据方面和TCP的区别是可以从多条路径中选择一条 路径来发送数据.MPTCP在接收数据方面与TCP的区别是子路径对无序包 进行重排后,MPTCP的mpcb需要多所有子路径的包进行排序.查看图1可知. +-------------------------------+ | Application | +---------------+ +-------------------------------+ | Application | | MPTCP | +----…
TCP协议接收数据的步骤: A:创建接收数据的Socket对象 创建对象的时候要指定端口 B:监听客户端连接 等待客户端连接 C:获取Socket对象的输入流(字节流) D:读数据,并显示在控制台 E:释放资源 服务器: public class FileServerDemo {    public static void main(String[] args) throws IOException {        //创建服务器对象        ServerSocket ss = new…
public void sendMessage() throws Exception { System.out.println("调用servlet开始================="); StringBuffer sendStr = new StringBuffer(); sendStr.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sendStr…
1 发送数据 需要2个串口 http://www.openedv.com/thread-228847-1-1.html 下载源文件 File_Protocol_Test.rar…
1.如在MainActivity.java中的按钮点击时设置: //发送数据方法1--简单型 i.putExtra("txt", "没错,我就是刚传来的信息!"); //发送数据方法2--复杂型 Bundle data = new Bundle(); data.putString("txt", "额,我是复杂型的数据方法发送来的!"); i.putExtras(data); 当含有返回值时,启动时用startActivityF…
1)sendBuf(),sendText(),sendStream() 几乎所有的通信控件都会提供上面的3个方法.首先看看SendBuf(). function TCustomWinSocket.SendBuf(var Buf; Count: Integer): Integer;var ErrorCode: Integer;begin Lock; try Result := 0; if not FConnected then Exit; Result := send(FSocket, Buf,…
package RequestCenter import ( "bytes" "io" "net" "runtime" "strings" "time" ) //请求结构体 type QRequest struct { conn net.Conn } //构造函数 func CreateRequest(typename string, host string) *QRequest { r…
1.QTcpSocket 继承于QAbstractSocket继承于QIODevice 2.QTcpSocket 提供的几种接收和发送数据方法 write ( const char *, qint64 ) : qint64 write ( const char * ) : qint64 write ( const QByteArray & ) : qint64 writeData ( const char *, qint64 ) : qint64 read ( char * data, qint…
#include <afxinet.h> // 设置超时 CInternetSession session; session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 2000); session.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 3); session.SetOption(INTERNET_OPTION_SEND_TIMEOUT, 10000); session.SetOption(INTERNE…
""" 创建udp连接 发送数据给 """ from socket import * # 创建udp套接字,使用SOCK_DGRAM udp_socket = socket(AF_INET,SOCK_DGRAM) # 准备接收方的地址 dest_addr = ('',8080)#主机号,固定端口号 # 从键盘获取数据 send_data = input("请输入要发送的数据") # 发送数据到指定的电脑上 udp_socket…
http://www.jenkinssoftware.com/raknet/manual/creatingpackets.html Creating Packets with Bitstreams Write less data with bitstreams Lets take our mine example above and use a bitstream to write it out instead. We have all the same data as before.Messa…