基于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 产品使用手册
热门推荐
夏威夷是如何失去独立王国地位而被美国永久占领?
老药盐酸罗通定新用:失眠长期吃,睡眠8小时,副作用小,无成瘾
基本工资和岗位工资怎么定?HR必看的薪酬结构设计指南
年终奖如何设置:四大特点与底层逻辑详解
5G信号全攻略:如何确保手机稳定接收?
Excel图表制作教程:如何进行减脂数据分析
儿童涂鸦的“独特性”及其在心理治疗上的应用
如何识别股票市场的破位信号?这种识别方法有哪些技术指标?
馒头放冰箱超过3天会产生黄曲霉菌?真相来了!
春和景明的意思
情绪低落和抑郁症怎么分辨
五行属土最旺的字 土属性的字寓意好的名字
舌诊全解析:舌象与五脏健康的关系
十大游戏开发引擎
如何优化工时管理方案,提高员工效率?
B站限流怎么办?破解视频播放限制的终极指南
欧盟CE标志使用指南:定义、责任主体及申请流程详解
股票支撑点的确定方法及实际应用是什么?如何根据股票支撑点制定投资策略?
判断市场点位的依据是什么?这种依据如何影响投资决策?
芋头发芽发绿还能吃吗 如何辨别芋头不能吃了
别再乱做个税汇算清缴,年终奖计税方式选错,退税变成补税数千元
红烧排骨时,牢记5个香料,出锅后色泽红亮,软糯不柴,香味浓郁
强势美元风暴“熄火” 背后有何玄机?
刀郎为什么这么火,一个草根歌手的成长历程
摆地摊如何起步?新手必看指南
虾爬子蒸多久(虾爬子蒸多久可以吃)
美味背后的隐患:注意防范肉毒梭菌中毒
武则天不怕仇人,为何却怕猫?你看她都做了些什么
舌头有裂纹,是大病前兆?真相其实是……
面向大模型的存算技术:未来系统发展新趋势