gpt4 book ai didi

C# - 读取并行端口状态(简单的按钮开关)

转载 作者:行者123 更新时间:2023-11-28 08:13:00 25 4
gpt4 key购买 nike

我正在用 C# 更新一些最初用 VC++ V1.0 为 DOS6 编写的软件。

该软件的一个方面是检查并行端口,其中连接了一个简单的按钮开关。我目前不知道开关连接到哪两个引脚,但我有旧程序的源代码,相关部分如下...

#define switch_mask        0x10

void main(int argc, char *argv[])
{
int NewState = 0, OldState = 0;

/* Check switch */
NewState = _bios_printer (_PRINTER_STATUS, 0, 0);

if (NewState != OldState)
{
checkParallelPort (NewState);
OldState = NewState;
}
}

void checkParallelPort (int portState)
{
int SwitchState;
/* Switch bit is Active LOW */
SwitchState = (portState & switch_mask) ? 1 : 0;
}

现在 _bios_printer(在 bios.h 中)在 C# 中显然对我不可用,但我正在努力寻找可以完成这个简单任务的替代方案。

_bios_printer 上的信息是 here .我在 .Net 中进行了大量搜索以读取/写入并行端口,但似乎没有提供端口状态。

此外,您能否从这段代码(以及它如何检查“状态”)中得出结论,将两条开关线连接到 DB25 插头上?

如果有人对此有任何帮助/建议,我将不胜感激。非常感谢

最佳答案

它似乎正在检查“错误”,引脚 15。IIRC,这是在内部上拉的,因此您的开关应下拉引脚 15。将其连接在引脚 15 和 18 之间。

有一些可用的驱动程序允许读取 I/O 映射端口。您将必须导入并进行 DLL 调用,然后几乎肯定会轮询 pin :((

我真希望这个界面已经死了,被埋葬了!

关于C# - 读取并行端口状态(简单的按钮开关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8501655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com