연구 및 프로그래밍이 끝나고 나면 inpout32.dll 및 inpoutx64.dll의 모든 변형 (바이너리, 소스 코드, 32 비트, 64 비트 주소 래퍼)을 시도하게되었습니다. 없음 작동 : 포트의 출력 비트가 변경되지 않습니다.inpout32.dll/inpoutx64.dll이 모든 병렬 포트와의 I/O를 처리합니까?
그러나 병렬 포트 출력을하는 다른 상업적으로 사용 가능한 프로그램을 사용하기 때문에 0과 1 사이의 값을 전달하여 8 개의 출력 비트 (D0-D7)에 트리거 (상태 변경)를 감지 할 수 있기 때문에 가능하다는 것을 알고 있습니다. 255, 내 응용 프로그램에서하고 싶은 것.
나는 적어도이 페이지에서 모든 조언을 따랐다 :
- Write to parallel port in Windows 7
- C# LPT inpout32.dll
- C# - Read Parallel Port State (Simple Push Switch)
- Write to a parallel port on windows 7
- Parallel port with C#
- http://www.lvr.com/parport.htm
Windows 7, 64 비트를 사용하고 있습니다. 내 SIIG Cyberpro 포트는 주소 0xCCD8에 4 개의 상태 비트가있는 LPT3으로 매핑됩니다. Q : 다른 ECP 프린터 포트가 0x0378에 LPT1로 매핑되었지만 작동하지 않습니다.
Win7에서 직접 _inp(), _outp() 호출보다 더 잘 알고 있습니다.
아무도 도와 줄 수 있습니까?
드라이버 코드를 다운로드하고 수정해야 할 경우 할 수 있으면 할 수 있지만 어렵지는 않다고 생각합니다. 참고로
using System;
using System.Runtime.InteropServices;
namespace ParallelPort
{
public class PortAccess
{
//inpout.dll
[DllImport("inpout32.dll")]
private static extern void Out32(ushort PortAddress, short Data);
[DllImport("inpout32.dll")]
private static extern short Inp32(ushort PortAddress);
private ushort _PortAddress = 0;
public ushort PortAddress { get { return _PortAddress; } }
public PortAccess(ushort portAddress)
{
_PortAddress = portAddress;
short result = 0;
try
{
result = Inp32(portAddress);
}
catch (DllNotFoundException e)
{
throw new ArgumentException("Unable to find InpOut32.dll");
}
catch (BadImageFormatException)
{
result = 0;
}
if (0 == result)
throw new ArgumentException("Unable to open parallel port driver");
}
//Public Methods
public void Write(ushort Data)
{
Out32(_PortAddress, (short)Data);
}
public byte Read()
{
return (byte)Inp32(_PortAddress);
}
}
}
당신이 * 알 수있는 * 작동하지 않는다는 것을 설명하지 않는 것이 표준 실수입니다. "오픈 컬렉터 출력"이라는 용어는 전자 제품으로 향하는 것을 의미하지 않습니다 .stackexchange.com 및 병렬 포트가 작동하는지 확인하는 방법을 묻습니다. –
죄송합니다. 피곤했습니다. 나는 잊었다. 대답은 : 나는 각 병렬 포트 출력 비트를 움직이는 시간 그래프의 컬러 라인으로 표시하는 데이터 판독기/수집기가있는 두 번째 컴퓨터가 있습니다. 포트에 쓰는 상용 소프트웨어를 사용하여 1 바이트 값을 쓸 수 있습니다. 그래프에서 각 비트를 개별적으로 설정하고 식별 할 수 있습니다. 독점 상용 소프트웨어를 반영한 소프트웨어를 사용하면 상업용 소프트웨어와 "동일한"작업을 수행하더라도 출력이 표시되지 않는 것으로 나타났습니다. 단일 바이트를 작성하십시오. 나는 comm-sw이 그것을 어떻게하는지 알아낼 수있는 방법이 없다. – shipr