C# 시리얼 포트 자동 접속 아래 시리얼 포트 검색하는 부분을 응용하여 장비에 자동 접속하는 코드를 만들어 봤다. 2009/09/18 - [Programing/C#] - C# 시리얼 포트 검색 foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) { try { serialPort.PortName = s; serialPort.Open(); serialPort.Write("장비 접속 확인 명령"); // 1 System.Threading.Thread.Sleep(100); // 2 if(serialPort.BytesToRead != 0) { byte[] data = new byte[serialPort.BytesToRead]; serialPort.Read(data, 0, seri..
썸네일 C# 시리얼 포트 검색 요즘 시리얼 포트를 많이 사용하게 됐다. 펌웨어를 개발하면서 마이크로 프로세서에서는 UART를 쓰고 반대쪽에서 통신해야 하는 PC에서는 시리얼 포트를 사용하기 때문에 어쩔수 없는 일인듯. 그리고 요즘 가지고 놀고 있는 문자 전송기도 그렇고.. 지금까지는 콤보박스에 시리얼 포트 번호를 주욱 넣어두고 지정해서 사용하도록 프로그램 했었는데 불편해서 자동으로 사용할 수 있는 포트를 검색하게 만들어봤다 왜 진작 이걸 생각하지 못했을까.. string[] s; s = System.IO.Ports.SerialPort.GetPortNames(); 이 문장을 사용하면 현재 사용할 수 있는 시스템에 등록된 시리얼 포트를 문자열 배열로 반환한다. 이 문자열들을 콤보박스에 넣어주면 끝! for(int i = 0; i < s...
썸네일 RFID 리더를 이용한 출근부? 역시 C#으로 만들었다. C#으로 처음 혼자 만든 프로그램. 그런데 처음에 시리얼 포트 제어하는데 애좀 먹었다. MSDN을 검색해보니 C#에서는 크로스스레딩이라고 해서 안정성을 위해 자신이 생성하지 않은 컨트롤에 대한 변경을 차단한다. 라고 나오더군..;; 이 말이 뭔고 하니 새로 생성된 스레드에서는 기존에 만들어 두었던 컨트롤들을 제어하지 못한다는 것이다. 그런데 시리얼 포트에서는 포트를 오픈하면 데이터를 수신하기 위해 스레드를 하나 생성해서 대기시키는 것 같다(추측) 그래서 데이터리시브 이벤트를 사용해서 제어하려는데 잘 안돼서 좌절... 하지만 방법을 찾아냈다. ㅋㅋ 대리자를 이용하면 된다는 간단한 답변들... 그렇게 결국 허무하게 끝나버렸다. 또 DB 제어하는데도 문제가 있었는데 시간을 DATETI..