현재 데스크탑에 영수증 프린터를 연결해야 되는 상황이고
Serial to USB 젠더 케이블을 사용해서 세팅하고 있습니다.
SAM4S GCube-102 모델을 사용중인데
GIANT&GCUBE Tool.exe 프로그램에 보면 USB 연결로 인쇄가 되더군요.
그럼 젠더 케이블을 따로 구매하지 않고 동봉되어 있는 USB 케이블을 사용하면 되는건데
여기서 프린터 드라이브 설치를 따로 안하고 인쇄되는게 조금 신기하네요.
USB가 연결되면 장치관리자에 소프트웨어 장치 목록에서
SAM4S Gcube-102 가 표시되는걸 확인했습니다.
vid = 0x1C8A, pid = 0x3A37 로 확인되어
int vid = 0x1C8A;
int pid = 0x3A37;
LibUsbDotNet 라이브러리 사용(실패)
var finder = new UsbDeviceFinder(vid, pid);
var usb = UsbDevice.OpenUsbDevice(finder);
// usb 는 null;
해당 제품을 사용해 보지는 않아 정확한 답이 될 수 는 없겠지만 USB 연결이라고 드라이버가 필요 없지는 않을 것 같아요. USB 연결을 해도 이것을 시리얼로 인식하기도 하고요 장치관리자에서 어떻게 인식되는지 혹은 관련 제품에서 USB 관련 드라이버를 제공하는지를 살펴볼 필요가 있어요.
답변 감사합니다
공홈에 메뉴얼과 샘플코드는 이미 확인한 상태였구요.
샘플코드는 윈도우용 프린터 드라이브 설치된 환경에서
테스트 가능했어요
드라이버 설치없이 device id나 usb path만 가지고
Raw data 인쇄하는게 쉽게 처리되는 부분이 아닌거
같더라구요.
어떤 장비가 됐든 usb 만 연결하면 아무설정없이
바로 인쇄되는 환경을 만들어 보고 싶었어요
var filepath = @“\.\USBPRINT\SAM4SGcube-102\8&324e0725&0&USB003”;
var ptr = CreateFile(filepath, FileAccess.ReadWrite, FileShare.ReadWrite, IntPtr.Zero, FileMode.Open, FileAttributes.Normal, IntPtr.Zero);
FileStream stream = new FileStream(ptr, FileAccess.Write);
// 여기서 에러 발생하네요.
아래는 SAM4S Gcube-102의 디바이스 속성입니다.
USBPRINT\SAM4SGcube-102\8&324e0725&0&USB003 장치가 구성되었습니다.
드라이버 이름: prnms013.inf
클래스 GUID: {62f9c741-b25a-46ce-b54c-9bccce08b6f2}
드라이버 날짜: 06/21/2006
드라이버 버전: 10.0.22621.1
드라이버 공급자: Microsoft
드라이버 섹션: MS_GENERICPRINT
드라이버 순위: 0xFF3000
일치하는 장치 ID: CID_MS_GENERICPRINT
순위가 높은 드라이버:
업데이트된 장치: false
부모 장치: USB\VID_1C8A&PID_3A37\0000000000002
USB는 단지 인터페이스일 뿐 USB를 이용해서 해당 디바이스가 어떤 프로토콜로 동작하는지는 그 제품에 따릅니다. 즉, 드라이버를 사용하지 않고 직접 USB로 제어하려면 그 디바이스에서 정의된 방식을 사용해야 하고요, 제품에서 관련 기능을 API로 제공하지 않거나 또는 문서로 어떻게 접근할 수 있는지 상세하게 나와있지 않고서는 제어할 도리가 없지요. 그 제품 회사에 문의해 보시는 것이 가장 빠를 것 같아요
dimohy님 말씀대로 전적으로 제조사에서 어떻게 만들었냐의 영역입니다.
대부분의 USB장치는 드라이버 없이 구동을 고려하지 않습니다.
드라이버 설치 없이 구동되는것도 어디까지나 시스템에 기본 드라이버가 있는거죠.
USB Audio, USB Camera, USB Monitor,… 이런애들 말이죠.
물론 이런것들도 딱 기본구동만될 뿐 제품만의 고유한 기능은 드라이버를 설치해야만 구동 합니다.
결론은 제조사에 혹시 드라이버 설치 없이 기본 윈도우 드라이버로 잡힌 상태에서 구동시킬 API나 프로토콜이 있는지 물어보는것이 가장 확실합니다.