在Linux中使用C#Mono控制并行端口

时间:2012-12-10 23:55:34

标签: c# linux mono parallel-port

根据标题,我想在Ubuntu中使用C#控制并行(LPT)端口。

Mono中是否有任何内置库可以让我这样做?

任何人都可以提供任何使这项工作的代码示例吗?

2 个答案:

答案 0 :(得分:1)

使用inpout驱动程序和api的基础指南和c#代码:http://www.codeproject.com/KB/cs/csppleds.aspx

更广泛的链接集合,包括技术以及与并行端口相关的软件:http://www.lvr.com/parport.htm

我花了很多时间研究这个,但从未找到过本机单声道库。串行端口btw更容易。

答案 1 :(得分:0)

虽然我承认Jesper的贡献,但我觉得他的答案是不完整的,最初的答案只提到了戴指出的Windows代码。 Jesper关于P / Invoke的后续评论确实让我走上了寻找答案的道路。

我已经记录了我的完整解决方案,包括代码示例:http://www.iaincarlin.com/ylsned/controlling-the-parallel-port-using-ubuntu-mono-and-c/但是,简而言之:

  • C#Mono中似乎没有用于访问并行端口的本机库
  • 需要P / invoke,我必须创建一个本机C ++应用程序,我可以使用DLLImport调用它来访问LPT1端口。
  • C ++应用程序本质上为我可以从C#调用的io库outb函数提供了一个包装器

我上面的博客文章包含有关我正在做的事情背景的更多详细信息。我可以使用原生C ++来做同样的事情(实际上将现有的Dos代码移植到Linux上会更容易),但我想尝试使用Mono,这是一种实用的方法。

我需要确认这里的帖子:http://www.moythreads.com/wordpress/2008/02/04/pinvoke-how-to-call-c-from-c/,这对于让这项工作最有帮助。