当前位置: 首页 > news >正文

邢台做网站推广费用营销策划机构

邢台做网站推广费用,营销策划机构,扬子科技网站建设,怎么样自己建立一个网站想要了解更多内容,关注微信公众号:实在太懒于是不想取名 作为一个有着伟大理想,崇高信念21社会主义青年,在我平时用着串口助手、计算器的时候。我总是寻思着,我能不能自己去实现做一个软件,能实现我日常想要…

想要了解更多内容,关注微信公众号:实在太懒于是不想取名

        作为一个有着伟大理想,崇高信念21社会主义青年,在我平时用着串口助手、计算器的时候。我总是寻思着,我能不能自己去实现做一个软件,能实现我日常想要做的功能,例如串口助手啦,图片助手啦,文件转换啦等等。

        于是打算从0.5开始手搓一个大杂烩软件。

        首先的工具我就想到了串口助手,那么本期我们就介绍如何使用C#制作串口助手。

相关库安装

图片

首先,我们需要在NuGet包管理中,找到我们的关于端口的包

图片

我们搜索这个包并且安装这个包,这样子我们就可以在C#中调用我们的端口类了。

页面布局

图片

通常我们的串口助手最基本的数据接收和发送,打开和关闭串口以及选择端口设置波特率等等,所以我们需要若干个TextBox文本框,Label标签以及Button按钮来实现我们的基本功能最后还需要有一个下拉式的ComboBox来选择我们的串口

我们在左边的空间库中寻找我们需要的控件,放置到我们的设计器中。

基础编写

private void LoadAvailablePorts()
{
// 获取可用端口
string[] ports = SerialPort.GetPortNames();
// 将端口添加到ComboBox中
COMChoose.Items.AddRange(ports);
// 如果需要,默认选择第一个端口
if (COMChoose.Items.Count > 0)
{
COMChoose.SelectedIndex = 0;
}
 

我们首先编写获取端口的代码,并且在FromLoad函数中调用这个代码,这样子我们就可以加载端口显示在下拉框中

CheckBit.SelectedIndex = 0;

我们在这些选项框中使用默认第一个数据。

private void Connect_Click(object sender, EventArgs e)
{
if (serialPort.IsOpen)
{
// 串口已经打开,关闭串口
serialPort.Close();Connect.Text = "打开串口";
// 启用控件
COMChoose.Enabled = true;
PortText.Enabled = true;
DataBit.Enabled = true;
StopBit.Enabled = true;
CheckBit.Enabled = true;
}
else
{
// 串口未打开,尝试打开串口
try
{
// 配置串口
serialPort.PortName = COMChoose.SelectedItem.ToString();
serialPort.BaudRate = int.Parse(PortText.Text); // 获取波特率
serialPort.DataBits = int.Parse(DataBit.SelectedItem.ToString()); // 获取数据位
// 设置停止位
switch (StopBit.SelectedItem.ToString())
{
case "1":
serialPort.StopBits = StopBits.One;
break;
case "1.5":
serialPort.StopBits = StopBits.OnePointFive;
break;
case "2":
serialPort.StopBits = StopBits.Two;
break;
default:
serialPort.StopBits = StopBits.One;break;}
// 设置校验位
switch (CheckBit.SelectedItem.ToString())
{case "None":
serialPort.Parity = Parity.None;break;
case "Odd":
serialPort.Parity = Parity.Odd;
break;
case "Even":
serialPort.Parity = Parity.Even;
break;
default:
serialPort.Parity = Parity.None;
break;}// 打开串口
serialPort.Open();Connect.Text = "关闭串口";// 禁用控件
COMChoose.Enabled = false;
PortText.Enabled = false;
DataBit.Enabled = false;
StopBit.Enabled = false;CheckBit.Enabled = false;
serialPort.DataReceived += DataReceivedHandler;
}
catch (Exception ex)
{// 打开串口失败,显示错误消息
MessageBox.Show("串口打开失败" + ex.Message);
}
}

我们在点击按钮的时候设置的代码是:点击按钮改变按钮的文本,并且配置按钮的各项数据,禁用/开启端口选择..等等的使用以及创建新的回调函数(DataReceivedHandler)在这个函数中编写我们收到的代码信息。

private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
try{
// 从串口读取数据
string data = serialPort.ReadExisting();
// 将数据追加到 Receive 文本框中
UpdateReceiveTextBox(data);
}
catch (Exception ex)
{
MessageBox.Show("接收失败" + ex.Message);
}
private void UpdateReceiveTextBox(string data)
{
if (Receive.InvokeRequired)
{
// 如果不在 UI 线程上,通过 Invoke 在 UI 线程上更新文本框
Receive.Invoke(new Action<string>(UpdateReceiveTextBox), data);
}
else
{
// 在 UI 线程上更新文本框
Receive.AppendText(data);
}

我们在串口回调函数中简单的添加一些内容,我们将收到的串口打印到我们的TextBox上(UpdateReceiveTextBox这个函数也是我们自己定义的)作用是用来区分当前程序是不是在UI线程上,如果不在UI线程上,我们需要用另一种方式来更新我们的控件

图片

接收串口数据成功,我们也添加了时间戳的功能,用来为我们的代码接收添加时间。

// 在 UI 线程上更新文本框if (TimeTik.Checked){// 如果 TimeTik 被勾选,加上时间戳
data = $"{DateTime.Now:HH:mm:ss} -> {data}";
}

图片

接着我们来编写发送部分的代码

private void TransBotton_Click(object sender, EventArgs e)
{
try{
// 获取要发送的文本string dataToSend = TransText.Text;// 判断是否勾选了 NewLine 复选框
if (NewLine.Checked)
{
// 添加新行dataToSend += Environment.NewLine;  ‍‍       ‍ ‍ ‍‍‍‍‍     }‍‍‍ ‍   // 发送数据
serialPort.Write(dataToSend);
}
catch (Exception ex)
{MessageBox.Show("串口发送失败");}

图片

        其实这个东西运行起来还是有不少BUG的,需要我们不断的优化,感兴趣的朋友可以后台私信联系。

http://www.hkea.cn/news/27895/

相关文章:

  • 自己怎么做网站视频赚钱5g网络优化培训
  • 数据库修改网站管理员密码seo网站有优化培训吗
  • 福田做商城网站建设找哪家公司好抖音怎么运营和引流
  • 厘米售卡站怎么做网站禁止搜索引擎收录的方法
  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字
  • 做网站智能工具江阴企业网站制作
  • 怎么看网站有没有做推广大数据营销系统多少钱