IT’s Ha

[ETC] ZEBRA 스캐너 CDC설정 본문

ETC

[ETC] ZEBRA 스캐너 CDC설정

Deleloper Ha 2023. 3. 23. 11:44
728x90
반응형

안녕하세요. 이번포스팅은 Zebra 스캐너 CDC설정 관련하여 진행 하겠습니다. 

스마트공장이나, 바코드등을 스캔하여 프로젝트를 하신다면 도움이 되실겁니다. CDC 모드는 USB를 가상 SerialPort를 통해서 통신하는 방식입니다. 데이터가 들어오면 들어오는 단어에 따라 Split를 하여 데이터를 뽑아내거나 이러한 경우 사용을 하게 됩니다.  또는 커서가 들어가있지 않더라도 언제든지 스캔 할 수 있게 기능을 구현하는겁니다. 예를 들어 마트 키오스크를 가게 된다면 커서의 위치가 상관없이 스캔되는 원리입니다. 

1. 설정

Windows 10이하에서는 CDC 드라이브를 설치하여야 하지만, 윈도우 10부터는 USB를 연결하고, 아래의 코드만 스캔하더라도 셋팅이 됩니다.

CDC 설정

위의 스캔을 하게 되면 장치관리자에 포트에 포트가 올라오신걸 확인 하실 수 있습니다. 

장치관리자 확인

그리고 아래의 Test프로그램을 작성하여 동작 시키시면 됩니다. (메인 함수는 별도 작성)
정상적으로 동작한다면 스캔시 Scan_Test 함수를 들어가 동작하게 됩니다.

//Serial 포트 선언
private SerialPort serial = new SerialPort();

//연결
private void Connect()
{
    try
    {
        if (serial.IsOpen)
            return;
        serial = new System.IO.Ports.SerialPort();
        serial.PortName = "COM5";
        serial.BaudRate = 115200;
        serial.DataBits = 8;
        serial.Parity = Parity.None;
        serial.StopBits= StopBits.One;
        serial.NewLine = "\r";
        serial.Encoding = Encoding.ASCII;
        serial.Open();
        ////데이터 수신 메소드 연결
        serial.DataReceived += Scan_Test;
    }
    catch(Exception ex)
    {
    }
}

//해제
private void Disconnect()
{
    try
    {
        //데이터 수신 메소드 종료
        serial.DataReceived -= Scan_Test;
        if (serial.IsOpen)
            serial.Close();
    }
    catch(Exception ex)
    {
    }
}

//수신 함수
private void Scan_Test(object sneder, SerialDataReceivedEventArgs e)
{
    serial.ReadLine();
    serial.DiscardInBuffer();
}

※ 안 될 경우 

1) 포트 설정 확인

만약 이렇게 하였는데 동작이 되지 않는다면, 포트설정을 확인해주시길 바랍니다.  장치관리자에서 포트를 우클릭후 속성을 선택하시면 포트의 속도와 이런 셋팅이 코드에서 속도와 일치 하는지 확인 해주시면 됩니다. 소스의 예제는 비트/초 115200으로 하였으나 보통 기본 속도는 9600으로 설정 되어있습니다.

포트 속성

2) CDC 스캔

CDC USB셋팅 스캔바코드가 기종에 따라 조금 다르다는걸 알게 되었습니다. 아래의 바코드를 스캔하여 처리 할 경우 CDC가 정상적으로 동작하는걸 확인 하실 수 있습니다.

CDC 스캔2

이번 포스팅은 여기서 마치겠습니다.

궁금하신 내용이나 잘못된 내용은 댓글이나 메일로 부탁드리겠습니다. 감사합니다.

728x90
반응형
Comments