标签: parallel-port

python c扩展模块中没有返回值的方法

我正在尝试在python中创建一个通过并行端口发送数据的脚本.我正在用C语言创建自己的模块.

问题是:当我尝试执行我的模块时,python崩溃了.没有错误,没有数据,没有.它只是关闭.

这是我的模块:

#include <Python.h>
#include <sys/io.h>
#define BaseAddr 0x378

/*----------------------------------------------------------------------------------
Este es un módulo destinado a controlar el puerto paralelo.
Probablemente tenga que ser ejecutado como administrador.

Created by markmb
------------------------------------------------------------------------------------*/

static PyObject *
paralelo(PyObject *self, PyObject *args){
    int pin;
    ioperm(BaseAddr,3,1);
    if (!PyArg_ParseTuple(args, "i", &pin))
        return NULL;
    outb(pin,BaseAddr);
    ioperm(BaseAddr,3,0);
    return 1
}
PyMethodDef methods[] = {
    {"paralelo", paralelo, METH_VARARGS, "Sends data through a parallel port"},
    {NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initparalelo(void){
    (void) Py_InitModule("paralelo", methods);
}
Run Code Online (Sandbox Code Playgroud)

(它没有所有python混乱的工作)我通过distutils编译它然后,在终端(使用xubuntu),我把:

import paralelo …
Run Code Online (Sandbox Code Playgroud)

c python python-c-api parallel-port python-extensions

9
推荐指数
2
解决办法
8147
查看次数

以编程方式控制英国的电源插座

这很简单.

我想把一盏灯插入英国主电源.

我希望能够通过软件打开和关闭它 - 比如从串口命令,或者通过运行命令行或者我可以从ruby或Java获得的东西.

我看到很多关于如何使用美国电力系统的X10做到这一点 - 但是有没有人真的试过在英国这样做?

如果你有这个工作:

1)你使用的是什么硬件?

2)你如何从软件中控制它?

谢谢!

electronics serial-port parallel-port interfacing

8
推荐指数
1
解决办法
1051
查看次数

使用并行端口进行Delphi开发的最佳VM

我看到许多人正在使用虚拟机来托管IDE和所有必需的文件,进行S/W开发(不仅仅是Delphi).我已经使用Microsoft Virtual PC在各种操作系统上调试我的应用程序的问题,但很少在VM外部访问.我的应用程序使用USB,串行和 - 至关重要 - 直接I/O写入硬件(通过I/O权限驱动程序).我想让VM看到所有这些(当然只有一个VM可以运行).这可能吗?虚拟PC与VMWare的偏好是什么?

hardware delphi virtualization serial-port parallel-port

7
推荐指数
1
解决办法
1256
查看次数

"#include <asm/io.h>"导致"错误:asm/io.h:没有这样的文件或目录"

我正在使用gentoo并尝试编译程序来控制并行端口上的位.这条线靠近它的顶部:

#include <asm/io.h>
Run Code Online (Sandbox Code Playgroud)

当我尝试在其上使用gcc时,它会产生以下输出:

port.c:4:20:错误:asm/io.h:没有这样的文件或目录

"找到asm/io.h"yeilds(除其他外):

/usr/src/linux-2.6.32-gentoo/arch/x86/include/asm/io.h

所以我有头文件,但它找不到它?为什么这不起作用?

c gentoo hardware-interface parallel-port

7
推荐指数
1
解决办法
2万
查看次数

使用USB转并口适配器时,是否可以正常访问并口?

初步的故事

有这个程序使用并行端口与其他硬件同步.它将并行端口输出设置为指定的(字节)值.使用PC的内置并行端口时,这没有问题.目标平台是Windows XP到7,到目前为止一切正常.源代码在Delphi中,可访问且可以修改.

这个怎么运作

在Delphi中,我可以使用io.dll来设置并行端口的值,但也有其他可用的解决方案,如inpout32.dllport.dll.我打电话PortOut,指定一个端口号和字节值,并设置端口.

我现在想做什么 - 以及我需要帮助的地方

现在改变:这需要在没有内置并行端口的机器上工作(甚至不在主板上).有几种选择:

  • 使用USB转并口适配器将LPT端口添加到PC
  • 使用PCI卡,为PC添加LPT端口
  • 使用PCI Express卡,为PC添加LPT端口

我目前正在前往并专注于最简单和最便宜的可能性:USB转并口适配器.

主要问题

并行端口适配器之间似乎存在差异,这些适配器仅用于连接打印机和其他似乎更强大的适配器.真的有区别吗?或者我可以使用这5个$打印机适配器中的一个,插入我自己的硬件并从Delphi代码访问端口?或者我需要一个特殊的适配器?有没有人经历过这个?还有一个相关的问题在这里,但不同的适配器类型(如果存在的话)不存在提及.此页面表明确实存在差异:

与可以仅连接到打印机的所有其他USB并行端口相反,这可以连接到大多数硬件.

我希望通过USB存在解决方案,因为这样您就不必打开PC,这意味着可以按需添加适配器.

子问题

您是否有使用PCI(Express)解决方案的经验?如果USB方法不成功,我必须使用一个.

windows delphi usb delphi-2009 parallel-port

7
推荐指数
1
解决办法
5686
查看次数

C#LPT inpout32.dll

我没有得到任何错误或异常.

一个窗口中的按钮:

private void button1_Click(object sender, EventArgs e)
{
    ControlPort.Output(0x378, 0xff);
}
Run Code Online (Sandbox Code Playgroud)

