C#上位机(串口控制(三)

添加了定时器功能。打开后多长事件后,自动关闭。

1.窗体设计
在这里插入图片描述

注意:给label标签进行初值设置。在属性Text中进行设置。

2.函数设计
2.1.No.1开按钮设计

private void button3_Click(object sender, EventArgs e)
{
    int i = 0;
    //巧妙的使用try{}catch{}来获取关时间
    try
    {
        //获取两位数,如果不是两位数,跳转至catch中执行。
        i = Convert.ToInt32(textBox1.Text.Substring(0, 2));
    }
    catch
    {
        try
        {
            //获取一位数,如果不是一位数,跳转至catch中执行。
            i = Convert.ToInt32(textBox1.Text.Substring(0, 1));
        }
        catch
        {
            MessageBox.Show("请输入1-99正确的数!","提示");
            //退出函数
            return;
        }
    }
    if(serialPort1.IsOpen)
    {
        //如果是0的话,程序不需要定时功能。
        if (i == 0)
        {
            MessageBox.Show("请输入大于0的数字", "提示");
        }
        else 
        {
            //这样写不需要计数器
            timer1.Interval = i * 1000;
            //定时器开
            timer1.Start();
            //N0.1开按钮不能使用
            button3.Enabled = false;
        }
    }
    WriteByteToSerialPort(DeviceOpen1);//N0.1开
}

1.巧妙的使用try{}catch{}来获取label控件的时间.
2. timer1.Interval = i * 1000;这样写不需要计数器

2.2 N0.1关按钮设计

private void button4_Click(object sender, EventArgs e)
{
     try
     {
         //关闭定时器,如果定时器没开,则跳转至catch中执行。
         timer1.Stop();
     }
     catch
     {                    
     }
     button3.Enabled = true;
     WriteByteToSerialPort(DeviceClose1);//N0.1关
 }

2.3 定时器函数设计

private void timer1_Tick(object sender, EventArgs e)
{
    //定时器定时结束后,跳转至定时器函数。
    //N0.1开按钮可以使用
    button3.Enabled = true;
    button5.Enabled = true;
    button7.Enabled = true;

    //关闭定时器
    timer1.Stop();

    //N0.1关按钮关闭。
    WriteByteToSerialPort(DeviceClose1);//N0.1关
    WriteByteToSerialPort(DeviceClose2);//N0.2关
    WriteByteToSerialPort(DeviceClose3);//N0.3关

}

上一期链接:
1: C#上位机(串口控制(一)).
2: C#上位机(串口控制(二)).

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值