从数字秤DLL文件c#同步更新重量

本文关键字:同步 更新 文件 数字 DLL | 更新日期: 2023-09-27 17:50:14

我建立了一个软件,从数字秤检索重量,并在WinForms中的标签输出。每当体重在秤上发生变化时,它也会在标签上自动更新。我成功地做到了。

这是我的代码:

public partial class Form1 : Form
    {
        private SerialPort port = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
        public Form1()
        {
            InitializeComponent();
            port.DtrEnable = true;
            port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            port.Open();
        }
        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                this.Invoke(new EventHandler(DoUpdate));
            }
            catch (Exception ex)
            {
            }
        }
        private void DoUpdate(object s, EventArgs e)
        {
            try
            {
                label1.Text = port.ReadLine();
            }
            catch (Exception ex)
            {
                label1.Text = ex.ToString();
            }
        }
    }
现在,我的老板让我在一个。dll文件(类库)中实现这段代码。他只是想添加一个引用,调用类,它返回权重,它会自动更新。他只是想在Page Load上做一个简单的调用,就像这个示例:
Scale sc = new Scale();
label1.text = sc.weight();

我可以成功返回权重,但它不会通过类库自动更新,这是我在类库(.DLL文件)中使用的代码:

public class Scale
    {
        SerialPort port;
        public string weight()
        {
            try
            {
                port = new SerialPort(com, 9600, Parity.None, 8, StopBits.One);
                if (port.IsOpen == false)
                {
                    port.Open();
                }
                port.DtrEnable = true;
                return port.ReadLine();;
            }
            catch(Exception ex)
            {
                return "";
            }
        }
    }
我希望我被解释清楚了。有人帮我写代码吗?

从数字秤DLL文件c#同步更新重量

您似乎已经在端口上绑定了一个事件。DataReceiver在你的WinForms应用程序,但你的类库不支持相同的。类库只将字符串返回一次给调用代码。

我猜有方法在类库中引发事件,但我猜调用代码需要侦听事件。