基于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 产品使用手册
热门推荐
益生菌一般什么时候吃
髂胫束综合征怎么治疗
国产155毫米口径超级舰炮现身,中国重型巡洋舰不是梦
如何增强路由器信号,提升网络连接稳定性
一次说清混凝土冬季施工的质量控制要点,建议收藏!
四川青岩古镇在哪里:揭秘成都青岩古镇特别之处及所在城市
浓浓年味来!浙江各地过年习俗你了解吗?
眼睛疲劳也会影响情绪?医生教你4招改善
毕业生简历求职信三篇格式:优化策略与职场竞争力提升
福布斯发布 2024 全球亿万富豪榜:LV 董事长蝉联世界首富,马斯克仍第二
想交养老保险的途径有哪些?这些途径各自有什么优势?
铜价上涨的原因是什么?如何分析金属市场的价格趋势?
柯基犬的训练方法(全套教程)
眼科下乡义诊全流程揭秘:这些要点你知道吗?
脸红怎么办才能不红
夏日避坑指南:新手必知的游泳馆水质监测与安全防护全攻略
Go语言的并发模型设计原理与高效性分析
圆柏树什么寓意(圆柏:坚韧与美丽的完美结合)
适量饮酒对健康的影响分析
东北铁锅炖-小鸡炖蘑菇
医院的下一步:不等政策,定员定岗定编助力自救与增效
Excel线性回归分析图制作与应用指南
生石灰熟石灰石灰石分别是什么
暴涨近90%!连环提价,一月一涨!拐点已到?这些原料疯涨!
中医治疗肿瘤,如何判断病情正在好转?
以终为始:如何逆向思维,达成目标?
手机显示5GA是什么意思
菊花的药用价值与食用功效
15岁少年喝氮泵,真的会影响身高发育吗?
初中英语语法知识点汇总:形容词ing和ed形式的区别及主被动