从数字秤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 "";
}
}
}
我希望我被解释清楚了。有人帮我写代码吗?
您似乎已经在端口上绑定了一个事件。DataReceiver在你的WinForms应用程序,但你的类库不支持相同的。类库只将字符串返回一次给调用代码。
我猜有方法在类库中引发事件,但我猜调用代码需要侦听事件。