基于TCP/IP实现串口到网络的通讯转换
创作时间:
作者:
@小白创作中心
基于TCP/IP实现串口到网络的通讯转换
引用
CSDN
1.
https://blog.csdn.net/guangwenyin/article/details/123165485
工作模式
通过串口服务器,采集到天平的称量值发送到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 产品使用手册
热门推荐
省钱又实用:性价比高的文具选购指南
《西游记》万圣公主得罪了谁?为什么后果这么严重?
医学科普动画视频制作:一场知识与创意的碰撞
全瓷牙一般有多少种材质?各自的特点比较?
如何使用CAD绘制室内房间图纸
餐桌上的权力游戏:从外公的筷子到斯大林的酒宴
只晒被子是不够的,你知道被芯其实可以洗吗?
羽绒被芯的保养与更换周期
孕期运动指南:好处、类型与注意事项全解析
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
什么样的房子算“坐北朝南”?为何房子大门不能朝北方?答案来了
「防灾教育」地震频发:全方位的应对策略与经验
挂画艺术博大精深,客厅字画更是整个家居风格的“点睛之笔”
云顶之弈装备伤害算法详解:真实伤害、累加伤害和暴击伤害机制
芝加哥大学经济学专业必修课程详解
摄影艺术解析:从专业视角解读一幅图片的魔力
夫妻之间如何做深入的感情沟通
有暴力倾向的四大特征
3 招教你重置 Windows 11 系统,快速恢复出厂设置
如何通过数字化技术实现城市高效管理?
泡腾片可以直接吃吗?正确使用方法及注意事项
职工养老金如何计算?三部分组成详解
化学和化工的区别
口碑最高的十大丧尸片,全程令人血脉紧张,你看过几部?
破解地沟油之谜:从危害到资源化利用的全面解析
潍坊寒亭杨家埠:挂在墙的是年画,飞上天的是风筝
新学期即将开启,做好这五点准备,元气满满地迎接挑战!
WiFi 6 与 WiFi 5 对比,哪个更好?
76㎡小户型混搭风改造:从隔断重重到通透明亮
腺样体肥大不做手术,应该如何治疗?