【发布时间】:2025-12-16 19:45:02
【问题描述】:
我有一个名为Telescope 的大型公共课程。我创建了一个新表单 (form1.cs),我想调用该类的一些公共 void。
我在表单中做这样的事情来初始化类
Telescope controls = new Telescope();
controls.CommandString("Gs#",true);
之后我可以看到所有的方法,但是执行失败,因为类已经初始化并且有一个现有的串口连接正在进行,所以它报告没有串口连接。
有什么帮助吗? 如何使用新表单中的现有方法?
Telescope 类在 Driver.cs 中
public string CommandString(string command, bool raw)
{
CheckConnected("CommandString");
serialPort.ClearBuffers();
serialPort.Transmit(command);
return serialPort.ReceiveTerminated("#");
}
当我在 Driver.cs(望远镜类所在的位置)中使用 CommandString 时,它可以工作。它不适用于 form1.cs
我得到一个例外:
************** Exception Text **************
ASCOM.NotConnectedException: CommandString
【问题讨论】:
-
这行得通。现在,您的 Telescope 类中到底发生了什么以及为什么它不起作用只有您才能知道,除非您发布代码。
-
@IvanIčin 他正在尝试连接到串行端口......这有点超出了 C# 的范围。但是一个通信端口一次只能保持一个连接。
-
等等,我不想再连接串口了。我只想利用现有的连接。让我编辑帖子