#ifndef SCN_USB_H_HEADER_INCLUDED_B2BF228E #define SCN_USB_H_HEADER_INCLUDED_B2BF228E #include #include #pragma pack(1) struct tag_usb_pipe { HANDLE h_pipe; USBSCAN_PIPE_INFORMATION pipe_info; OVERLAPPED overlap; }; typedef struct tag_usb_pipe usb_pipe_t, *pusb_pipe_t; #pragma pack() typedef struct tag_usb_scan_dev_info { WORD vid; WORD pid; WORD index; }usb_scan_dev_info, *pusb_scan_dev_info; typedef struct tag_usb_scan_dev { USHORT _NumberOfDevs; tag_usb_scan_dev_info dev_infos[1024]; }usb_scan_dev, *pusb_scan_dev; //##ModelId=4D40D3230138 class cscn_usb { public: USBSCAN_PIPE_CONFIGURATION m_usbscan_config; usb_pipe_t m_usb_pipes[MAX_NUM_PIPES]; HANDLE m_h_dev; void init(WORD w_vid, WORD w_pid); BOOL control_in (BYTE by_pipe_addr, WORD w_value, WORD w_index, PVOID p_data, DWORD dw_size, PDWORD pdw_read, LPOVERLAPPED lp_overlap); BOOL control_out (BYTE by_pipe_addr, WORD w_value, WORD w_index, PVOID p_data, DWORD dw_size, PDWORD pdw_write, LPOVERLAPPED lp_overlap); BOOL interrupt_in(BYTE by_pipe_addr, PBYTE pby_data, BYTE by_len, PBYTE pby_read, LPOVERLAPPED lp_overlap); BOOL bulk_in (BYTE by_pipe_addr, PVOID p_data, DWORD dw_size, DWORD timeout,PDWORD pdw_ret); BOOL bulk_out(BYTE by_pipe_addr, PVOID p_data, DWORD dw_size, PDWORD pdw_ret); HANDLE open(WORD index); BOOL Read_Data(PVOID p_data, DWORD length, DWORD timeout, PDWORD pdw_ret); BOOL close(void); cscn_usb(void); ~cscn_usb(void); BOOL is_connected(void); private: BOOL m_b_is_connected; //##ModelId=4D41B612027E WORD m_w_vid; //##ModelId=4D41B62200F7 WORD m_w_pid; //##ModelId=4D41B63103A7 WORD m_w_serial_no; }; usb_scan_dev Devices(); usb_scan_dev Devices(WORD w_vid); usb_scan_dev Devices(WORD w_vid, WORD w_pid); #endif /* SCN_USB_H_HEADER_INCLUDED_B2BF228E */