c# - 如何从 2 文本框上显示的 COM 端口接收字符串
问题描述
我有 2 个来自 COM 端口的数据字符串(例如:字符串“1data2DATA”)。我希望字符串“1data”显示在 textbox_1 中,字符串“2DATA”显示在 texttextbox_2 中。我应该怎么做?
图片:
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) // nhan dulieu tu cong COM
{
string data = serialPort1.ReadExisting();
SetText(data);
}
private void SetText(string text)
{
//if (text[0] == 'A') // test thử
// {
if (this.tBoxCV1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText); // khởi tạo 1 delegate mới gọi đến SetText
this.Invoke(d, new object[] { text });
}
else
{
this.tBoxCV1.Text += text;
if (text == "1")
{
this.tBoxCV1.Clear();
}
}
//}
}
解决方案
只要格式永远是
" 1一些没有数字的字符2其他没有数字的字符"
然后你可以拆分角色2
private void SetText(string text)
{
if (this.tBoxCV1.InvokeRequired)
{
this.Invoke(new Action<string>(SetText), new object[] { text });
}
else
{
var results = text.Split('2');
results[1] = '2' + results[1];
this.tBoxCV1.Text += results[0];
if (results[0] == "1")
this.tBoxCV1.Clear();
this.tBoxCV2.Text += results[1];
if (results[1] == "2")
this.tBoxCV2.Clear();
}
}
但是,如果您可能在任一数据中收到 a 2
,那么我看不出这是怎么可能的,1
并且2
会产生可怕的分隔符。
推荐阅读
- javascript - 我如何知道来自特定函数的所有 AJAX 调用何时完成?
- hibernate - Grails 2.3.11 错误 pool.ConnectionPool - 无法创建池的初始连接
- c++ - 将函数应用于特征矩阵的重复子矩阵
- java - Android Telnet 客户端发送
- json - WireMock:如何配置 JSON 以在响应中显示请求标头
- react-native - 为什么路由到具有平面列表的路由会随着时间的推移而变慢?
- angularjs - Visual Studio 错误:无法在 Web 服务器上开始调试。远程服务器返回错误:(403) Forbidden
- javascript - 在滚动时无法读取 jquery 中未定义的属性“顶部”
- php - 降级 Ubuntu(18.04 到 16.04)或让 php 在 apach2 上工作
- scala - sbt scala 2.11 IntelliJ IDEA sbt 1.0 中的 java.lang.ClassNotFoundException