Avalonia跨平台入门第二十五篇之玩耍串口

您所在的位置:网站首页 安卓232串口 Avalonia跨平台入门第二十五篇之玩耍串口

Avalonia跨平台入门第二十五篇之玩耍串口

#Avalonia跨平台入门第二十五篇之玩耍串口| 来源: 网络整理| 查看: 265

上一篇刚更新完玩耍TCP,下面就有朋友咨询能不能玩一下串口;既然有这需求,咱就花费点时间一下,毕竟一直都是喜欢新鲜的东西format,png,那就折腾白;笔记本没有串口,咱就虚拟二个串口:

b577f3f977a6cb02a03dbcc577b3aa91.png2、虚拟机下Ubuntu配置串口:

b20e155428544f5d65e0654b26e62c11.png3、环境完事,获取本地所有的串口:

private void GetAllSerialPorts() { string[] portNames = SerialPort.GetPortNames(); if(portNames.Length == 0) { AllLogs.Add("没有找到串口"); } else { AllLogs.Add("获取所有的串口成功"); foreach(string portName in portNames) { Ports.Add(portName); } } }

4、根据串口的名称去打开串口:

private void OpenPort(string portName)  { serialPort = new SerialPort(portName, 9600); serialPort.Encoding = Encoding.UTF8; // 注册数据接收事件 serialPort.DataReceived += SerialPortDataReceived; if(!serialPort.IsOpen) { try { serialPort.Open(); AllLogs.Add("串口打开成功"); } catch(Exception ex) { AllLogs.Add($ "串口打开失败{ex.Message}"); } } }

5、接收数据的处理:

if(e.EventType == SerialData.Chars) { // 接收到字符数据 byte[] receivedBytes = new byte[serialPort.BytesToRead]; serialPort.Read(receivedBytes, 0, receivedBytes.Length); string receivedData = Encoding.UTF8.GetString(receivedBytes); // 处理接收到的字符数据 MessageModel model = new MessageModel() { MessageType = MessageTypeEnum.Receive, Message = receivedData }; AllMessage.Add(model); }

6、发送数据:

public void SendData(string data) { if(serialPort.IsOpen) { byte[] encodedBytes = Encoding.UTF8.GetBytes(data); serialPort.Write(encodedBytes, 0, encodedBytes.Length); SendMessage = null; MessageModel model = new MessageModel() { MessageType = MessageTypeEnum.Send, Message = data }; AllMessage.Add(model); } }

7、最终验证成功后的效果:

faa1800dd097744e4db4f03dee13eeb9.png

最终简单的效果先这样吧1d482cf1dc582fce296af88848fb7302.png;以后有时间的话,可以再去摸索一下更复杂的效果08af3e466faa0a6705fde9abc6123872.png;编程不息、Bug不止、无Bug、无生活00b9f57c673ca670e60ae1438a7a8865.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3