08-26-2011 01:36 AM
we have an application which uses port commands like outp and inp to utilize some hardware. We have found, that on 64-bit Windows7 the low level support driver is not applicable, so we must go back to a 32-bit system. Is there any intention at NI to solve this issue, or the low level support driver will never be supported on 64-bit systems?
08-26-2011 03:17 PM
It will probably never be ported to 64-bit. It uses ancient technology that might run smack into security restriction problems, because this driver can also be used to control other addresses in I/O space.
I've been told that you can accomplish the same objective by using the VISA API. This example code has been alleged to work, but I haven't tested it myself, and so there are no guarantees:
int16 outpw (int16 port, int16 val)
{
viOpenDefaultRM (&drm);
viOpen (drm, "PXI0::MEMACC", VI_NULL, VI_NULL, &session);
viOut16 (session, 8, port, val); // 8 is I/O space
viClose (session);
viClose (drm);
return val;
}
int32 inpd (int16 port)
{
viOpenDefaultRM (&drm);
viOpen (drm, "PXI0::MEMACC", VI_NULL, VI_NULL, &session);
viIn32 (session, 8, port, &val);viClose (session);
viClose (drm);
return val;
}
Luis
07-24-2013 07:48 AM
08-28-2013 08:39 AM
To my knowledge, this address space is no longer accessible through NI drivers due to the security issues previously mentioned. For general parallel port communication, you should be able to use standard VISA writes and reads, though you may need to ground a few of the data control lines (pins 11 and 12).