2012-06-01 4 views
2

어떤 종류의 임베디드 또는 하드웨어 프로그래밍도 수행하지 않았고, 주로 웹 어플리케이션을 다루었습니다. 하지만 우리는 C#에서 USB 릴레이를 켜고 끌 필요가 있습니다. here을 구입하는 기기의 PDF를 받았습니다. 질문 나는 DLL/액세스 serialPort1에 라이브러리의 일종 필요가 없을 것, 쓰레기 질문에 대한 미안하지만 난USB 릴레이 유닛 프로그래밍

private void button1_ON_Click(object sender, EventArgs e) 
{ 
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x01 }, 0, 3); 
} 
private void button1_OFF_Click(object sender, EventArgs e) 
{ 
serialPort1.Write(new byte[] { 0xFF, 0x01, 0x00 }, 0, 3); 
} 

: 문서에서

몇 가지 샘플 코드 등이있다 이 작품이 어떻게 작동하는지 확신 할 수 없습니다. 나는 내가 참고해야 할 어떤 종류의 도서관에 대해서도 pdf 나 웹 사이트에서 어떤 표시도 보이지 않는다.

답변

2

아니요, 아니요, 그냥 SerialPort 클래스를 사용해야합니다. USB 장치가 해시가 숫자를 나타내는 'COM ##'이라는 직렬 포트로 등록 될 것입니다. 포트 이름과 비트 전송률을 제공해야합니다.

+0

일단 USB 장치가 등록되면 단지 'SerialPort' 객체를 인스턴스화하고 포트 이름과 비트 전송률을 전달하여 위의 예제에서와 같이'serialPort1 '핸들을 얻습니다. – JonH

+0

예, 그렇게 생각합니다. 나는 .net에서이 작업을 시도하지는 않았지만, 패턴은 내가 전에했던 것과 비슷하게 보입니다. 또한 사용 가능한 직렬 포트를 폴링하여 장치가 어떤 것인지 확인할 수 있습니다. –

1

FTDI는 USB/직렬 칩셋을 제조합니다. 칩셋을 사용하는 USB 장치는 컴퓨터에 직렬 장치 (COM 포트)로 표시됩니다. 제품 소프트웨어와 함께 패키지되지 않은 경우, FTDI에는 해당 웹 사이트에서 다운로드 할 수있는 드라이버가 있습니다. 꽤 표준.

드라이버 링크는 해당 제품 PDF에서 사용할 수 있습니다. http://www.ftdichip.com/Drivers/VCP.htm

설치하면 직렬로 통신하기 만하면됩니다.

2

. NET은 System.IO.Ports.SerialPort 클래스가 상당히 나 빠졌습니다. 이것이 그 예에서 사용 된 것입니다. 데이터를 보내고 포트를 자동으로 검색 할 필요는없고 저장된 구성 파일을 가지고 있다면 충분할 것입니다.

작업자 스레드를 회전시키고 직렬 포트에서 읽기 만하고 핫 플러그 ​​알림으로 생성 된 플러그 앤 플레이 포트 이름을 사용할 수 없다는 생각 때문에 짜증이 난다면 다른 직렬 API. Win32 중 하나는 나쁘지 않으며 언젠가는 이러한 모든 작업을 쉽게 만드는 작업을 위해 만든 래퍼를 릴리스 할 수 있기를 바랍니다 (장치가 연결될 때 감지, USB 설명자 문자열을 기반으로 포트를 찾고 UI 데이터가 도착할 때의 이벤트).

+0

답변 해 주셔서 감사합니다. – JonH

+1

수업이 싫다 고 말하는 것은 가볍게 생각하고 있습니다. 수백 개의 백그라운드 스레드를 백그라운드에서 돌리고 많은 타이밍 문제가 발생하는 가장 좋은 방법입니다. 아! – ctacke

관련 문제