출처1 : 본인

출처2 : 클리앙 진짜적님

출처3 : http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard




클리앙에서 딸에게 바코드 스캐너를 이용한 마트놀이를 만들어주는 공대아버지를 보았습니다.


http://www.clien.net/cs2/bbs/board.php?bo_table=park&wr_id=41454043&sca=&sfl=wr_subject&stx=%EA%B3%B5%EB%8C%80&spt=-4478722


그리고 또 하나!


클리앙 육아당 소모임에서 진짜적님이 후배 개발자를 치킨 5마리로 포섭하여 만드신 마트놀이도 받아보았습니다.


시작을 알리는 글.

http://clien.net/cs2/bbs/board.php?bo_table=cm_baby&wr_id=97553&sca=&sfl=wr_subject&stx=%EB%A7%88%ED%8A%B8


몇 번의 업데이트가 지나고 종료를 알리는 글(?)

http://clien.net/cs2/bbs/board.php?bo_table=cm_baby&wr_id=99434&sca=&sfl=wr_subject&stx=%EB%A7%88%ED%8A%B8



다운 받아 실행해봤는데, 기본 개발 해상도가 1280*800 인거 같았어요.


나는 FHD 모니터를 사용하는데, 레이아웃이 깨져나오네요.


우리 두 딸래미도 해주고 싶은데, 이렇게는 안될거 같다싶어서 ㅠㅠ



에라 모르겠다, 만들자!


우선 알리에서 바코드 스캐너를 샀습니다.

진짜적님이 사신 모델이며 13불인가 해서 그냥 샀습니다.

크리스마스 전에 받았습니다. ㅠㅠ (구매한지 한 3주 된거 같아요.)


http://www.aliexpress.com/item/High-Scaned-Speed-Portable-Losar-Barcode-Scanner-Reader-Gun-with-USB-Cable-for-Supermarket-and-POS/32374610273.html



그리고 바코드스캐너를 어떻게 구현하는지 찾아보니, 그냥 스캔하면 HID 장치로 입력한 것 마냥 KeyPress 이벤트가 주르르르륵~ 타고 가다가 마지막에 엔터를 탁! 쳐 주는 것 같습니다.



근데 집에 있는 노트북으로 구현해야 하는 지라, 바코드 스캐너를 사용하면서 키보드를 누르니 키가 이상하게 엉켜서 들어옵니다. 


또 하나 문제점은 입력 받은 키 값을 어디서 부터 어디까지 파싱해서 써야하는지도 헷갈립니다.



그리고 또 하나!


어느 콘트롤에 포커스가 있던지 스캐너를 사용한 입력이 되어야 할 꺼에요.

모든 콘트롤에 이벤트를 다 넣어줄 순 없을 것 같았다. 



그 와중, 여러개의 키보드를 가지고 있을 때 구분을 할 수 있다는 검색을 결과를 봤습니다.


아마도 RS232 방식이 아닌 USB 포트를 사용하는 바코드 스캐너는 대부분 이런 문제를 가지고 있는 것 같았고,


인터넷 검색 결과 역시 보통 POS 업계 종사하시는 분들일 듯한 느낌이 왔습니다.



여튼 서론이 길었네요.




PlayMartWpf_v0.5.zip



위 파일을 받아서 압출을 풀면 준비 끝!



간략한 사용법.


압축 파일을 풀면 4개의 파일이 나오는데,

barcode.txt 파일은 진짜적님이 올려주신 미니스톱 barcode 파일입니다. 

다른 barcode를 추가하고 싶으시면 이 파일을 수정해주세요.


형식은 구분자로 세미콜론(;)을 사용하며, 

바코드, 제품명, 금액 순입니다. 


skin.jpg

파일은 파일명에서 보이듯이 스킨파일입니다. 

이 역시 진짜적님이 올려주신 파일입니다.


프로그램을 실행하면 나오는 



버튼은 당연히 종료이며,


마지막으로 




버튼은 바코드스캐너를 꼽고 스캔을 했는데, 정상적으로 인식이 되지 않을 때

USB Keyboard 타입의 바코드 스캐너를 선택해줄 수 있는 설정 창입니다. 


내용이 간단하여 보시면 바로 감이 올 것 입니다.




나중에 TTS 기능을 추가해볼 생각입니다. 

WPF 처음 만져보는데, 재미있으면서 귀찮네요 ㅎㅎ

















Posted by motolies
,