我有一个BeagleBone黑运行Debian,有一个480x272像素的斗篷(触摸屏)。我使用wicd作为有线/无线接口,因为它有一个非常好的python/gtk-based solution,可以让最终用户轻松地设置各种网络配置。
问题是最终用户无法使用物理键盘,因此为了进入wifi设置,他们需要一个虚拟键盘。
我的主要项目是基于mono的(C#),我有一个用GtkSharp(C#)编写的虚拟键盘。我可以从其他C项目文件调用它,但不能从python模块打开它。
我通常调用wicd
客户机:
private void CallWicdDialaog()
{
Process proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "/usr/bin/wicd-client",
Arguments = "-n",
UseShellExecute = false,
RedirectStandardOutput = false,
CreateNoWindow = true
}
};
proc.Start();
}
这将在本机Debian操作系统中启动python进程,而不是通过mono/C项目。除了这个虚拟键盘之外,我不需要在wicd
和我的mono项目之间进行“通信”。
wicd
项目在其guiutil.py
文件中挂接gtk焦点事件,如下所示:
我想做的是在show_characters
定义中调用我的虚拟键盘。
我该怎么做?
这些系统集成问题从来都不容易解决。下面是一些我要看的东西。在
在启动键盘的时候。想办法用终端里的线来做。一旦你有了它,你就可以计算出控制流。在
传输数据可能很有趣。首先想到的两件事是:
祝你好运!在
您可以使用键盘创建一个独立的GtkSharp应用程序,打印到stdout并使用subprocess.check_output从python运行它。在
您可以将python代码移植到IronPython这应该允许双向调用,但您可能必须为目标环境构建IronPython。在
如果你可以在键盘上提供C/C++接口,你可以使用它作为扩展模块,这可能比直接把它移植到Python上花费更少的精力。在
或者,可以将键盘作为外部进程调用,并在子进程中使用管道。在
相关问题 更多 >
编程相关推荐