基于TCP/IP实现串口到网络的通讯转换
工作模式
通过串口服务器,采集到天平的称量值发送到PC端
操作步骤
1.软件测试
测试工具: USR-M0_V2.2.5.8
基础设置:模块静态IP 设置成服务器IP,HTTP服务端口 设置成4001,网关 设置成当前连接的网关IP,勾选 Reset、Link、RFC2217。如下图所示:
端口设置:校验/数据/停止 设置成NONE/8/1,串口波特率 设置成9600,模块工作方式 设置成TCP Server,本地端口 设置成21018,远程端口 设置成8234。如下图所示:
2.数据接收测试
测试工具: SerialPortUtility
串口设置:串口选择TCP/UDP,波特率选择9600,Mode选择TCP Client,Dest IP 输入192.168.5.19,Dest Port 输入21018。如下图所示:
3.代码实现
首先需要声明一个InitializeTcpClient方法,用来接收服务器IP和端口号
这里需要引用 SuperSocket.ClientEngine.dll 和 SuperSocket.ProtoBase.dll
private AsyncTcpSession InitializeTcpClient(string serverIP, int port)
{client = new AsyncTcpSession();// 连接断开事件client.Closed += client_Closed;// 收到服务器数据事件client.DataReceived += client_DataReceived;// 连接到服务器事件client.Connected += client_Connected;// 发生错误的处理client.Error += client_Error;IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(serverIP), port);client.Connect(endPoint);return client;
}
private void client_Closed(object sender, EventArgs e)
{Console.WriteLine("连接断开");
}private void client_DataReceived(object sender, DataEventArgs e)
{string deviceData = Encoding.Default.GetString(e.Data);ReadWeight(deviceData);
}private void client_Connected(object sender, EventArgs e)
{Console.WriteLine("连接成功");
}private void client_Error(object sender, SuperSocket.ClientEngine.ErrorEventArgs e)
{Console.WriteLine(e.Exception.Message);
}
将deviceData字符串转换为字符数组,进行拆分替换后,最终拿到称量值数据
public string weight = "";private string ReadWeight(string deviceData)
{ try{ string[] deviceStr = deviceData.Split(" ".ToCharArray());if (deviceStr.Length > 0){string[] weightStr = deviceStr[1].Split("\r".ToCharArray());weight = weightStr[0].ToUpper().Trim().Replace("SS", "").Replace("SD", "").Replace("g", "").Replace(Environment.NewLine, "").Substring(0, 6);}return weight;}catch (Exception ex){return ex.ToString();}
}
4.最终效果
当 PWR、WORK、LINK、TX 指示灯亮起,表示连接成功
参考资料
ME,ML,MS天平和电脑通讯指导文件
USR-TCP232-306 产品使用手册
基于TCP/IP实现串口到网络的通讯转换相关推荐
- Linux网络编程——基于tcp/ip的模拟聊天(文件传输)工具
开发平台:Linux 开发工具:Ubuntu, sourceInsight4.0 项目介绍: 本项目基于TCP/IP协议创建一个网络通信系统,可以实现客户之间的聊天通信以及文件传输,同时利用进程实现多 ...
- 【网络编程】基于TCP/IP协议的C/S模型
相关视频--C3程序猿-windows网络编程:第一部分tcp/ip 我的小站--半生瓜のblog 基于TCP/IP协议的C/S模型 基于TCP/IP协议的C/S模型 TCP/IP协议 Client/ ...
- 基于TCP/IP协议的网络摄像头的QT项目
目录 项目简述: 1.服务器 步骤一:首先搭建一个基本的服务器框架. 1.初始化服务器的函数主体 2.等待连接 步骤二:数据库的使用,本次项目使用的Sqlite3数据库 1.数据库初始化 2.登录时使 ...
- 基于TCP/IP网络的管理结构和标记
组织:中国互动出版网( http://www.china-pub.com/) RFC文档中文翻译计划( http://www.china-pub.com/compters/emook/aboutemo ...
- RFC1155基于TCP/IP网络的管理结构和标记
组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook ...
- JAVA Socket 底层是怎样基于TCP/IP 实现的???
首先必须明确:TCP/IP模型中有四层结构: 应用层(Application Layer).传输层(Transport Layer).网络层(Internet Layer ).链路层( ...
- 打印服务器协议,基于TCP/IP协议的嵌入式网络打印服务器设计
摘要: 随着电子技术和计算机网络技术的发展,嵌入式系统在家庭和工业的各个领域都得到了广泛的应用,各种信息家电,网络设备以及工业控制领域都出现了嵌入式系统的身影,其数量已经远远超过了各种通用计算机.但是 ...
- java: java mina ——基于TCP/IP、UDP/IP协议栈的通信框架
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),M ...
- 基于TCP/IP协议 区别 GET和POST
基于TCP/IP协议讲解GET和POST的区别(转载于博客园) 在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象.但是如果路上跑的全是看起来一模一样的汽 ...
- 基于TCP/IP协议的物联网安卓应用开发基础教程(Android Studio开发)
[华为云IOT物联网论坛外部版主:中华小能能] 第0章 简介 大家好,在上上上期发布的教程中,教大家如何利用Android Studio开发出一款接入华为云物联网平台并调用相关API完成设备属性查询. ...
最新文章
- VSTO Office二次开发PPTRibbonX命令操作及对象添加
- Python常用网页字符串处理技巧
- 创建mini Linux
- 来看看CDN网络安全防护的方案
- 图像工程CH4 频域图像增强
- 自己实现一些JQuery插件-----------------------------------(一)
- Hybris UI的Route(路由)实现
- 中科大镜像源_JETPACK4.4安装软件和备份镜像的方法介绍
- mysql系统自带示例数据库_MySQL系统自带的数据库information schema
- 大数据时代下,App数据隐私安全你真的了解么?
- 连续两年入选Gartner公共云容器,阿里云在边缘容器方面做了什么?
- 我要带徒弟学JAVA架构 ( 写架构,非用架构 )
- 全绿色版影视电影小程序源码-提供苹果CMS接口
- baidu__git_android
- 创维机顶盒E900刷LinuxNas系统
- iPhone手机上最不起眼的5款APP,用过的人都赞不绝口!
- ASDM的网管的环境搭建
- 首家新三板上市区块链公司:他们提供面向政务、商务、公众等解决方案
- 给ssh服务添加谷歌双重认证
- 关于vue ui启动没反应问题