보낼 명령어를 입력하는 창을 만들자.
TextBox를 위치시키고 속성 창에서 Name는 input_textBox로 변경, Anchor을 Bottom, Left, Right 선택
Button을 하나 오른쪽에 위치 시키고 Name을 send_button으로 변경 하자.
Anchor을 다음과 같이 Right, Bottom만 선택 하자.
Text는 SEND로 변경 해주자. SEND 버튼을 누르면 데이터가 전송 된다.
이제 SEND Button을 두번 클릭 하여 코드 창으로 들어가자.
아래 화면과 같이 나온다.
우선 serial 데이터를 받아서 창에 표시를 해주기 위해 아래처럼 문장 하나를 추가 해주자.
comport.DataReceived += new SerialDataReceivedEventHandler(comport_DataReceived); <= 이것 추가.
쓰레드 충돌을 피해서 데이터를 창에 표시하기 위해 아래와 같이 추가 해주자.
send Button까지 모드 코드가 들어가 있다 모두 추가 해주자.
private void comport_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.Invoke(new EventHandler(serial_received)); //쓰레드 충돌을 피하기 위해 Invoke 사용
}
private void serial_received(object s, EventArgs e)
{
string receivedata = comport.ReadExisting(); //수신된 데이터를 receivedata 버퍼로 읽어오기
string time = DateTime.Now.ToString("HH:mm:ss.fff"); //현재 시간 만들기.
display_textbox.AppendText($"RX-{time} : {receivedata}"); //수신 시간과 데이터를 display_textbox에 표시하기.
}
private void send_button_Click(object sender, EventArgs e)
{
if (comport.IsOpen)
{
string inputdata = input_textBox.Text + "\r\n";
comport.Write(inputdata); //데이터 보내기
string time = DateTime.Now.ToString("HH:mm:ss.fff"); //현재 시간 만들기.
display_textbox.AppendText($"TX-{time} : {inputdata}"); //송신 시간과 데이터를 display_textbox에 표시하기.
input_textBox.Clear();
}
}
다음 사진을 보면 TX로 시작 하는것은 보낸 데이터 이고 RX로 시작하는 것은 수신 데이터 이다.
이상 종료 합니다.
'프로그램 > C#' 카테고리의 다른 글
serial 통신 프로그램 만들기 #3 (0) | 2025.04.07 |
---|---|
serial 통신 프로그램 만들기 #2 (0) | 2025.04.01 |
serial 통신 프로그램 만들기 #1 (4) | 2024.06.11 |
C#에서 EXCEL File 제어시 추가 패키지 (0) | 2023.07.27 |