由于最近使用FPGA的通信模块,对于上位机的功能需要一些改动,开始学习一下上位机软件的制作,因为没有学过C++等等,更不了解上位机软件的制作流程。最近看了一点学习资料,觉得是很好的入门教程。通过一个定时器一个小软件的制作,来熟悉整个流程。下面是该软件的制作过程。

        首先,打开VS软件,建立项目:

上位机软件架构 上位机软件设计流程图_Text

         选择C#语言,然后架构选择4,不同的架构适用于不同的Windows环境,有的架构只能XP适用,然后选择窗体应用程序,再命名就好了:

上位机软件架构 上位机软件设计流程图_c#_02

         建立好之后,就可以在解决方案中看到form1,点击form1.cs就是我们程序设计的图形化窗口,在这里添加程序界面的图形化按钮:

上位机软件架构 上位机软件设计流程图_System_03

         这些图形按钮,有各自的功能,比如这里我们使用了按钮,下拉框,进度条等,是在工具里面调用的,然后点击添加的一些控件,就可以在右边看到有很多属性可以改,比如图形大小,标签名字等等:

上位机软件架构 上位机软件设计流程图_Text_04

         然后就是程序的编写,在图形界面双击一个控件,就会形成一个触发事件,就可以在程序里面去控制,你想要的是什么效果:

上位机软件架构 上位机软件设计流程图_Text_05

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        int count;  //用于定时器计数
        int time;  //存储设定的定时值
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int i;
            for (i = 1; i < 100; i++)  //计数范围 (0~99)
            {
                comboBox1.Items.Add(i.ToString() + " 秒"); //对其items的属性添加下拉列表的值,将i以数字形式展示,后面再加秒(要加空格 后面要提取数字部分)
            }
            comboBox1.Text = "1 秒";
          //  label3.Text = "";
        }
         
        private void timer1_Tick(object sender, EventArgs e) //定时器事件
        {
            count++; //记当前秒
            label3.Text = (time - count).ToString() + "秒";  //显示剩余时间
            progressBar1.Value = count;  //设置进度条进度
            if (count == time)
            {
                timer1.Stop();  //时间到,停止计时
                System.Media.SystemSounds.Asterisk.Play();  //提示音
                MessageBox.Show("时间到了!","提示");  //弹出提示框
            }
        }

        private void button1_Click(object sender, EventArgs e)  //开始计时按钮事件
        {
            string str = comboBox1.Text;  //把下拉框里面的字符存下来
            time = Convert.ToInt16(str.Substring(0,2)); //得到设定的定时器值(整形)(从字符串的第0位开始提取,然后提取两位得到整形数据)
            progressBar1.Maximum = time;
            timer1.Start();//开始计时
        }

      
 
    }
}

        然后在下面这个文件中,会系统生成每一步的触发事件:

上位机软件架构 上位机软件设计流程图_Text_06

 然后点击debug(或者release)旁边的绿色三角形,就可以看到效果(一个是调试版本,一个是发布版本)

上位机软件架构 上位机软件设计流程图_visual studio_07

 完整工程放在qq群了,稍后会发布视频到哔哩哔哩。