和inpout.dll接口:

class ControlPort
{
    [DllImport("inpout32.dll", EntryPoint = "Out32")]
    public static extern void Output(int adress, int value);
}
Run Code Online (Sandbox Code Playgroud)

怎么了?D2上的LED一直亮着.

我有Windows 7 x64旗舰版.

.net c# lpt parallel-port

7
推荐指数
2
解决办法
2万
查看次数

在Linux上查找并行端口的内存地址

我正在尝试通过PCI Express卡找到我已连接到笔记本电脑的并行端口的基本(内存)地址.运行lspci -v显示我的计算机识别并行端口并提供I/O端口(1000和1008)但不提供内存地址(其他条目同时具有端口和内存位置......此卡是唯一没有内存地址的条目).此外,当我查看时,/proc/ioports我得到了lspci中给出的相同端口.但是,当我尝试在我正在运行的程序中使用这些地址中的任何一个(EMC2来控制步进电机)时,它在该地址处找不到并行端口.

如果有一个类似于Windows设备管理器 - >端口 - >资源的话,那真的很棒.在Ubuntu中有没有办法做到这一点?PCIe设备是否有标准内存位置?

编辑: 来自的输出lspci -v

04:00.0 Parallel controller: Oxford Semiconductor Ltd Device c110 (prog-if 02)
Subsystem: Oxford Semiconductor Ltd Device c110
Flags: bus master, fast devsel, latency 0, IRQ 18
I/O ports at 1000 [size=8]
I/O ports at 1008 [size=4]
Capabilities: [40] Power Management version 3
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [70] Express Legacy Endpoint, MSI 00
Capabilities: [100] Device Serial Number 10-01-00-11-11-e0-30-00
Capabilities: …
Run Code Online (Sandbox Code Playgroud)

linux memory-address parallel-port pci

6
推荐指数
1
解决办法
1万
查看次数

通过C#打印(并行端口)点阵

对于项目的需要,我想在特定位置打印LPT1,这将在点阵打印机中打印文档,我应该在他们应该去的地方打印值.我真的很讨厌回去,我不知道从哪里开始.Internet没有关于使用C#在LPT端口中打印的具体信息,尤其是在打印时如何在特定位置发送值.有什么好的例子吗?这个教程?将是一个生命救世主.

printing dot-matrix parallel-port c#-3.0

4
推荐指数
1
解决办法
1万
查看次数

与C#并行端口

我试图用C#程序将数据发送到LPT1端口,遗憾的是没有成功..我使用的是Windows 7 x64.我试过x86和x64(inpoutx64.dll)dll的..

我发送时使用x64 dll:

Output(888, 255);
Run Code Online (Sandbox Code Playgroud)

它只是继续程序,因为一切正常,但我在万用表上看不到任何东西(只有静态0.02V)..

我还尝试了以下C++:

int main () {
int val = 0;
printf("Enter a value\n");
scanf("%d", &val);
_outp(0x378, val);
getchar();
_outp(0x378, 0);
return 0; }
Run Code Online (Sandbox Code Playgroud)

但它引发了一个例外:

Unhandled exception at 0x01281428 in ppac.exe: 0xC0000096: Privileged instruction.
Run Code Online (Sandbox Code Playgroud)

我记得有一次我在xp(C#而不是C++代码)上做了类似的工作,我希望它也可以在win7上运行..请帮助我.

谢谢.

c# c++ lpt parallel-port

4
推荐指数
1
解决办法
3492
查看次数

PsychoPy:使用XP 32位通过并行PC端口发送触发器

我遇到了从带有Windows XP Professional和Psychopy v.1.81.03的32位PC向并行端口发送触发器的问题.

我很肯定端口地址是378,并且能够使用Eprime发送触发器,并且我可以使用软件parmon打开和关闭特定引脚(http://english.eazel.com/lv/group/view/ kl35264/Parmon.htm)

我尝试过使用Stéphanie和Nicholas发布的实验(请参阅psychopy google小组中的这篇文章:https://groups.google.com/forum/#!topic/psychopy-users/PxPhRDkuu2A )

我已经验证安装了pywin32(版本217)和并行,并尝试了两者

port = parallel.ParallelPort(address=0x0378)
port = parallel.PParallelInpOut32(address=0x0378)
Run Code Online (Sandbox Code Playgroud)

使用ParallelPort时,我得到:

Traceback(最近一次调用最后一次):

文件"D:\ SebastianKorb\untitled2_lastrun.py",第65行,in

port = parallel.ParallelPort(address = 0x0378)AttributeError:'module'

对象没有属性'ParallelPort'

第65行port = parallel.ParallelPort(address=0x0378) 是执行命令的地方(请注意,在此之前有行from psychopy import parallel)

当使用PParallelInpOut32时,我得到相同的(现在只有'PParallelInpOut32'的错误)

我还尝试运行心理参考手册(http://www.psychopy.org/api/parallel.html)上显示的几行代码:

from psychopy import parallel 
port = parallel.ParallelPort(address=0x0378) 
port.setData(4) 
port.readPin(2) 
port.setPin(2, 1)
Run Code Online (Sandbox Code Playgroud)

但同样,我得到了同样的错误.

我应该提一下,我还验证了我对该文件的管理员访问权限 C:\Windows\system32\drivers\parport.sys

你能告诉我接下来应该尝试什么吗?

python triggers parallel-port psychopy

3
推荐指数
1
解决办法
1974
查看次数